Skip to content

fix(memory): reject empty replacements (#132) - #133

Merged
docwilde merged 1 commit into
mainfrom
fix/132-empty-memory-replacement
Nov 11, 2026
Merged

docwilde merged 1 commit into
mainfrom
fix/132-empty-memory-replacement

Conversation

@docwilde

Copy link
Copy Markdown
Owner

Empty or whitespace-only memory replacements could silently delete an entry while reporting success. Reject them in the Rust direct and internal mutation paths and Python compatibility API, preserving the original memory, provenance, and sync history; native model/derived requests are refused before staging. Explicit removal remains supported.

Closes #132.

Also add an end-to-end regression test for the historical recovery implemented in v0.62.7 (related to #112): authenticated peer replay retains signed quarantine, banks its cursor, matches portable state and bundles, and remains idempotent. Unsigned hub copies remain unapplied.

Validation:

  • Rust memory tests: 12 passed; native CLI tests: 13 passed.
  • Historical belief peer replay integration test: passed.
  • Python write-gate, pending-safety, sync-merge, and portable project-key tests: 155 passed.
  • Broader local checks reproduced 11 Rust library failures and one native interoperability failure on the untouched base revision as well.
  • git diff --check passed.

@docwilde
docwilde merged commit ddfee39 into main Nov 11, 2026
3 checks passed
@docwilde docwilde mentioned this pull request Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

memory replace with empty text silently deletes the entry

1 participant