docs(rendering): close slice G1 candidate gate

This commit is contained in:
Erik 2026-07-25 00:34:18 +02:00
parent e346f8bbaf
commit 720578592b
2 changed files with 64 additions and 2 deletions

View file

@ -24,8 +24,9 @@ retail-faithful gameplay
| F4 — dynamic indices | complete | The contained scene now maintains outdoor/static, per-cell static/dynamic, special dynamic-route, translucent, selectable, light-candidate, and dirty indices incrementally. Final-frame live/equipped synchronization remains active-only, and active animated statics are synchronized from the scheduler's active workset rather than a resident-world scan. The production scene remains unconstructed and non-drawing. | | F4 — dynamic indices | complete | The contained scene now maintains outdoor/static, per-cell static/dynamic, special dynamic-route, translucent, selectable, light-candidate, and dirty indices incrementally. Final-frame live/equipped synchronization remains active-only, and active animated statics are synchronized from the scheduler's active workset rather than a resident-world scan. The production scene remains unconstructed and non-drawing. |
| F5 | complete | Exact `81e2f1a5` passed capped and uncapped nine-stop routes plus uncapped dense Arwic. Across the final checkpoints the referee completed 1,663 + 1,677 + 81 comparisons with zero mismatches, zero pending deltas, zero rejected operations, exact binary/source identity, and graceful shutdown. Evidence: `docs/research/2026-07-24-slice-f5-render-scene-shadow-gate.md`. | | F5 | complete | Exact `81e2f1a5` passed capped and uncapped nine-stop routes plus uncapped dense Arwic. Across the final checkpoints the referee completed 1,663 + 1,677 + 81 comparisons with zero mismatches, zero pending deltas, zero rejected operations, exact binary/source identity, and graceful shutdown. Evidence: `docs/research/2026-07-24-slice-f5-render-scene-shadow-gate.md`. |
| G0 — borrowed frame product | complete | Two reusable arenas publish exact generation/frame-stamped borrowed views for scene candidates, cell ranges, transforms, classification, light sets, selection, PView/clip references, counts, and source digest. Release/reuse invalidates every copied view; abort never publishes; frame N may build while N-1 is borrowed; the warm path allocates zero bytes. Eight focused tests pass inside the 3,743-App / 8,227-solution Release gate. | | G0 — borrowed frame product | complete | Two reusable arenas publish exact generation/frame-stamped borrowed views for scene candidates, cell ranges, transforms, classification, light sets, selection, PView/clip references, counts, and source digest. Release/reuse invalidates every copied view; abort never publishes; frame N may build while N-1 is borrowed; the warm path allocates zero bytes. Eight focused tests pass inside the 3,743-App / 8,227-solution Release gate. |
| G1 — scene-query replacement | code gate complete; connected gate pending | The incremental scene now builds the same-frame candidate product from outdoor, per-cell, look-in, outside-stage, and dynamic indices, preserving PView route multiplicity and hidden-versus-withdrawn ownership. A compare-only controller checks canonical route/cell/entity membership against the accepted current PView path; lifecycle JSON publishes counts, digests, and the first mismatch. Twenty-four focused render-scene/frame-product tests pass inside the 3,745-App / 8,229-solution Release gate. No production draw consumer has switched. | | G1 — scene-query replacement | complete | Exact `e346f8bb` passed capped and uncapped nine-stop routes plus uncapped dense Arwic: 29,392 + 29,025 + 1,522 same-frame candidate comparisons, zero mismatches, equal counts/digests at every checkpoint, exact binary/source identity, and graceful shutdown. Evidence: `docs/research/2026-07-25-slice-g1-scene-query-candidate-gate.md`. |
| G2G5 | pending | No production consumer has switched. | | G2 — packed dispatcher input | active | Convert the accepted scene candidates into an acdream-owned packed dispatcher input and compare its complete instance payload against the current WorldEntity boundary without drawing twice. |
| G3G5 | pending | No production consumer has switched. |
The exact pre-F/G runtime rollback anchor remains `e7d9d6fa`. F0 is The exact pre-F/G runtime rollback anchor remains `e7d9d6fa`. F0 is
non-drawing diagnostic infrastructure and therefore is not a visual-cutover non-drawing diagnostic infrastructure and therefore is not a visual-cutover

View file

@ -0,0 +1,61 @@
# Slice G1 Scene-Query Candidate Gate
**Date:** 2026-07-25
**Candidate:** `e346f8bbaf5c6d73498d74da32bfc37caf8c4e44`
**Result:** accepted; G1 complete
## Purpose
G1 builds the exact current render frame's candidate routes from the
incremental render scene instead of walking `LandblockEntries`. It remains a
compare-only source: production still draws the accepted
`InteriorEntityPartition`/`WorldEntity` path.
The comparison preserves route, route index, cell, duplicate membership, and
projection identity. Sorting is allowed only within those dimensions so
unordered retained scene indices cannot create a false mismatch while PView
order and route multiplicity remain exact.
## Exact physical evidence
| Route | Report | Final comparisons | Mismatch | Candidate parity | Exit |
|---|---|---:|---:|---|---|
| Capped nine-stop | `logs/connected-r6-soak-20260725-001333.report.json` | 29,392 / 29,392 | 0 | exact at all nine checkpoints | graceful |
| Uncapped nine-stop | `logs/connected-r6-soak-20260725-002328.report.json` | 29,025 / 29,025 | 0 | exact at all nine checkpoints | graceful |
| Uncapped dense Arwic | `logs/connected-dense-town-20260725-003231.report.json` | 1,522 / 1,522 | 0 | 4,274 / 4,274 at checkpoint | graceful |
Every route reported:
- `Passed=true`, `ExitCode=0`, and `GracefulExit=true`;
- source commit, embedded binary commit, and candidate commit equal to
`e346f8bbaf5c6d73498d74da32bfc37caf8c4e44`;
- product and current PView frame sequences equal;
- expected and actual candidate count equal;
- expected and actual candidate digest equal;
- `firstMismatch=null`.
The nine-stop routes covered Caul, Sawato, Rynthid, Aerlinthe, Holtburg,
same-location Sawato revisit, Caul return, Sawato plateau, and Caul plateau.
They exercised outdoor and interior roots, door/outside routes, nested
building look-ins, non-flooded retained cell data, portal transitions,
equipped children, movement, jump, combat, generation replacement, and
graceful logout. Dense Arwic exercised 15,530 resident world entities and 111
active animated statics during its stationary turn sample.
## Deterministic gate
- 24 focused current-oracle, shadow-scene, frame-product, and G1 route tests;
- 3,745 App tests / 3 skips;
- 8,229 complete-solution tests / 5 skips;
- exact hidden-spatial versus portal-withdrawn candidate behavior;
- EnvCell shell projections excluded from object routes;
- exact mismatch reporting after a retained projection is removed.
## Rollback
G1 does not change the production draw source. Commit `e346f8bb` is safe to
retain if a later visual cutover is reverted. The exact pre-cutover runtime
rollback anchor remains `e7d9d6fa`. G4 must record its own cutover commit
before connected visual verification.