docs(overhaul): record s5 closeout retail capture stop
This commit is contained in:
parent
4237a6b2b3
commit
7c7ccc6252
3 changed files with 134 additions and 3 deletions
|
|
@ -1,7 +1,8 @@
|
|||
# Campaign OVERHAUL v2 — S5 consumers, material, and closeout packet
|
||||
|
||||
**Status:** S5-c1 through S5-c4 plus #470/#469 LANDED + REVIEW-CLOSED with lead
|
||||
graphical gates PROVISIONAL PASS; S5-c5, closeout, and G4 remain.
|
||||
**Status:** S5-c1 through S5-c5 plus #470/#469 LANDED + REVIEW-CLOSED with lead
|
||||
graphical gates PROVISIONAL PASS; closeout C1 passed; C1a is STOPPED on the
|
||||
retail-live fact in #472; connected/performance C2 and G4 remain.
|
||||
**Branch:** `claude/campaign-w-retail-frame-walk`.
|
||||
**Gate:** G4 remains unpassed. Nothing merges to `main` before G4.
|
||||
|
||||
|
|
@ -3493,3 +3494,98 @@ registration dispatch, canonicalization boundaries, InstalledDat lane
|
|||
provenance, manifest truth, and allowed scope. A failed lens gets one bounded
|
||||
fix contract; review stops only after pass 10. After C1a lands, C2 runs the
|
||||
connected lifecycle/performance closeout and G4 follows.
|
||||
|
||||
## 38. S5 closeout C1a stopped result — one observer defect and one unrecoverable static fact
|
||||
|
||||
### 38.1 The contracted exact transcript gate stopped before landing
|
||||
|
||||
The OpenAI implementer worked in the clean scratch worktree
|
||||
`s5-closeout-harness` at contract base
|
||||
`4237a6b2b3d4e51ec0948257e2ff6f951b08c97c`. The ordinary parser consumer for
|
||||
`cathedral-stair-arch.walk.log` passed, and a draft of the independent
|
||||
geometry/membership digest formed a real product, but the required every-frame
|
||||
`Signature8` comparison failed. Section 37.4 says that inability to reproduce
|
||||
the committed fixture stops the whole chunk. The implementer therefore made no
|
||||
commit, ran no official gate or mutation, changed no production source or
|
||||
fixture, launched no client, and restored the scratch worktree clean at the
|
||||
contract base. The draft product hash is not evidence and is deliberately not
|
||||
landed or quoted as a golden.
|
||||
|
||||
All four complete marked frames have the same exact alignment:
|
||||
|
||||
- retail tokens: 2,158; replay tokens: 2,158; LCS: 2,156;
|
||||
- tokens 0 through 374 agree;
|
||||
- replay inserts `LC:e2290001` and `SC:e2290001` at replay positions 375–376;
|
||||
- retail contains a second consecutive `EC:f4180106` at retail position 2,126
|
||||
and another at 2,141; replay emits one at each site.
|
||||
|
||||
Per-frame `WalkLandscapeDatBuilder.SetViewer`, one discarded same-pose warmup,
|
||||
and both together produce the identical edit script in every frame. This is
|
||||
not stale viewer state, a first-frame-only effect, or a broad sequence shift.
|
||||
|
||||
### 38.2 The two missing EC tokens are a test-recorder defect, not renderer behavior
|
||||
|
||||
Retail `PView::DrawCells` (`0x005A4840`) reads a flood cell's live view count at
|
||||
`0x005A4AA9` and loops `setup_view` plus `RenderDeviceD3D::DrawEnvCell` at
|
||||
`0x005A4AB1–0x005A4ACC`; the paired bytes contain the `47 4B 75 E8` loop. Its
|
||||
object/`OC` pass remains once per cell at `0x005A4ADE–0x005A4B1A`.
|
||||
|
||||
The InstalledDat test recorder instead calls
|
||||
`WalkTraceReplayContext.AppendFloodTurns`, which emits one `EC` per cell. Its
|
||||
own class comment already names this known limit and says S5 must remove it.
|
||||
Production is already correct: `WalkFrameDriver.EmitFloodTurns` captures each
|
||||
cell's route and prints one `EC` per `SliceCount`, then keeps one object turn per
|
||||
cell. The eventual test-only correction is bounded: while the callback still
|
||||
owns the live flood state, read each cell's `TopView.ViewCount`, emit that many
|
||||
`EC` tokens in reverse-cell order, then one `OC` per cell. It must not change
|
||||
production or weaken `Signature8`.
|
||||
|
||||
### 38.3 The e229 cause cannot be recovered statically
|
||||
|
||||
The named retail decomp and paired executable prove two distinct no-`LC`
|
||||
causes inside `LScape::draw_check_blocks` (`0x00505F80`): the
|
||||
`land_blocks` slot is null at `0x00506184`, or a resident block's
|
||||
`Render::block_check` call at `0x005061DF` returns `OUTSIDE`. The paired bytes
|
||||
at the latter site are `E8 6C 7A 04 00` (call `0x0054DC50`) followed by
|
||||
`85 C0 74 0E`. `WalkLandscape.CheckBlocks` has the same control-flow shape.
|
||||
|
||||
The replay test builder eagerly installs every extant DAT block in its 51 × 51
|
||||
grid. Production `WalkLandscapeAssembler` deliberately leaves unstreamed slots
|
||||
null. The walk transcript records only submitted `LC`/`SC` turns; it does not
|
||||
record retail residency or rejected block checks. Therefore absence of
|
||||
`LC:e2290001` cannot distinguish the two retail causes from static evidence.
|
||||
The block is a one-cell coarse ring-18 block, so AD-118's measured D3D/x87
|
||||
edge-plane boundary is the strongest hypothesis, but applying that row without
|
||||
the missing residency/verdict fact would be speculation. No production
|
||||
visibility change, `KnownFailure`, fixture normalization, or new divergence
|
||||
row is authorized.
|
||||
|
||||
The retail lens reverified the paired binary: executable SHA-256
|
||||
`006FFEADC5D679C871497112A5BD1F87714D0E273E2166BAE5052DDE369297B1`, CodeView
|
||||
GUID `{9E847E2F-777C-4BD9-886C-22256BB87F32}`, age 1.
|
||||
|
||||
### 38.4 Exact owner capture that unblocks C1a
|
||||
|
||||
Issue #472 owns the stop. Reuse
|
||||
`tools/walk-oracle/oh/oh-capture-blockset.cdb.template` and
|
||||
`oh-capture-blockcheck.cdb.template`, changing the filtered DID to
|
||||
`0xE229FFFF`, at the exact first complete-frame pose from the committed
|
||||
fixture:
|
||||
|
||||
```text
|
||||
P f4180114 421e545d 4187e406 4336c9e1 3f800000 b71e18af 30947ee4 348114b1
|
||||
```
|
||||
|
||||
Keep the output as
|
||||
`cathedral-stair-arch-e229.blockset.log` and
|
||||
`cathedral-stair-arch-e229.blockcheck.log` beside the other OH captures. The
|
||||
blockset must prove whether retail has a resident e229 slot. If it is resident,
|
||||
the filtered capture must record every active-view interval vector, the z slab,
|
||||
and each `block_check` verdict. A null slot contracts a replay-residency harness
|
||||
correction; resident plus `OUTSIDE` contracts the test-recorder correction and
|
||||
classifies the remaining difference under AD-118. Any different result gets a
|
||||
new bounded contract from the observed facts.
|
||||
|
||||
This is the campaign's explicit “retail fact cannot be recovered statically”
|
||||
stop condition. C1a, connected/performance C2, and G4 do not proceed until the
|
||||
capture exists. Nothing has merged to `main`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue