diff --git a/docs/plans/2026-08-02-placement-cutover.md b/docs/plans/2026-08-02-placement-cutover.md index 0917bfd5..6e17aefb 100644 --- a/docs/plans/2026-08-02-placement-cutover.md +++ b/docs/plans/2026-08-02-placement-cutover.md @@ -136,9 +136,21 @@ same commit) → docs/handoff commit. No workarounds; no fused slices. not invention). Sub-slices, each with the standing contract/dual-review/gate discipline: - - **C3a — Runtime first-entry sequencing (dormant):** the resumable - local-player entry transaction binding residence → publication - body-attach → mover submit → receipt → Execute, test-driven. + - **C3a — Runtime first-entry sequencing — COMPLETE at `960373df` + (2026-08-02, dual reviews PASS).** `RuntimeLocalPlayerFirstEntryState`: + five stages (mover-prep → publication Prepare/Commit → activation → + acknowledgement → Execute) in retail's own order — mover shapes + BEFORE placement, matching makeObject/set_description preceding + enter_world; the original contract prose had it backwards and the + tested preconditions forced the faithful order. Acknowledge-stage + authority discrimination, automatic convergence through the (now + multicast, snapshot-iterated) retirement fan-out, ownership-ledger + fold, transactional late-bind Publication seam. Dormant: C3c's first + act is the GameRuntime binding + production Advance drive. + **Carried findings for C3c:** the controller is live from the + activation commit onward (abandonment leaves it to ordinary entity + teardown — retail has no entry-flow rollback); EvaluateActivation's + post-commit DeferredCell overload is encapsulated behind Advance. - **C3b — remote body construction at Create (dormant):** retail-anchored body construction from the wire PhysicsSpawnData per `set_description` order for residence-route remote/creature Creates.