feat(memory): encrypt local store and preserve reviewed Markdown portability - #347
daveh-beep wants to merge 11 commits into
Conversation
…ability Signed-off-by: David Hamilton <daveh@squareup.com>
…ranch The memory review commit 5b894c9 overwrote the voice block in en and es settings.json with a divergent variant. That removed 62 voice keys and reworded 10 existing strings, which breaks 14 voice settings tests. Restore the voice block from the stack's base ce48ca5 and keep the one string the memory work genuinely added (voice.interruptionDescription). All 447 tests in src/features/voice-conversation pass; just check passes. Signed-off-by: David Hamilton <daveh@squareup.com> (cherry picked from commit 4bf3772) Signed-off-by: David Hamilton <daveh@squareup.com>
Integrate main at 2f93fb3 after the separately attributable #348 voice catalog repair. Resolve Cargo and locale conflicts to the locally validated integration baseline. This changes only the encryption follow-up branch; the foundation, reviewed-proposals and MCP owner branches are unchanged. Signed-off-by: David Hamilton <daveh@squareup.com>
… storage Keep pending credential calls off the policy lock and synchronous app dispatch. Revalidate store identity, preserve initialization serialization, bound key workers, and retain repeated off-state handoffs. Enforce the current desktop availability boundary across native, renderer, MCP and packaging paths. Add opt-in shared-store validation with Linux directory-sync and Windows lock-contention repairs, synthetic regressions, and explicit native-acceptance limits. Include the narrow tested Sherpa cache repair needed for native validation. The reconstructed source matches all 2,617 entries of the local just-ci snapshot: 7,962 frontend tests passed with one skipped, 214 release-script tests, and all configured Rust/check/clippy/build lanes passed. Signed app/sidecar key access and Windows runtime remain unverified; keep the PR draft. Signed-off-by: David Hamilton <daveh@squareup.com>
Signed-off-by: David Hamilton <daveh@squareup.com>
|
🤖 @delkc — Dave’s agent here. Updated this draft with the tested encryption follow-up, preserving the #288 → #289 → #290 stack. Your branches are unchanged. This branch includes #348’s voice-catalog repair as a separate signed cherry-pick and main at Full local The draft now includes the pending-key/memory-off correction, platform gating, and portable storage repairs. It is not ready to ship: real signed app/sidecar key authorization, native Windows execution, and legacy-data/downgrade/recovery decisions remain open. Added desktop-platform gates stay closed. When you have time, please advise on folding the catalog repair into the lower stack and the preferred restack/merge shape. Also, do any draft-build users have memory data we need to preserve through migration? The current implementation refuses legacy stores without deleting them. Acceptance details and limits are in |
7aa3392 to
d444d6e
Compare
Summary
Extend the encrypted-memory follow-up to the existing memory stack. Keep editing and explicit Markdown import/export in Berd, preserve review and consent boundaries, and fail closed when keys or platform support are unavailable.
This is the draft encryption follow-up to #290, not a replacement for #288–#290. It includes #348’s voice-catalog repair as an attributable cherry-pick and merges main at
2f93fb34to preserve the tested integration. Clay’s branches are unchanged. Cross-platform storage validation is included; this does not enable or claim Windows/Linux/Intel desktop support.portable-storevalidation for the shared store/MCP on Intel macOS, Linux, and Windows. Repair Linux directory synchronization and Windows lock-contention classification without enabling those desktop builds prematurely.Related issue
Depends on the existing draft stack:
No separate issue was found in the scoped
memory encryptionissue search. The existing PRs are the relevant work; do not create a duplicate memory implementation. Further restacking remains coordinated with the stack owner; this is not a claim of validation against newer main revisions.Testing
Completed on the integrated implementation snapshot (all executable source/config/test inputs match this PR; four subsequent documentation updates reconcile status):
just ciData tests use synthetic temporary stores and injected keys. Linux source tests ran with networking disabled, no host-home mounts, and no credential service. Windows cross-compilation is not Windows execution. Rosetta is not final Intel-hardware/package acceptance.
UI behavior was previously checked using synthetic fixtures for edit/save, unsaved Markdown import, export confirmation, and unavailable targets. Sanitized before/after screenshots still need to be selected and reviewed for the submitted candidate. No screenshots of real memory are required or appropriate.
Behavior and compatibility
LAWS/MEMORY.mdchanges the earlier direct-plaintext-file contract to in-app editing plus explicit Markdown portability. This is an intentional product-contract change requiring owner review.Why this remains draft
just cipassed, and branch reconstruction matched the tested source before the documentation-only update. Further stack/base changes need applicable revalidation.If encryption is required for launch, the lower memory layers and encryption must reach users together. Reviewable commits must not become independently releasable plaintext or partially encrypted states.
AI tools assisted with implementation and tests. The submitting contributor remains responsible for reviewing the code, evidence, and DCO certification.