docs(render): OVERHAUL ledger — S2 code-complete, G2 provisional PASS, morning handoff
§13: S2 row records chunk 5 + closeout `c94a1a40`, the review fix batch, the
gate counts, every self-gate run (the chunk-5 FAIL on the Facility wall
panels and the candidate PASS), the membership-probe run and the chunk-4
connected soak; the gate table names the six S2 commits and the revert rule.
The G2 morning handoff gives the owner the candidate build, the checklist,
the PNG paths and the automated-gate summary; G2 stays provisional until the
owner double-checks.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
c94a1a407e
commit
78068b2cfe
2 changed files with 97 additions and 2 deletions
|
|
@ -0,0 +1,95 @@
|
|||
# Campaign OVERHAUL — G2 morning handoff (2026-09-03)
|
||||
|
||||
**Status:** S2 (World graph) is CODE-COMPLETE and self-gated PROVISIONAL
|
||||
PASS. The owner double-checks the three spots below; G2 is PASSED only when
|
||||
the owner says so (plan §13).
|
||||
|
||||
**Candidate build:** commit `c94a1a40` (code; the ledger/handoff commit follows it) on `claude/campaign-w-retail-frame-walk`
|
||||
(worktree `.claude/worktrees/peaceful-blackburn-5333f0`), Release, dev pak
|
||||
`acdream.pak` recipe 8 in `%USERPROFILE%\Documents\Asheron's Call`.
|
||||
|
||||
Launch exactly the way the self-gate does (direct login, no select screen):
|
||||
|
||||
```powershell
|
||||
pwsh -NoProfile -File tools\overhaul-selfgate\run-selfgate.ps1 -Label owner-g2
|
||||
```
|
||||
|
||||
or play it by hand with the usual `ACDREAM_LIVE=1` launch and the three
|
||||
`/teleloc` poses in `tools\overhaul-selfgate\route.txt`.
|
||||
|
||||
## What S2 changed (one paragraph)
|
||||
|
||||
The physics registry's retail cell array (`CPhysicsObj::calc_cross_cells_static`
|
||||
+ `add_shadows_to_cells`) is now the ONLY thing that decides which cells an
|
||||
object is drawn from. One flood per registration feeds both the collision rows
|
||||
and the per-part render rows; movement republishes from the transition's cells;
|
||||
equipped children inherit the root's cells; the walk reads the registry's per-cell
|
||||
part list and nothing else (every render-side flood, sweep, bucket and fallback is
|
||||
deleted). Statics with no collision geometry (decorative trim, wall panels) now
|
||||
register render-only instead of riding a deleted fallback.
|
||||
|
||||
## What the night found and fixed after chunk 5
|
||||
|
||||
| # | Finding | Fix | Pin |
|
||||
|---|---|---|---|
|
||||
| 1 | Streaming reflood re-registered from collision shapes only → every reflooded owner lost render membership | `RefloodOwnerForLandblock` forwards the retained part array | `RefloodLandblock_Keeps*` (Core) |
|
||||
| 2 | **Self-gate pixel diff:** Facility Hub's purple-lit wall panels went grey — they were MISSING statics (non-colliding, never registered), not a lighting change | both static publishers register non-colliding statics render-only | `CompletePublication_NonCollidingStaticRegistersRenderOnly` (App), `PublishStaticCollision_NonCollidingGfxObjStatic_RegistersRenderOnly` (Content) |
|
||||
| 3 | Dual review (arch + retail lens): `Suspend` kept render rows; attach/detach invisible to staged commits; an attached child re-flooded on re-registration; landblock removal/retirement left retail rows (unbounded growth); render-only owners could never move; empty part array claimed cells; per-move closures; EnvCell shells aliasing the entity-id index; index predicate missing the id; dead per-cell scene indices | all fixed in the registry / scene | seven new Core pins + two `ArchRenderSceneTests` pins |
|
||||
|
||||
Register: AD-116 (chunk 5) and AD-117 (four residual Contract A/B readings, filed
|
||||
tonight — the render-only destination-cell rule is the one a cdb trace should
|
||||
retire at the capture session).
|
||||
|
||||
## Owner checklist (the G2 gate, plan §10)
|
||||
|
||||
Look for objects that flicker, pop, or vanish as you MOVE and ROTATE (the walk
|
||||
now draws exactly what the registry says, so a membership bug shows as an
|
||||
object missing from one viewpoint and present from another).
|
||||
|
||||
1. **Cathedral (pose 1)** — the floating stairs and the ramp (Setup `0x020009A2`)
|
||||
stay solid while you walk up/down and turn; no panel of the outside structure
|
||||
pops through interior walls MORE than on the G1 build (the cathedral leak
|
||||
itself is S3/S4's target, not G2's).
|
||||
2. **Facility Hub (pose 2)** — the purple-lit wall panels beside the corridor are
|
||||
BACK (compare `02-facility-stairs.png` in the two runs below); the stairs
|
||||
(Setup `0x02000623`) stay solid from both cells `0x8A02015E`/`0x8A02015F`
|
||||
while moving and rotating on them; the drudge draws in the room.
|
||||
3. **Holtburg house (pose 3)** — barrel, chest, table, bottle, books all present;
|
||||
step outside and back in.
|
||||
4. **Dense Tuskers / remote players** (free roam) — a remote player seen across a
|
||||
cathedral wall through a portal is drawn where it stands, not where it was;
|
||||
nothing stays behind after it leaves a room (suspend/retire fixes).
|
||||
5. **Spell cast** — a travelling spell effect draws along its path (render-only
|
||||
owners now move with their destination cell).
|
||||
|
||||
## Self-gate evidence (lead-run, provisional)
|
||||
|
||||
| Run | Build | Verdict |
|
||||
|---|---|---|
|
||||
| `logs/selfgate-20260902-231426-baseline-g1-binary` | G1-accepted binary | reference frames |
|
||||
| `logs/selfgate-20260903-002632-s2-chunk5-reflood` | chunk 5 + reflood fix | **FAIL** — Facility wall panels grey (left-wall mean RGB 29,26,23 vs baseline 65,17,21) |
|
||||
| `logs/selfgate-20260903-010022-s2-review-fixes-3` | this candidate | **PROVISIONAL PASS** — wall panels back (left-wall mean RGB 79,20,25, identical to the chunk-3/4 builds); cathedral 13.6% / Facility 15.0% / house 13.4% px differ vs baseline, the same band the accepted chunk-3/4 runs sat in (drudge pose + noise); graceful logout, zero exceptions |
|
||||
|
||||
Per-pose PNGs sit in `<run>/artifacts/screenshots/0{1,2,3}-*.png`; the client log
|
||||
is `<run>/client.log`.
|
||||
|
||||
## Automated gate on the candidate
|
||||
|
||||
Release build 0 errors. Core 4,984/4,984 · Content 214/214 · Runtime 1,884/1,884 · App hermetic lane (CI filter) 6,760/6,760 · App InstalledDat lane 217 pass / 1 skip / 2 pre-existing #383 failures · App Windows lane 1/1.
|
||||
|
||||
Known pre-existing non-S2 failures (unchanged tonight): the two installed-DAT
|
||||
layout sweeps (`LayoutImporterMediaBearingChildSweepTests`,
|
||||
`LayoutImporterInvisibleSweepTests` — #383 fixture drift) and
|
||||
`TowerAscentReplayTests.TowerAscent_StaircaseStaysConeVisible_EveryStep`
|
||||
(#119 residual, S3 viewcone).
|
||||
|
||||
## After G2
|
||||
|
||||
1. The owner's ~1 h retail capture session (`tools/walk-oracle/oh/`, recon attach
|
||||
first) — add a `CTransition` trace at `num_sphere == 0` to retire AD-117(1).
|
||||
2. S3 Walk.
|
||||
|
||||
Open tails carried into S5: retire the obsolete `-CollisionShadowEvery` referee in
|
||||
`tools/run-connected-r6-soak.ps1`; the `[walk-membership]` line rides the #177
|
||||
probe flag scheduled for deletion; `GetRetailPartEntriesInCell` hands out the live
|
||||
list (document or copy-on-read if a walk-time mutation ever appears).
|
||||
Loading…
Add table
Add a link
Reference in a new issue