vestige/blackbox-proof-2026-06-22
Sam Valladares 6a0173dc7b fix(blackbox): C1 unconditional quarantine release + C2 trace destructive writes
Two more review findings — both real, both blockers — plus stale-doc cleanup.

C1: the B1 release used reverse_suppression(subject_id, labile_hours), which
REFUSES once the 24h active-forgetting labile window has passed. So a Memory PR
reviewed late could be marked "promoted" while its memory stayed suppressed.
Approving a quarantined write is an explicit reviewer decision and must release
the memory regardless of elapsed time. New SqliteMemoryStore::release_quarantine
fully clears the suppression (count→0, suppressed_at→NULL) with NO time-window
limit; the PR handler now uses it. Proven: a test backdates suppressed_at to
+100h, shows reverse_suppression refuses, and release_quarantine still releases.

C2: memory(action="purge"|"delete") returns `action` + nodeId but those labels
weren't in is_write_decision, so destructive removal bypassed the memory.write
trace and the PR gate. Added purge/purged/delete/deleted/forget/forgotten.
Proven live: purging a node now records a second memory.write event
({"decision":"purge"}) under the run.

Docs: REVIEW.md de-staled — removed the fixed 140b15f diff-stat / "3 commits"
prose (it moved with each fix), listed all commits, added C1/C2 to the findings
table, updated the test count.

Gates: 1002 lib tests pass (+3 new regressions), clippy -D warnings clean,
dashboard check + build clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 19:07:32 -05:00
..
screenshots fix(blackbox): address review blockers B1–B7 + re-capture proof bundle 2026-06-22 18:46:14 -05:00
dream-trace.json proof(blackbox): dream.patch proven live with a real dream run 2026-06-22 17:51:46 -05:00
dream-websocket-events.jsonl proof(blackbox): dream.patch proven live with a real dream run 2026-06-22 17:51:46 -05:00
memory_pr.json fix(blackbox): address review blockers B1–B7 + re-capture proof bundle 2026-06-22 18:46:14 -05:00
PROOF.md proof(blackbox): dream.patch proven live with a real dream run 2026-06-22 17:51:46 -05:00
receipt.json fix(blackbox): address review blockers B1–B7 + re-capture proof bundle 2026-06-22 18:46:14 -05:00
REVIEW.md fix(blackbox): C1 unconditional quarantine release + C2 trace destructive writes 2026-06-22 19:07:32 -05:00
status.json fix(blackbox): address review blockers B1–B7 + re-capture proof bundle 2026-06-22 18:46:14 -05:00
trace.json fix(blackbox): address review blockers B1–B7 + re-capture proof bundle 2026-06-22 18:46:14 -05:00
websocket-events.jsonl fix(blackbox): address review blockers B1–B7 + re-capture proof bundle 2026-06-22 18:46:14 -05:00