docs(overhaul): hand-off at S4-c2 fix round 1 DONE (cc8e5677a in s4-c2-impl) — what is left on chunk 2, the review and landing procedure; ledger S4 row updated
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
2a35f0a4c3
commit
cb71a92d51
2 changed files with 28 additions and 78 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
||||||
# Campaign OVERHAUL v2 — hand-off at S4 chunk 2, fix round 1 (2026-09-04 ~11:00 local)
|
# Campaign OVERHAUL v2 — hand-off at S4 chunk 2, fix round 1 DONE / round review NOT started (2026-09-04 ~12:20 local)
|
||||||
|
|
||||||
Clean state for a fresh session. Everything referenced is on disk under the
|
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.
|
Windows user `erikn`; a different Claude account on this machine reads it all.
|
||||||
|
|
@ -42,7 +42,7 @@ see §3 for how to find out what the chunk-2 fixer left behind.
|
||||||
| Item | Value |
|
| Item | Value |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Worktree | `C:\Users\erikn\source\repos\acdream\.claude\worktrees\peaceful-blackburn-5333f0` |
|
| Worktree | `C:\Users\erikn\source\repos\acdream\.claude\worktrees\peaceful-blackburn-5333f0` |
|
||||||
| Branch | `claude/campaign-w-retail-frame-walk`; docs tip `2001103ca`, **latest renderer code `766f9e749`** (S4 chunk 1); clean |
|
| Branch | `claude/campaign-w-retail-frame-walk`; docs tip = the commit carrying this file, **latest renderer code ON THE BRANCH `766f9e749`** (S4 chunk 1); clean. Chunk 2 code is in `s4-c2-impl` only (§3). |
|
||||||
| Base | `origin/main` `e102fb36` (2026-08-29); ~275 commits ahead; **nothing merges to main before G4** |
|
| Base | `origin/main` `e102fb36` (2026-08-29); ~275 commits ahead; **nothing merges to main before G4** |
|
||||||
| Dev pak | `%USERPROFILE%\Documents\Asheron's Call\acdream.pak`, bake recipe 8 |
|
| Dev pak | `%USERPROFILE%\Documents\Asheron's Call\acdream.pak`, bake recipe 8 |
|
||||||
| Release binary | `src\AcDream.App\bin\Release\net10.0\AcDream.App.exe` built at `766f9e749` |
|
| Release binary | `src\AcDream.App\bin\Release\net10.0\AcDream.App.exe` built at `766f9e749` |
|
||||||
|
|
@ -53,7 +53,7 @@ Scratch worktrees (detached):
|
||||||
|
|
||||||
| Worktree | At | Purpose |
|
| Worktree | At | Purpose |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `s4-c2-impl` | `048d5b12f` on `766f9e749` (+ the fixer's round-1 commit when it lands) | **S4 chunk 2 — the chunk commit and its fix round live HERE, not on the branch yet** |
|
| `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-c1-impl` | `9ba8f013e` | S4-c1 baseline BINARY, built (Release App + Cli) for the landing soak A/B; keep until S4-c2 lands |
|
| `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) |
|
| `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 |
|
| `s3-review-fix` | `6575cfcee` | pre-S4 control build; stalls at the foundry login (#462) — not usable as a control |
|
||||||
|
|
@ -95,86 +95,36 @@ every deviation gets a register row in the same commit.
|
||||||
chamber; the zoomed-out FRONT view from the stairwell (hall arches + sky);
|
chamber; the zoomed-out FRONT view from the stairwell (hall arches + sky);
|
||||||
#458's far-block admission (AD-118, 0.5 % edge-plane precision).
|
#458's far-block admission (AD-118, 0.5 % edge-plane precision).
|
||||||
|
|
||||||
## 3. In flight: S4 chunk 2 — fix round 1
|
## 3. S4 chunk 2 — where it stands (fix round 1 DONE, review of the round NOT started)
|
||||||
|
|
||||||
**What landed in the worktree:** `048d5b12f` in `s4-c2-impl` (Sonnet, 2026-09-04
|
**Two commits sit in worktree `s4-c2-impl`, NOT yet on the campaign branch:**
|
||||||
09:35): `RetailAlphaQueue` = retail's two FIFO lists (CLIP/ALPHA, 3000 each,
|
|
||||||
capacity drop), `RetailAlphaMeshRouter` (DrawMesh rows 1–5 + ConstructMesh
|
|
||||||
mask), the new `SortCellExit` walk event for DrawBlock's 0.75 valve, the four
|
|
||||||
flush sites, `FlushFartherThan`/every viewer distance deleted. Hermetic
|
|
||||||
6,855/6,855; shaders 32/32.
|
|
||||||
|
|
||||||
**Review round 1 (both lenses FAIL; lead verified every finding at the source;
|
| Commit | What | State |
|
||||||
the core port is exact at the bytes):**
|
|---|---|---|
|
||||||
- BLOCKING: the particle site asserts DrawMesh rows 1/2/4/5 "unreachable" and
|
| `048d5b12f` | the chunk: two FIFO lists, `RetailAlphaMeshRouter`, the `SortCellExit` valve event, four flush sites, distance sort deleted | review round 1: both lenses FAIL (recorded in the ledger and packet §11) |
|
||||||
THROWS; `ParticleRenderer.TryAppendMeshDraws` appends Opaque-classified mesh
|
| `cc8e5677a` | **fix round 1 (Sonnet, 2026-09-04 ~11:00–12:10)** — every item of packet §11 M1–M8 and §11.1 A1–A8 | implementer reports all items landed; lead verified the commit shape (27 files, +1,248/−352), the register ids, the twelve split Facts and the A1 deletion; **the round's two review lenses have NOT run** |
|
||||||
batches → mask 0x00 → row 5 → exception in the render loop.
|
|
||||||
- MAJOR: the CLIP list is structurally EMPTY for ordinary content (ClipMap
|
|
||||||
kinds are `WbDrawDispatcher.IsOpaque` → alpha-to-coverage, never routed;
|
|
||||||
4,183 of 10,556 captured AM entries are CLIP) — no register row;
|
|
||||||
contract C3's detail input hardcoded false while building shells reach the
|
|
||||||
alpha path and the DRAIN applies the detail pass retail's replay never has
|
|
||||||
(`DrawBuilding` @0x0059f2a0 installs `building_detail_surface` @0x0059f2eb
|
|
||||||
before its flush → row 1 immediate); C4 (EnvCell detail-off append) skipped
|
|
||||||
though `EnvCellRenderer.RenderTransparentOrdered` makes it bounded;
|
|
||||||
`IsFirstForList` = first-since-drain where retail's `new` is per-DrawMesh
|
|
||||||
invocation (`0059d4cc/0059d4d0`); the AM/FL gate is all-KnownFailure and the
|
|
||||||
counts are unmatchable by construction; a THIRD `FlushLandscapeAlpha` caller
|
|
||||||
(`RetailPViewRenderer.cs:485`, the #132 outdoor-root drain) is mislabelled as
|
|
||||||
retail's DrawCells flush, which never runs on an outdoor root; AP-236 REUSES
|
|
||||||
an id filed and retired on main by #132.
|
|
||||||
- MINOR: AP-237's cloud example is disproven (Type 0x10114 has alpha-family
|
|
||||||
bits → mask 0x02 both sides); `DrawBlock` cited at its loop head
|
|
||||||
0x005a18d0 (function is 0x005a17c0); "return site" = the call address;
|
|
||||||
scratch-retention argument; stale comments; §10 transcription off by one.
|
|
||||||
- Everything is itemized as **packet §11 (M1–M8) + §11.1 (A1–A8)** on the
|
|
||||||
campaign branch (`3813f0bbf`, `3e76f71d5`).
|
|
||||||
|
|
||||||
**Dispatched:** one Sonnet implementer (plain Agent tool) at ~10:55 local into
|
What `cc8e5677a` did, per the implementer's report (verify each claim against the source before trusting it — `feedback_verify_subagent_claims_against_source`):
|
||||||
`s4-c2-impl`, told to commit ONCE on top of `048d5b12f` with every mutation
|
|
||||||
check's actual failing assertion and every gate's real output line in the
|
|
||||||
commit body. **It runs inside the 2026-09-04 lead session; a session switch
|
|
||||||
kills it.** Find its state:
|
|
||||||
|
|
||||||
```bash
|
- **M1** the two router throws deleted; new `ParticleRenderer.RouteParticleSubmission` (testable) and `DrawImmediateParticleSubmissionRhi` for rows 1/5; particle `materialHasAlpha` from retail's `CMaterial::CheckAlphaValues` @0x005396a0 (has_alpha = 0 only when all four channel alphas are 1.0; `CMaterial::SetTranslucencySimple` @0x005396f0 sets them to `1 − translucency`), i.e. "current alpha ≠ 1.0" from `ColorArgb`'s top byte. **Verify this quote and the reachability path `Particle::Update` @0x0051c290 → `CPhysicsPart::SetTranslucency` yourself; it is the round's one new retail rule.**
|
||||||
git -C C:/Users/erikn/source/repos/acdream/.claude/worktrees/s4-c2-impl log --oneline -3
|
- **M3** detail-surface router input at both Wb sites; new `DrawImmediateAlphaInstance(Rhi)` draws a translucent building-shell instance at its own turn when building detail is on; the drain's detail branch deleted; new register row **AD-120** (the "in place → at the entity's stream mark" adaptation).
|
||||||
git -C C:/Users/erikn/source/repos/acdream/.claude/worktrees/s4-c2-impl status --short
|
- **M6** `RetailPViewPassExecutor.SubmitOrDrawTransparentCellShell` + `EnvCellAlphaDrawSource` (one token per cell, replayed through `RenderTransparentOrdered`); `EnvCellRenderer.TransparentDetailEnabled`.
|
||||||
```
|
- **M4** `RetailAlphaEntry.IsFirstForList` deleted with its wrong pin.
|
||||||
|
- **M5** the six Facts split into `AlphaFlushSites_*` (live, but the class carries `Lane=InstalledDat`, so they pass in the InstalledDat lane, never hermetically) and `AlphaFlushCounts_*` (KnownFailure, three-part truthful reason); new live valve pin `WalkFrameDriverTests.SortCellExit_ValveDrainsThroughReplayAtTheExactBoundary`.
|
||||||
|
- **M2 / A2 / M8c** register: `~~AP-34~~` restored struck-through; AP-236→**AP-238**, AP-237→**AP-239**; new **AP-240** (the structurally empty CLIP list: clip-mapped subsets draw immediately alpha-to-coverage); AD count 92, AP count corrected.
|
||||||
|
- **M7** the cloud citation disproven; a real Translucent+ClipMap-without-alpha-family instance found by a live DAT scan: surface `0x08000015` on GfxObj `0x010001EC` (6,152 surfaces scanned, 27 matches).
|
||||||
|
- **A1** the mislabelled outdoor-root `FlushLandscapeAlpha()` at `RetailPViewRenderer.cs:485` deleted (the pass-end `RenderNormalMode` flush in `RetailAlphaQueue.EndFrame` is retail's outdoor drain); pin in `RetailPViewRendererTests.cs`.
|
||||||
|
- **A4** `ApplyScratchRetention` source-count argument fixed with a pin; **M8a/b/d, A3, A5–A7** citations/comments/§10 fixed; `worldbuilder-inventory.md:420` updated.
|
||||||
|
- Gates the implementer reports: Release 0 warnings; hermetic 6,864/6,864; InstalledDat 255 pass / 10 fail (4 pre-existing + 6 `AlphaFlushCounts_*`) / 1 skip; shaders 32/32; the six focused classes 120/120. Mutation checks with failing text are in the commit body (`git -C <s4-c2-impl> log -1 --format=%B`).
|
||||||
|
- **Lead reproduction on `cc8e5677a` (2026-09-04 12:15):** `dotnet build AcDream.slnx -c Release` → 0 Error(s); hermetic App lane → `Passed! - Failed: 0, Passed: 6864, Skipped: 0, Total: 6864`. The InstalledDat lane, the shader classes and the focused classes were NOT re-run by the lead — the review lens does that.
|
||||||
|
|
||||||
- A commit above `048d5b12f` → round 1 finished; its report is the commit
|
**What is left on chunk 2, in order:**
|
||||||
body. Run the two review lenses (below), verify their findings yourself.
|
|
||||||
- No commit, dirty tree → cut off mid-round. Read the diff against §11/§11.1;
|
|
||||||
finish it yourself or discard the worktree's changes (it is disposable:
|
|
||||||
`git worktree remove --force` + re-add detached at `048d5b12f`) and
|
|
||||||
re-dispatch §11 + §11.1 from scratch. Never stash.
|
|
||||||
- No commit, clean tree → never started; re-dispatch.
|
|
||||||
|
|
||||||
**Round-1 review:** two lenses (Opus or the session model; the Opus tier was
|
1. **Review round 1 of `cc8e5677a`** — two lenses (Opus, or the session model if Opus 529s): (a) retail-faithful, narrowed to M1's `CheckAlphaValues`/`SetTranslucencySimple` rule and reachability, M3's row-1 immediate path vs `DrawBuilding` @0x0059f2a0 (`curr_detail_surface` set @0x0059f2eb, cleared @0x0059f345; replay `detailEnabled = 0`), M6's `DrawEnvCell` @0x0059f170 detail rule, the router inputs at all three sites, A1's claim that nothing opaque draws between the deleted drain and the pass-end flush; (b) production/gate-honesty: reproduce every gate line, re-perform ≥3 mutation checks, check every sentence of the commit body and packet §10 against the tests, the immediate-draw paths' allocation, the register rows AP-238/239/240 + AD-120 for accuracy (AP-240's consequence text; AD-120's adaptation is honest), no file outside the allowed set. **The lead verifies every finding at the source before acting.** The prompts for both lenses are in this session's transcript (search `LENS = RETAIL FAITHFULNESS` and `LENS = PRODUCTION SAFETY + GATE HONESTY`) — reuse them narrowed to the round-1 diff.
|
||||||
529-overloaded for ~90 min on 2026-09-03): retail-faithful, narrowed to the
|
2. PASS → **land** (procedure below). FAIL → **fix round 2 = the LAST** (write it as packet §12; a third round STOPS the chunk and is written up in the ledger).
|
||||||
decomp claims of M1/M3/M6 and the router inputs; production/gate-honesty (the
|
3. **Landing:** cherry-pick `048d5b12f` then `cc8e5677a` onto the campaign branch — the packet conflicts (the worktree's copy has §10 + a "§11 result" paragraph under §10; the campaign's copy has §11/§11.1); resolve by keeping §10 (with its result paragraph) BEFORE §11. Then: Release build 0 warnings; hermetic lane; InstalledDat lane (expect the four known failures + the six `AlphaFlushCounts_*`, nothing else; the six `AlphaFlushSites_*` must PASS there); shader classes; the validation-on self-gate (`route.txt` four poses, then `route-g3b.txt`; one run per background command) diffed against `logs/selfgate-20260903-234934-s4c1-landed-route2` and `logs/selfgate-20260904-062148-g3b-tip-a2` (Facility left-wall mean RGB ≈ (79,20,25) = panels present); a STATIONARY-phase soak A/B against the S4-c1 binary already built in `s4-c1-impl` (`tools/run-connected-r6-soak.ps1 -SkipBuild -PreparedAssetPath "$env:USERPROFILE\Documents\Asheron's Call\acdream.pak"` on the tip, then `-Repository <s4-c1-impl> -SkipBuild`; same Windows session type; judge `stationary` only — #463). Then the §13 S4 row, the digest, and remove `s4-c2-impl`/`s4-c1-impl`.
|
||||||
six live `AlphaFlushSites_*` Facts, the new valve pin, the immediate-draw
|
|
||||||
paths' allocation, the register). Lead verifies every finding against the
|
|
||||||
source (`feedback_verify_subagent_claims_against_source`). PASS → land. FAIL →
|
|
||||||
fix round 2 (the LAST) → PASS → land; a third round STOPS the chunk and is
|
|
||||||
written up in the ledger.
|
|
||||||
|
|
||||||
**Landing procedure:** cherry-pick `048d5b12f` and the round-1 commit onto the
|
**Known residuals that survive chunk 2 (registered, not bugs to chase now):** AP-240 (the CLIP list is fed only by clip-mapped mesh particles — every other clip-mapped subset is alpha-to-coverage opaque), AP-238 (EnvCell one-token-per-cell granularity), AP-239 (the Translucent+ClipMap mask collapse; one real instance), AD-120 (immediate translucent draw at the entity's stream mark rather than in place), AD-119 (portal-depth ColorWrite off vs zero-alpha blend). The `AlphaFlushCounts_*` Facts stay KnownFailure by construction (harness content + per-instance vs per-subset + AP-240); a content-bearing gate would be S5 evidence work only if a slice needs it.
|
||||||
campaign branch (the packet will conflict on §10 vs §11 — both are appends;
|
|
||||||
keep both, §10 before §11); Release build 0 warnings; hermetic lane
|
|
||||||
(`dotnet test tests/AcDream.App.Tests/AcDream.App.Tests.csproj -c Release --no-build --filter "Lane!=InstalledDat&Lane!=PreparedPackage&Lane!=Live&Lane!=Manual&Lane!=Timing&Lane!=Windows&Lane!=Linux&Lane!=SystemFont&Purpose!=Diagnostic&Status!=KnownFailure"`);
|
|
||||||
InstalledDat lane (`ACDREAM_RUN_INSTALLED_DAT_TESTS=1`,
|
|
||||||
`ACDREAM_DAT_DIR="C:/Users/erikn/Documents/Asheron's Call"`,
|
|
||||||
`--filter "Lane=InstalledDat"`; expect exactly the four known failures plus
|
|
||||||
the six `AlphaFlushCounts_*` KnownFailure Facts); shader classes; the
|
|
||||||
validation-on self-gate (`route.txt` four poses + `route-g3b.txt`) diffed
|
|
||||||
against the S3-closed run `logs/selfgate-20260903-16*` /
|
|
||||||
`…-234934-s4c1-landed-route2` with `py scratchpad/selfgate-diff4.py <run> <baseline>`
|
|
||||||
(PIL; the script lives in the OLD session's scratchpad — re-create it if
|
|
||||||
missing: per-frame mean-abs-diff sheet); a STATIONARY-phase soak A/B against
|
|
||||||
the S4-c1 binary in `s4-c1-impl`
|
|
||||||
(`tools/run-connected-r6-soak.ps1 -SkipBuild -PreparedAssetPath "$env:USERPROFILE\Documents\Asheron's Call\acdream.pak"`,
|
|
||||||
then `-Repository <s4-c1-impl> -SkipBuild`; same Windows session type; judge
|
|
||||||
`stationary` only — #463). Then the §13 S4 row, the register, and the digest.
|
|
||||||
|
|
||||||
## 4. After chunk 2
|
## 4. After chunk 2
|
||||||
|
|
||||||
|
|
@ -261,7 +211,7 @@ Read, in this order, and then tell me the summary you formed before acting:
|
||||||
2. CLAUDE.md, then docs/plans/2026-09-01-campaign-overhaul-world-solidity.md §13 (the S4 row tail).
|
2. CLAUDE.md, then docs/plans/2026-09-01-campaign-overhaul-world-solidity.md §13 (the S4 row tail).
|
||||||
3. claude-memory/project_overhaul_campaign.md "Current".
|
3. claude-memory/project_overhaul_campaign.md "Current".
|
||||||
4. docs/research/2026-09-01-overhaul/s4-depth-alpha-packet.md §8, §11, §11.1.
|
4. docs/research/2026-09-01-overhaul/s4-depth-alpha-packet.md §8, §11, §11.1.
|
||||||
Then check the S4 chunk 2 fixer's state per the hand-off's §3 and report: what landed, what is
|
Then confirm the two chunk-2 commits in s4-c2-impl per the hand-off's §3 and report: what landed, what is
|
||||||
in flight, what you propose next. Continue under the campaign goal: drive the plan until the
|
in flight, what you propose next. Continue under the campaign goal: drive the plan until the
|
||||||
renderer is solid and G4 passes; never merge to main before G4; the §5 model (you write each
|
renderer is solid and G4 passes; never merge to main before G4; the §5 model (you write each
|
||||||
bounded chunk contract, Sonnet implements, you verify every claim against the named retail decomp
|
bounded chunk contract, Sonnet implements, you verify every claim against the named retail decomp
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue