Immutability fix (tombstone/supersede) on the launch branch #94

Merged
will.anderson merged 1 commits from fix/immutable-on-hotfix into hotfix/elc-source-typos 2026-07-21 16:05:20 +00:00
Owner

Applies the tombstone/supersede immutability fix to the 4 destructive engram routes on hotfix/elc-source-typos (the ship-soul branch), which had the bounded-persona floor #93 but not this fix. Regenerated soul.c + per-module dist against the release el_runtime; persona floor preserved (verified in binary). verify-soul-contract.sh: GATE PASS — PRESENCE 27/27, IMMUTABILITY 5/5 KEPT. Ship-soul binary sha256 b319ea08042a32f71904669ac75290c22745c0bd6241b37dcb36c194eeb92396. Do NOT merge — for the mechanics agent to rebuild the ship-soul from HEAD 6527988.

Applies the tombstone/supersede immutability fix to the 4 destructive engram routes on hotfix/elc-source-typos (the ship-soul branch), which had the bounded-persona floor #93 but not this fix. Regenerated soul.c + per-module dist against the release el_runtime; persona floor preserved (verified in binary). verify-soul-contract.sh: GATE PASS — PRESENCE 27/27, IMMUTABILITY 5/5 KEPT. Ship-soul binary sha256 b319ea08042a32f71904669ac75290c22745c0bd6241b37dcb36c194eeb92396. Do NOT merge — for the mechanics agent to rebuild the ship-soul from HEAD 6527988.
will.anderson added 1 commit 2026-07-21 15:56:11 +00:00
The ship-soul builds from this branch, which has the bounded-persona floor
(#93) but never received the tombstone/supersede immutability fix (that
went to main; hotfix diverged before it). So the launch soul failed
verify-soul-contract IMMUTABILITY on the delete/update/forget routes —
they hard-removed engram nodes via engram_forget/mem_forget.

Apply the same fix, mirroring the knowledge routes' supersede pattern:
- node/update -> create new node + "supersedes" edge to the original, KEEP
  the original (no engram_forget).
- node/delete, memory/delete, memory/forget, cultivate forget, and the
  autonomous awareness forget -> TOMBSTONE via the canonical mem_tombstone
  (memory.el): keep the node + its edges, record a Tombstone marker, hide
  from default bounded list reads (?include_deleted recovers). Never
  engram_forget. The MCP forget tool now routes to the tombstoning delete
  instead of faking a delete.
Internal GC that genuinely removes transient nodes (awareness inbox-trigger
consume, consolidation dedup, session-summary replace, telemetry pruning)
still calls engram_forget directly and is unchanged.

Regenerated dist/soul.c (single-TU) + per-module dist/{memory,awareness,
neuron-api}.c from THIS branch's sources under a 3GB physical-RSS watchdog
(peak ~32MB), built against the release el_runtime (v1.0.0-20260501). The
bounded-persona floor is preserved — verified in the emitted C and the
linked binary (BOUNDED PERSONA / SOUL_PERSONA_NAME strings present).

verify-soul-contract.sh: GATE PASS — PRESENCE all 27 routes, IMMUTABILITY
5/5 KEPT (memory-update, memory-delete, node-update, node-delete,
memory-forget).
will.anderson merged commit 9a491a8e6d into hotfix/elc-source-typos 2026-07-21 16:05:20 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: neuron-technologies/neuron#94