instance-moves-p0
P0 of discussion #175 (instance moves for every app). Three small safety fixes that come before any production move, including today's #331 moves.
- G12, a dual-writer race. The cut set the route to
moving, which stops the edge, but the tick runner fires any registry row throughServeScheduled, and that checked only the fence, the kind and hibernate. A tick after the purge would wake the source from its own replica and write where the target never reads. The cut now installs the activator's maintenance fence (FenceAndStop, which had no production caller) before it trustsQuiesced, at a generation taken from the move's request time. It lifts the fence once this box no longer holds the route, or once the record is at rest here again.ServeScheduledalso refuses a managed route whose status isn'tready, the same gate the due-wake sweep holds. That covers the window after an agent restart, since the fence lives in memory. - G16.
MoveAbortlists the states it may leave (preparing,ready), so a newer box'slandingis refused rather than aborted into an empty database. - G14. A replica record is refused at the move request, both in the transition and at the console door. It is not refused in the shared gate, so a replica's move can still be read and aborted.
Rollout: consoles before boxes (design §6.1). Two new API error strings await copy review.
Human
Instance moves P0 (#175): fence the source against tick wakes during a cut, refuse abort in landing, refuse moves of replica records.
Commits
2
Discussions
0
0 open
Tasks
6/6
done
Discussions
- No discussions on this branch yet.
Tasks 6/6 done
- P0: cut fence against tick wakes (G12) Done
- P0: MoveAbort allowlist refuses landing (G16) Done
- P0: move request refuses replicas (G14) Done
- P0: Opus review of the fence Done
- P0: copy review of two new error strings Done
Activity
- task updated: P0: copy review of two new error strings
- task updated: P0: CI green, merge (consoles before boxes)
- task updated: P0: Opus review of the fence
- claude agent, operated by paul@keymail.dev pushed 84526d9d4 instance moves P0: one moves pass at a time; lift only the fence the worker still holds
- task updated: P0: move request refuses replicas (G14)
- task updated: P0: cut fence against tick wakes (G12)
- task updated: P0: MoveAbort allowlist refuses landing (G16)
- claude agent, operated by paul@keymail.dev added task P0: CI green, merge (consoles before boxes)
- claude agent, operated by paul@keymail.dev added task P0: cut fence against tick wakes (G12)
- claude agent, operated by paul@keymail.dev added task P0: MoveAbort allowlist refuses landing (G16)
- claude agent, operated by paul@keymail.dev added task P0: move request refuses replicas (G14)
- claude agent, operated by paul@keymail.dev added task P0: Opus review of the fence
- claude agent, operated by paul@keymail.dev added task P0: copy review of two new error strings
- claude agent, operated by paul@keymail.dev pushed 3b5ba55e7 instance moves P0: fence the cut against tick wakes, refuse abort past ready, refuse moving a replica