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>
91 lines
4.2 KiB
Markdown
91 lines
4.2 KiB
Markdown
# 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
|
|
|
|
- `LandblockBuild` carries one immutable `LandblockCollisionBuild` containing
|
|
sorted source IDs, flat GfxObj/Setup collision, flat CellStruct geometry, and
|
|
per-EnvCell topology.
|
|
- `LandblockBuildFactory` reads that closure from the existing
|
|
`IPreparedCollisionSource` after the serialized DAT transaction. A missing or
|
|
corrupt prepared record rejects the complete near-tier generation; a
|
|
graph-only partial publication is forbidden.
|
|
- `LandblockPhysicsPublisher` commits 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.
|
|
- `LiveCollisionAssetPublisher` applies the same strict dual-publication rule
|
|
to CreateObject, appearance, and local-player Setup paths.
|
|
- `PhysicsDataCache` exposes 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.
|