Performance#106
Merged
Merged
Conversation
…(COP-25) Split monolithic data.enc into settings.enc, clips.enc, templates.enc, and meta.json. Each save writes only its domain file. Window bounds load directly from filesystem without SecureStorage dependency. Background load notifies renderer via storage-ready IPC event. Legacy data.enc is auto-migrated.
…OP-26)
Images are saved as individual encrypted files (images/{id}.enc) with 200px
thumbnails ({id}_thumb.enc). Clips store imageId + thumbnailDataUrl instead
of inline base64. Full images loaded on demand via get-full-image IPC.
Existing inline base64 clips auto-migrated on load. Orphaned image files
cleaned up on clip deletion. Image detection priority changed to prefer
image binary over HTML to correctly handle Discord-style image copies.
Fixed duplicate clip creation from useEffect re-runs and imperative DOM
error handler corruption in virtualizer.
📊 Coverage Report
|
🧪 E2E Test Results✅ 13 passed, 0 failed, 0 skipped
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SyntaxHighlightedCodecomponent, memoized expensive computations, improved language detection with debouncing and cachingdata.encintosettings.enc,clips.enc,templates.enc, andmeta.jsonso each save writes only its domain file; window bounds load directly from filesystem without SecureStorage dependency; background load notifies renderer viastorage-readyIPC event; legacydata.encauto-migratedimages/{id}.enc) with 200px thumbnails; clips storeimageId+thumbnailDataUrlinstead of inline base64; full images loaded on demand viaget-full-imageIPC; orphaned image files cleaned up on clip deletionAdded
SyntaxHighlightedCodecomponent extracted fromTextClipfor reuse and lazy renderingimage-store.tsmodule for encrypted per-image file storage with thumbnail generationstorage-readyIPC event for non-blocking renderer startupmeta.jsonfor unencrypted storage metadata (version tracking)monitoring.test.ts) and hotkey action tests (actions.test.ts)image-store.test.ts)Changed
data.encinto domain-specific encrypted files (settings.enc,clips.enc,templates.enc)SecureStorageinitializationlistFiles,deleteFile, and domain-aware read/write helpersuseEffectre-runsFixed
SecureStorageloaduseEffectre-runs inClipsProviderRemoved
data.encstorage format (auto-migrated to split files)