Repository navigation
feat: add durable encryption migration journal #337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 49 commits
Commits
Show all changes
94 commits
Select commit
Hold shift + click to select a range
7057cf8
fix: fail closed encrypted storage lifecycle
qnbs 3f70e0e
fix: harden desktop AI integrations
qnbs 814ff04
feat: add durable encryption migration journal
qnbs 349b962
docs: clarify encryption journal rollout
qnbs 79b482c
fix: expose local provider diagnostics
qnbs 8145eec
fix: resolve audited dependency vulnerabilities
qnbs 366fcfe
fix: resolve audited dependency vulnerabilities
qnbs f978606
Merge branch 'fix/encryption-lifecycle-safety' into fix/desktop-relia…
qnbs c0707ed
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs a130b00
fix: make encryption journal updates atomic
qnbs 82e2e8d
fix: enforce pnpm v11 build-script policy
qnbs 05d590c
docs: reconcile PR 310 migration work
qnbs 0ebbca2
feat(storage): add secure record envelope primitives
qnbs 9afbdec
feat(storage): checkpoint resumable migration batches
qnbs 7498444
chore: harden dependency execution policy
qnbs 58a3a82
feat(storage): add resumable secondary store adapters
qnbs cb87963
fix(storage): fail closed during migration reads
qnbs 2017957
fix(storage): harden migration recovery protocol
qnbs c4b64f8
fix(deps): reconcile release-age lockfile
qnbs 997b2f6
fix(storage): harden migration recovery protocol
qnbs 88016dd
fix(tauri): bound Python probes and LoRA process lifecycle
qnbs fa3cd98
chore(deps): align pnpm v11 security policy
qnbs fd7ed7c
chore: merge encryption lifecycle foundation
qnbs dda48b3
chore: merge desktop reliability foundation
qnbs fefd9ef
docs: add desktop performance evidence ledger
qnbs 8b0afe5
docs: capture current agent handoff state
qnbs a623213
docs: correct README i18n key count (2869 → 2876)
qnbs 264fb7d
fix(storage): close TOCTOU/fail-closed gaps in the IDB encryption guard
qnbs d318abc
fix(storage,i18n): correct encryption-scope claims and salt-loss fail…
qnbs ebdcac1
fix: backfill writingSurfaceStyle in all Settings producers; correct …
qnbs d0ca4e6
fix(storage): correct transaction-ordering regression and cross-tab s…
qnbs 759a9ec
fix(i18n): synchronize stale feature-flag counts and add missing Basq…
qnbs 5e80aaa
fix(settings): distinguish setup-failed from wrong-passphrase errors;…
qnbs 09d8c59
Merge remote-tracking branch 'origin/fix/encryption-lifecycle-safety'…
qnbs 1a081cf
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs e42fd3c
fix(desktop): fix LoRA env-report deserialization, panic risk, Python…
qnbs da3b4d7
Merge remote-tracking branch 'origin/fix/desktop-reliability-hardenin…
qnbs 501a403
fix: correct Tauri arg casing and surface native diagnostics in LoRA …
qnbs e204463
fix: correct AiCreativity casing typo blocking typecheck
qnbs fd38847
fix: classify a killed training process as aborted, not failed
qnbs 8a6f895
fix: sync Local AI panel when a preload finishes outside handleDownload
qnbs a01e298
fix: scope the global download modal to explicit preloads only
qnbs 20c9954
fix: guard connection-context races and the WebGPU spinner in AiProvi…
qnbs 756e3c0
fix: correct LM Studio/vLLM/custom local-backend streaming and routing
qnbs 2438f99
test: cover vLLM preset and invalid OpenAI-compatible models responses
qnbs 7cdd128
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs 3253c41
fix: resolve tsgo narrowing issue in AiProviderCard's stale-context test
qnbs 56e2509
fix: enforce legal phase transitions and close the checkpoint cursor-…
qnbs a8dd917
fix: gate protected-store writes against an active migration
qnbs 46198b2
fix(storage): skip corrupt scene revisions instead of hiding history;…
qnbs 411943a
fix(storage): fail migration to recovery-required on a verification s…
qnbs beadfa2
fix(ai): degrade cache reads to a miss on lock/migration, re-encrypt …
qnbs 3f31c1e
fix(ollama): report invalidResponse instead of a false-positive conne…
qnbs 68050d8
docs(test): clarify encryptionMigrationJournal.test.ts's ownership-CA…
qnbs dc0b526
fix(settings): stop rendering the connection test result twice in AiP…
qnbs ed46bef
docs: refresh stack SHAs in the performance ledger; reconcile PR310-R…
qnbs 667f6f3
fix(storage): route locked encrypted startup and Lock Session to the …
qnbs 99c2839
fix(storage): route locked encrypted startup and Lock Session to the …
qnbs 0353364
fix(settings): restore sepia as the first-run appearance default
qnbs ad4364a
Merge branch 'fix/encryption-lifecycle-safety' into fix/desktop-relia…
qnbs dd92628
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs 74ce8fd
docs: refresh stack SHAs after the appearancePreset/unlock-routing fi…
qnbs 58d95d1
docs: refresh session handoff, archive the prior capture
qnbs be11482
fix(lora,settings): stale-run training race, stuck onboarding on canc…
qnbs d536649
fix(settings,ai): decouple URL edits from protocol preset; guard prel…
qnbs ebafce7
fix(desktop): revalidate the cached Python interpreter before trustin…
qnbs c3f00cf
fix(settings): auto-validate a newly saved Gemini key instead of defe…
qnbs 0b1cc2e
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs bc078b8
docs: refresh session handoff after the #336 fresh-review-wave fix ca…
qnbs edc3ef1
fix(deps): exclude the two unpatched uuid releases from the override …
qnbs e99f354
Merge branch 'fix/encryption-lifecycle-safety' into fix/desktop-relia…
qnbs 5bd4c77
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs 451f681
fix(lora): clear cancellationRequested on a failed native abort; coll…
qnbs b01564e
fix(i18n): translate LoRA onboarding strings and fix broken shell com…
qnbs 1096861
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs 6dc90eb
docs: refresh performance ledger SHAs after #336 layering-mistake cor…
qnbs 3a3ed23
docs: capture session handoff after the second layering-mistake corre…
qnbs 652fa72
docs(pr310): mark review-thread reconciliation complete (0/317 unreso…
qnbs a24a987
docs: update handoff with Tauri build success and #310 reconciliation…
qnbs 369d064
fix(lora): only classify training as aborted on a confirmed native ca…
qnbs 09eae35
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs afbcdb8
Merge remote-tracking branch 'origin/main' into fix/desktop-reliabili…
qnbs 56389e6
fix(lora,ai): distinguish pending-start cancellation from a true abor…
qnbs 5568d91
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs 43e4afc
fix(settings): restore the WebGPU auto-probe lost when the ollama aut…
qnbs 55bc5ea
Merge branch 'fix/desktop-reliability-hardening' into feat/encryption…
qnbs 1f1ec61
Merge remote-tracking branch 'origin/main' into feat/encryption-recov…
qnbs e708940
fix(a11y): set aria-busy on the provider connection status region whi…
qnbs 1335e81
fix(test): give the binder-asset transaction mock a real .transaction…
qnbs 5fed880
fix(storage,ai,a11y): fail-soft cache reads, single-flight IDB open, …
qnbs 0ab3341
docs: capture handoff after merging #335/#336 into main and #337's fu…
qnbs 92dd2b5
fix(test,docs): track cursor completion in binder mock; fix doc drift…
qnbs ed22774
test(storage): cover scene/cache payload-shape branches in the second…
qnbs 8e1e31d
test(storage): fix test-fixture Date.now() nondeterminism; docs: reco…
qnbs File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,28 +1 @@ | ||
| # Peer dependencies | ||
| # strict mode: install fails on unmet or conflicting peers (instead of just warning) | ||
| # QNBS-v3: TS7 migration - disabled strict-peer-dependencies for tsgo preview compatibility | ||
| strict-peer-dependencies=false | ||
| # autoInstallPeers stays true to match lockfile settings.autoInstallPeers: true; | ||
| # flipping it requires a full lockfile regen + React-19 peer-dep audit (deferred to pnpm v11 migration) | ||
| auto-install-peers=true | ||
|
|
||
| # Build scripts | ||
| # allowBuilds in pnpm-workspace.yaml is the v10 guard — only core-js, esbuild, protobufjs | ||
| # may run lifecycle scripts; ignore-scripts stays false so that list is enforced, not bypassed | ||
| ignore-scripts=false | ||
|
|
||
| # Runtime safety | ||
| engine-strict=true # fail install if Node version doesn't satisfy engines.node (>=22) | ||
| prefer-frozen-lockfile=true # pnpm install refuses to mutate the lockfile (CI-safe) | ||
| verify-store-integrity=true # checksum-verify packages from the content-addressable store | ||
|
|
||
| # Performance / correctness (unchanged) | ||
| side-effects-cache=true | ||
|
|
||
| # Supply-chain hardening (QNBS-v3: P1) | ||
| # strict-dep-builds: verify that all built dependencies match lockfile checksums | ||
| strict-dep-builds=true | ||
| # block-exotic-subdeps: reject packages with exotic subdependency patterns (security risk) | ||
| block-exotic-subdeps=true | ||
| # minimum-release-age: quarantine packages newer than 7 days (10080 minutes) | ||
| minimum-release-age=10080 | ||
| # QNBS-v3: The pnpm v11 workspace policy is defined exclusively in pnpm-workspace.yaml. |
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
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
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
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.