Carry one immutable prepared collision closure with each accepted near-tier generation and install graph plus flat views through the same retained publication receipt. Apply the same strict package-only rule to live entities, add exact sampled graph-authoritative comparison artifacts and lifecycle counters, and prove cancellation, demotion, rehydrate, revisit, teardown, reconnect, and the nine-stop route with 14,064 zero-mismatch samples. Co-authored-by: OpenAI Codex <codex@openai.com>
4.2 KiB
Slice I5 — dual collision publication and connected shadow gate
Outcome
Slice I5 is complete. Production gameplay remains graph-authoritative for this checkpoint, but every streamed near-tier generation and every live DAT object now publishes the matching prepared flat collision representation. The sampled flat path runs from a complete cloned transition, compares exact state and float bits, and cannot alter the graph result used by gameplay.
No visual, collision, movement, or retail algorithm changed in this slice.
Ownership
LandblockBuildcarries one immutableLandblockCollisionBuildcontaining sorted source IDs, flat GfxObj/Setup collision, flat CellStruct geometry, and per-EnvCell topology.LandblockBuildFactoryreads that closure from the existingIPreparedCollisionSourceafter the serialized DAT transaction. A missing or corrupt prepared record rejects the complete near-tier generation; a graph-only partial publication is forbidden.LandblockPhysicsPublishercommits graph and flat views through one retained publication receipt. Cell and topology ownership is withdrawn on exact replacement, near-to-far demotion, full removal, and session teardown.LiveCollisionAssetPublisherapplies the same strict dual-publication rule to CreateObject, appearance, and local-player Setup paths.PhysicsDataCacheexposes typed graph/flat counts in canonical lifecycle snapshots. Landblock-scoped cell and topology catalogs retire together.
Shadow referee
CollisionShadowVerifier samples the production entry points while leaving the
graph result authoritative. The flat query receives one retained, reset-complete
clone of ObjectInfo, SpherePath, and CollisionInfo. Comparisons cover:
- containment availability, point containment, sphere containment;
- root bounding spheres and physics availability;
- cell and GfxObj moving-collision results;
- complete transition state, collision/contact state, sphere path, candidate ordering, walkable vertices, GUID lists, and exact IEEE-754 float bits.
A mismatch or flat fault writes one deterministic JSON artifact. The disabled production path allocates zero managed bytes over 10,000 warmed queries.
Automated evidence
- Focused Core and App collision/publication suites pass.
- Cancellation publishes neither representation.
- Pending receipt to accepted publication, demotion, rehydration, same-location replacement, adjacent-landblock isolation, full removal, and session reset preserve exact ownership without duplication.
- Release build: zero warnings and zero errors.
- Complete solution: 8,396 passed / 5 skipped.
Connected evidence
Lifecycle/reconnect gate:
- artifact:
logs/connected-world-gate-20260725-162020/report.json - capped login, Aerlinthe, Rynthid, Facility Hub, Holtburg, Aerlinthe revisit, then a fresh uncapped reconnect process;
- 12,730 sampled queries, 12,730 exact matches;
- zero mismatches, zero flat faults, zero mismatch artifacts;
- graph/flat cell counts equal at every stable checkpoint;
- all publication, retirement, upload, and warmup backlogs converged to zero;
- both processes disconnected gracefully with exit code 0.
Nine-stop R6 route:
- artifact:
logs/connected-r6-soak-20260725-162614.report.json - Caul, Sawato, Rynthid, Aerlinthe, Sawato revisit, Holtburg, Caul revisit, Sawato plateau, and Caul plateau;
- turn, forward/release, jump, combat-toggle, and movement-truth exercises;
- 42,719 eligible queries, 1,334 sampled queries, 1,334 exact matches;
- zero mismatches, zero flat faults, zero mismatch artifacts;
- graph/flat cell counts equal at all nine stable checkpoints;
- graceful client shutdown and zero gate failures.
The run occurred under RDP/lock-screen conditions. It is accepted for deterministic correctness and lifetime evidence only; its absolute frame/GPU measurements are not a physical-display performance gate.
Next
Slice I6 flips canonical production traversal to the prepared flat
representation in one bisectable commit. The graph remains a temporary
automated referee for the initial cutover gate. The exact cutover commit and
git revert <sha> command must be recorded before correctness/visual
acceptance, after which production graph retention can be removed.