carlos / platform Public

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 through ServeScheduled, 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 trusts Quiesced, 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. ServeScheduled also refuses a managed route whose status isn't ready, the same gate the due-wake sweep holds. That covers the window after an agent restart, since the fence lives in memory.
  • G16. MoveAbort lists the states it may leave (preparing, ready), so a newer box's landing is 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