docs(overhaul): stop S4-c2 after final review
This commit is contained in:
parent
ac74fbd84e
commit
dc971ea2be
3 changed files with 112 additions and 8 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1,9 +1,11 @@
|
|||
# Campaign OVERHAUL v2 — hand-off at S4 chunk 2, fix round 1 DONE / round review NOT started (2026-09-04 ~12:20 local)
|
||||
# Campaign OVERHAUL v2 — hand-off at S4 chunk 2 STOPPED UNLANDED after the final allowed round (2026-09-04)
|
||||
|
||||
Clean state for a fresh session. Everything referenced is on disk under the
|
||||
Windows user `erikn`; a different Claude account on this machine reads it all.
|
||||
No subagent is running at hand-over: the chunk-2 fixer finished and committed
|
||||
(`cc8e5677a` in worktree `s4-c2-impl`); §3 is the exact state of chunk 2 and what is left on it.
|
||||
**2026-09-04 takeover closeout:** packet §12's final-fix implementation is
|
||||
`c4cbc1d0d` in `s4-c2-impl`, but both sequential final lenses FAIL on real
|
||||
EnvCell code/test/register defects. A further fix is round 3, so the campaign
|
||||
stop rule fired. The implementation is clean and deliberately UNLANDED; the
|
||||
campaign branch still contains S4-c1 renderer code `766f9e749`. Read packet
|
||||
§13 and this file's §3 before any stale “review then land” instruction below.
|
||||
|
||||
## 0. Read order
|
||||
|
||||
|
|
@ -53,7 +55,7 @@ Scratch worktrees (detached):
|
|||
|
||||
| Worktree | At | Purpose |
|
||||
|---|---|---|
|
||||
| `s4-c2-impl` | `cc8e5677a` (fix round 1) on `048d5b12f` (the chunk) on `766f9e749`; clean | **S4 chunk 2 lives HERE, not on the branch yet** — review the round, then land (§3) |
|
||||
| `s4-c2-impl` | `c4cbc1d0d` (final fix round) on `cc8e5677a` on `048d5b12f` on `766f9e749`; clean | **STOPPED evidence only; do not land** — packet §13 |
|
||||
| `s4-c1-impl` | `9ba8f013e` | S4-c1 baseline BINARY, built (Release App + Cli) for the landing soak A/B; keep until S4-c2 lands |
|
||||
| `s2-final-ab` | `78068b2c` | S2-final binary for same-session perf A/B (keep) |
|
||||
| `s3-review-fix` | `6575cfcee` | pre-S4 control build; stalls at the foundry login (#462) — not usable as a control |
|
||||
|
|
@ -95,9 +97,23 @@ every deviation gets a register row in the same commit.
|
|||
chamber; the zoomed-out FRONT view from the stairwell (hall arches + sky);
|
||||
#458's far-block admission (AD-118, 0.5 % edge-plane precision).
|
||||
|
||||
## 3. S4 chunk 2 — where it stands (fix round 1 DONE, review of the round NOT started)
|
||||
## 3. S4 chunk 2 — STOPPED UNLANDED after final-round review
|
||||
|
||||
**Two commits sit in worktree `s4-c2-impl`, NOT yet on the campaign branch:**
|
||||
**Binding current state (supersedes the historical procedure later in this
|
||||
section):** lead contract `ac74fbd84` added packet §12. Final implementation
|
||||
`c4cbc1d0d` passed its implementer matrix, then the retail lens and the
|
||||
production/gate lens both returned FAIL. The blockers are: transparent
|
||||
EnvCell subsets still draw in the opaque pass before FIFO submission; CLIP
|
||||
and detail-immediate subsets use alpha/no-depth state rather than retail's
|
||||
clip-test/depth-writing state; the tests omit the preceding opaque draw and
|
||||
pipeline descriptors; source-owned EnvCell lists are not bounded under
|
||||
capacity rejection; the 0-B tests bypass the claimed scan/filter/RHI paths;
|
||||
AP-238/AP-240 and the result note are therefore false. Packet §13 is the full
|
||||
file:line/evidence record. A code/test/register repair is a forbidden third
|
||||
round. No cherry-pick, graphical gate, or soak ran. G3/G4 remain unpassed.
|
||||
|
||||
**Historical state before the final round (kept for audit; do not execute its
|
||||
landing procedure):**
|
||||
|
||||
| Commit | What | State |
|
||||
|---|---|---|
|
||||
|
|
|
|||
|
|
@ -720,3 +720,90 @@ change is a third round: STOP, leave the implementation unlanded, and write
|
|||
the chunk failure into the packet/ledger. Comment-only clarification that
|
||||
does not change a claim may be adjudicated by the lead; it may not conceal a
|
||||
behavior or test defect.
|
||||
|
||||
## 13. S4-c2 final-round result — STOPPED UNLANDED (2026-09-04)
|
||||
|
||||
**Stop rule fired.** Final-fix implementation `c4cbc1d0d` (directly on
|
||||
`cc8e5677a`, worktree `s4-c2-impl`) passed its implementer matrix, but BOTH
|
||||
sequential §12 lenses found code/test/register changes that would require a
|
||||
third fix round. Section 12 explicitly bars that round. None of
|
||||
`048d5b12f`, `cc8e5677a`, or `c4cbc1d0d` was cherry-picked to the campaign
|
||||
branch; the branch's latest renderer code remains S4-c1 `766f9e749`.
|
||||
|
||||
### 13.1 Retail-faithful lens — FAIL
|
||||
|
||||
Paired executable/PDB was re-confirmed (`{9e847e2f-777c-4bd9-886c-22256bb87f32}`,
|
||||
age 1). The particle row-5 fix and exact EnvCell `ConstructMesh` mask/list
|
||||
selection are correct. The following are not:
|
||||
|
||||
1. **BLOCKING — a deferred EnvCell subset already draws at the cell turn.**
|
||||
`WalkProductionLeafRenderer.DrawCellShell` calls `DrawOpaqueCellShells`
|
||||
before `SubmitOrDrawTransparentCellShell`. `EnvCellRenderer`'s opaque pass
|
||||
does not exclude a non-additive `IsTransparent` batch, so canonical pure
|
||||
ClipMap `F4180104` / surface `08000BFF` is drawn immediately before its
|
||||
CLIP token is appended, then drawn again at the drain. Retail row 3 only
|
||||
appends. The new production fixture starts at dispatch and never executes
|
||||
this preceding opaque-shell call.
|
||||
2. **MAJOR — CLIP/detail-immediate surface state is wrong.** All non-additive
|
||||
EnvCell transparent ranges bind `_alphaPipeline` (StraightAlpha,
|
||||
depth-write off). Retail's pure ClipMap replay uses ONE/INVSRCALPHA,
|
||||
alpha test, and depth-write on (`SetSurface` 0x0059c6e4–0x0059c806;
|
||||
`SetDepthBufferMode` call 0x0059c866). Detail-active row 1 uses that same
|
||||
retail base state before its detail combine. The port also hardcodes
|
||||
`overrideClipmap:true` although the router's ordinary mask-`0x08` row has
|
||||
false; replay ignores the flag. Tests assert draw counts, not bound
|
||||
pipeline/blend/depth/override state, and construct mask-`0x08` as
|
||||
`AlphaBlend`, so the wrong state stays green.
|
||||
3. **MAJOR — register/result claims are false.** AP-238's “token granularity
|
||||
only” statement omits premature/double draw and surface-state divergence;
|
||||
AP-240's EnvCell “CLIP feeder” is only queue bookkeeping while the visible
|
||||
subset has already drawn. The implementation's §12 result repeats those
|
||||
claims.
|
||||
4. **MINOR truth:** the mesh-particle pipeline summary still says it shares
|
||||
the billboard depth bracket despite the opaque depth-write exception; an
|
||||
EnvCell test comment cites a nonexistent `Assert.Empty(log)`.
|
||||
|
||||
The lens reproduced 46/46 relevant queue/particle/EnvCell/PView tests and
|
||||
42/42 particle/EnvCell renderer tests. Green tests do not contradict the
|
||||
findings because they omit the preceding opaque pass and pipeline state.
|
||||
|
||||
### 13.2 Production/gate-honesty lens — FAIL
|
||||
|
||||
The second lens independently confirmed both rendering blockers and added:
|
||||
|
||||
1. **MAJOR — source scratch is not queue-bounded.** Each fixed-list
|
||||
`EnvCellAlphaDrawSource` retains pending/prepared/draw `List<uint>`
|
||||
buffers. Payload is reserved before queue admission; after 3,000 entries
|
||||
`TryAppend` rejects, but the source continues growing and `Reset` only
|
||||
clears capacity. The queue's scratch budget/capacity therefore does not
|
||||
bound retained source memory under rejection pressure.
|
||||
2. **MAJOR — allocation evidence is vacuous for the claimed paths.** The two
|
||||
0-B tests feed route flags directly into static dispatch with no-op sinks;
|
||||
they do not run the production EnvCell scan/filter/RHI path, and the
|
||||
particle test does not run `DrawImmediateParticleSubmissionRhi`.
|
||||
3. R2-3's rejected-first-use cleanup itself is correct for flush/end/abort;
|
||||
M1, M3, and A1 have material production pins; allowed scope and
|
||||
`git diff --check` pass.
|
||||
|
||||
This lens reproduced Release 0 warnings/errors, 81/81 focused production
|
||||
tests, and 32/32 shader tests. Its official hermetic no-retry run was
|
||||
16,727 pass / 1 pre-existing `Console.Out` capture-race failure; isolated App
|
||||
rerun passed 6,875/6,875. InstalledDat was unavailable in that lens because
|
||||
the opt-in DAT environment was not configured. The implementer's clean-state
|
||||
evidence remains: hermetic 16,728/16,728; InstalledDat 255 pass / 10 expected
|
||||
fail / 1 skip; shaders 32/32; corrected focused 211/211. Those counts prove
|
||||
the tested behavior only; they do not repair the missing discriminators.
|
||||
|
||||
### 13.3 Disposition
|
||||
|
||||
- `s4-c2-impl` remains clean, detached at unlanded `c4cbc1d0d` for evidence.
|
||||
- No code fix, cherry-pick, graphical client, validation self-gate, or
|
||||
stationary A/B was performed after the stop. The user-required graphical
|
||||
gate is deliberately inapplicable to unlanded code.
|
||||
- A technically complete next attempt would need to fix pass membership,
|
||||
carry exact clip/override state into an EnvCell clip/depth-writing pipeline,
|
||||
bound source-owned payload under rejection, add end-to-end walk-leaf plus
|
||||
pipeline-state/allocation discriminators, and rewrite AP-238/AP-240/result
|
||||
truth. That is a THIRD fix round and is NOT authorized by this campaign
|
||||
chunk. Resume only by an explicit owner decision that changes the process;
|
||||
otherwise S4-c2 is stopped and G3/G4 remain unpassed.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue