epiphany/crates
Levi Neuwirth 4b0abaf04b G3a undo repair: the tombstone branch was reachable all along
Undoing a transaction that minted a StaffGroup, PartDefinition,
AnalysisLayer, View, or Instrument tombstoned the object in the ledger and
left its value live in the Score. DECISIONS.md claimed ObjectState::Tombstoned
was unreachable through the public operation API; UndoTransaction over the
minting transaction reaches it with no delete operation required, and did so
for CreateStaff and CreateInstrument before G3a existed.

Adds five graph-removal arms to materialize_graph_tombstones and three
inbound-reference guards to undo_strand_block: StaffGroup blocked by a live
Staff.group, AnalysisLayer by a live ViewDefinition.active_layers, Instrument
by a live Staff.instrument. The guards read the carried-value maps rather than
the graph and are deliberately ungated, so base-free undo cannot strand a
reference the ledger can see; they require the referencer to be Live, and
exempt referencers minted in the same transaction. No restorations lookup:
none of those three fields has a modify operation, so there is no write chain.

Twenty-two mutation-signed rows across six families — removal, live-referencer
refusal, base-free guard behaviour, tombstoned-referencer permission,
same-transaction teardown, and objects-outranks-retained-map on re-create.

Executed against spec/CONTRACT_GENESIS_G3A_UNDO_REPAIR.md Packet A.
Records G3a's commit and corrects the kind/tag pair count to fifteen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QjsEnYhm1gPpf6ii2iFxFV
2026-07-29 18:21:45 -04:00
..
epiphany-bundle G2b: unconflate the corpus version domains, unscope t10, and sign the mutations 2026-07-29 10:09:49 -04:00
epiphany-core Genesis G3a: the four root-level entity mints 2026-07-29 14:07:35 -04:00
epiphany-determinism P12-I2: wire the ratified MUSCLOID layout-object id derivation 2026-06-27 12:46:19 -04:00
epiphany-editor-core Genesis G3a: the four root-level entity mints 2026-07-29 14:07:35 -04:00
epiphany-editor-gui Editor T3: the note-entry caret [W1+W2] 2026-07-24 12:55:05 -04:00
epiphany-engrave Editor T4-pre W1: the resolved layout stops discarding its own partition 2026-07-24 14:47:31 -04:00
epiphany-glyphs Editor T4-pre W2: the glyph outlines become a shared typed seam 2026-07-24 18:54:30 -04:00
epiphany-layout-ir Genesis G3a: the four root-level entity mints 2026-07-29 14:07:35 -04:00
epiphany-ops G3a undo repair: the tombstone branch was reachable all along 2026-07-29 18:21:45 -04:00
epiphany-render-svg Editor T4-pre W2: the glyph outlines become a shared typed seam 2026-07-24 18:54:30 -04:00
epiphany-testkit Genesis G3a: the four root-level entity mints 2026-07-29 14:07:35 -04:00
epiphany-textproj Genesis G3a: the four root-level entity mints 2026-07-29 14:07:35 -04:00