You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Derive a Move in layer 2, with a hand-written Postgres 16 to 17 example #333
triggers: an engine version change in the component breaksOn names, a namespace other than the active Instance's, or an eligible node set that excludes the bound volume's node;
the move element: source, target, method, move identity, the Stable Addresses it flips, reversible, and the bounds;
rollback: forward-only on a Process (chapter 10), with E_MOVE_IRREVERSIBLE, E_FORWARD_ONLY_UNUSED, E_MOVE_UNSUPPORTED, E_NO_MOVE_POLICY and E_MOVE_OPEN (a second Move while one is open);
retirement once ClusterState records the flip held past retention;
a new worked example: platform-postgres moving from 16 to 17, with a hand-written expected/resolved.json and its refusal fixtures. This is also the second hand-written target model the Task 1 feedback asked for.
Lands in TypeScript only, after emf/ is deleted (#347), with the rendered-tree and diagnostics oracles it affects, in one pull request. The intent, effective and dependencies goldens are dropped (#346), so it adds none.
Behaviour (draft ledger row)
A change an engine's data cannot follow in place derives a Move whose source, target, method and reversibility the projection records, an irreversible one is refused unless acknowledged, an acknowledgement nothing needs is refused, and the source is retired only once its flip has held past the platform's retention.
Blocked by
#341, the map whose rewrite plan replaces the closed placement ticket #328 (see #350).
Activity
ExtraToast commentedon Oct 27, 2026
Resume here (2026-10-27)
State: PR #648, rebased onto main, verified (2436 tests) and on auto-merge. Its 12 mutation shards were running when this was written.
Next step: once it merges, land #649 (see #324's note). If a shard fails, kill its survivors and push.
Blocked by: CI only.
Decisions:
delivery.move {timeout, retention, memory, cpu}, and durations acceptd.spec/v1/examples/data/expected/resolved.moving.json(platform-postgres 16 → 17). Its flips areplatform-postgres-postgres.Gotchas:
moveRefusalsinsrc/check/pinned-inputs.tsreturns early while the image is unlocked, by design.