Add immutable graph-version records and retire-only phase semantics #541

Merged
toasterson merged 8 commits from claude/wi-019fe0f0-add-immutable-graph-version-records-and into main 2026-09-02 03:33:41 +00:00
Owner

Anima work item 019fe0f0-421b-7b02-9918-513cf2ad40c8.

First bounded replacement for WI-386 and its stale PR #505. Re-implement on current main; use the old branch only as archaeology.

Scope only the durable graph definition:

  • Create immutable graph-version records and versioned phase/edge rows.
  • Editing a workflow creates a new version atomically instead of mutating an in-use graph.
  • A phase referenced by any graph version or in-flight item cannot be row-deleted; retirement is explicit and excludes it from new versions.
  • Preserve current workflow reads through a compatibility resolver while the pinning work follows.
  • Add migration, repository tests, cycle/integrity constraints, and rollback-safe backfill.

Do not add Work Item pinning or rewire integration behavior here; those are the next two items.

Anima work item `019fe0f0-421b-7b02-9918-513cf2ad40c8`. First bounded replacement for WI-386 and its stale PR #505. Re-implement on current main; use the old branch only as archaeology. Scope only the durable graph definition: - Create immutable graph-version records and versioned phase/edge rows. - Editing a workflow creates a new version atomically instead of mutating an in-use graph. - A phase referenced by any graph version or in-flight item cannot be row-deleted; retirement is explicit and excludes it from new versions. - Preserve current workflow reads through a compatibility resolver while the pinning work follows. - Add migration, repository tests, cycle/integrity constraints, and rollback-safe backfill. Do not add Work Item pinning or rewire integration behavior here; those are the next two items.
toasterson force-pushed claude/wi-019fe0f0-add-immutable-graph-version-records-and from 606ab2ed64 to 86575fc91e 2026-08-14 15:18:56 +00:00 Compare
Merge main into WI-507 branch: resolve job.sh, renumber migration 102->119
Some checks failed
CI / runner (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / conflict-check (pull_request) Successful in 50s
CI / test (pull_request) Failing after 45m31s
830fdb6821
- job.sh: main's test roster + this branch's graph_version test line
- 102_graph_versions.sql -> 119: main claimed 102 (first_published_at) after
  the branch cut; renumbered per the merge-time ledger rule
toasterson changed title from WIP: Add immutable graph-version records and retire-only phase semantics to Add immutable graph-version records and retire-only phase semantics 2026-09-01 17:00:26 +00:00
toasterson force-pushed claude/wi-019fe0f0-add-immutable-graph-version-records-and from ab9d3c22a9 to 774340f594 2026-09-01 21:37:44 +00:00 Compare
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/Anima!541
No description provided.