From a32aba35d1d945b9d3194a84e70facf74a7d7608 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 2 Aug 2026 07:43:30 +0200 Subject: [PATCH] docs(physics): record cutover slice C2 completion C2 landed at 63c601ff with dual review PASS after two fix rounds. The plan records the halved allocation result and tightened gate, the class-wide token-based staleness rework the pooling forced, the documented residual floor (Core-side ~520 B/op deferred to the C3 activation gate as a possible C2b), and the two review maintenance notes. Next slice: C3, the spawn-frequency host cutover of routes 1+8. Co-Authored-By: Claude Fable 5 --- docs/plans/2026-08-02-placement-cutover.md | 26 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/docs/plans/2026-08-02-placement-cutover.md b/docs/plans/2026-08-02-placement-cutover.md index 648d0232..625603dc 100644 --- a/docs/plans/2026-08-02-placement-cutover.md +++ b/docs/plans/2026-08-02-placement-cutover.md @@ -92,10 +92,28 @@ same commit) → docs/handoff commit. No workarounds; no fused slices. direct object-clock bypasses, and containing headless's uncaught prepared-collision `InvalidDataException` — IS the C3 route-1 flip and moves there. No separate C1 commit. -- **C2 — placement allocation budget.** Pool or eliminate the operation/ - projection envelope allocations on the accepted placement path (root - cause, not a raised cap), or obtain explicit user approval for a measured - budget. Re-measure; the regression gate keeps the ceiling. +- **C2 — placement allocation budget — COMPLETE at `63c601ff` + (2026-08-02, dual reviews PASS after two fix rounds).** 2,032 → 944 + B/op via pooled operation envelopes (bounded, reset-at-rent, double- + retire guarded, reset/dispose-cleared, ledger-visible), a cached + collision-callback delegate over an explicit context stack, and a + non-boxing pending-head read; gate tightened to 1,536. The pooling + forced a class-wide staleness rework: captured-token-vs-fresh-lookup at + every reentrancy-spanning frame (26-site audit), hoisted stack locals + for retail's handle_all_collisions bits, token-gated bookkeeping + writes, and a deliberately identity-agnostic settle path (retail's + SetPositionInternal completes unconditionally even for displaced + operations). + **Residual floor (documented at the gate, decision deferred to the C3 + activation gate where the user is in the loop):** ~520 B/op inside + Core's `PhysicsEngine.SetPosition` (transition init / query-footprint + materialization — a potential C2b if C3's connected profile shows it + matters) and ~208 B/op of sorted-tree node per pending receipt. + **Maintenance notes from review (no action):** the no-reentrancy + proofs on the 15 surviving reference-based currency checks are + comment-enforced; `IsCurrent(Operation)` remains available and a new + reentrancy-spanning call site would silently inherit the tautology — + its doc comment warns. - **C3 — spawn-frequency cutover: routes 1 + 8.** Flip graphical AND headless initial Create/login registration to `RegisterEntityWithInitialResidence` + executor + placement receipts