docs(overhaul): close S4 chunk 2 landing

This commit is contained in:
Erik 2026-09-04 12:32:06 +02:00
parent 252886e84f
commit d8c88adeb0
3 changed files with 109 additions and 26 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,11 +1,10 @@
# Campaign OVERHAUL v2 — hand-off at S4 chunk 2 owner-authorized repair (2026-09-04) # Campaign OVERHAUL v2 — hand-off after S4 chunk 2 landing (2026-09-04)
**2026-09-04 owner override:** the §13 stop remains the audit record, but the **2026-09-04 current state:** the §13/§15 stops and packet §16 attempts remain
owner explicitly replied “Ok do fix it.” Packet §14 is now the binding, the audit record. Owner-authorized attempt 2 passed both sequential reviews
one-attempt repair contract on clean evidence commit `c4cbc1d0d` in and the complete S4-c2 stack is LANDED on the campaign branch through
`s4-c2-impl`. The implementation remains UNLANDED; the campaign branch still `252886e84`. Packet §17 and this file's §3 are binding; earlier “review then
contains S4-c1 renderer code `766f9e749`. Read packet §§1314 and this file's land” instructions are history only. G3/G4 remain unpassed.
§3 before any stale “review then land” instruction below.
## 0. Read order ## 0. Read order
@ -44,10 +43,10 @@ contains S4-c1 renderer code `766f9e749`. Read packet §§1314 and this file'
| 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 = 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). | | Branch | `claude/campaign-w-retail-frame-walk`; S4-c2 renderer stack LANDED as `89f1e2676`, `9ccb61a8e`, `0aa166aa0`, `252886e84`; clean before this ledger update. |
| 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 and graphically gated at `252886e84` |
| ACE | `127.0.0.1:9000`, `testaccount` / `testpassword`, character `+Acdream`; was UP from ~08:00 on 2026-09-04 (the owner started it). Check `netstat -an -p UDP \| grep 9000` before assuming. Only the owner starts it. | | ACE | `127.0.0.1:9000`, `testaccount` / `testpassword`, character `+Acdream`; was UP from ~08:00 on 2026-09-04 (the owner started it). Check `netstat -an -p UDP \| grep 9000` before assuming. Only the owner starts it. |
| Retail client for captures | `C:\Users\erikn\Downloads\acclient.exe` (2013 v11.4186, pairs with `refs/acclient.pdb`); the Turbine folder's exe (2015) does NOT pair | | Retail client for captures | `C:\Users\erikn\Downloads\acclient.exe` (2013 v11.4186, pairs with `refs/acclient.pdb`); the Turbine folder's exe (2015) does NOT pair |
@ -55,8 +54,8 @@ Scratch worktrees (detached):
| Worktree | At | Purpose | | Worktree | At | Purpose |
|---|---|---| |---|---|---|
| `s4-c2-impl` | `c4cbc1d0d` (final fix round) on `cc8e5677a` on `048d5b12f` on `766f9e749`; clean | owner-authorized bounded repair from packet §14; still do not land before dual review PASS | | `s4-c2-impl` | `daaeab0ba` on `c4cbc1d0d` / `cc8e5677a` / `048d5b12f`; clean | retained immutable review source for landed attempt 2; both sequential lenses PASS |
| `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` | retained S4-c1 baseline binary and same-session stationary-soak evidence |
| `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 |
| `464-ab`, `mouselook-verb` | — | done with; removable | | `464-ab`, `mouselook-verb` | — | done with; removable |
@ -97,20 +96,16 @@ 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. S4 chunk 2 — owner attempt 2/5 ACTIVE, still UNLANDED ## 3. S4 chunk 2 — LANDED after owner attempt 2/5
**Binding current state (supersedes the historical procedure later in this **Binding current state:** owner-authorized attempt 2 closed the evidence/
section):** clean unlanded implementation `a094bf2b7` is behaviorally shader-manifest contract conflict without changing shader instructions.
retail-faithful but failed its first review on the evidence/prose findings in The reviewed implementation is `daaeab0ba`; the complete campaign stack is
packet §15. The owner authorized up to five more attempts. Attempt 1 produced `89f1e2676``9ccb61a8e``0aa166aa0``252886e84`. Retail/evidence PASS
the correct five-file prose diff but its shader freshness gate failed 31/32: preceded production/gate-honesty PASS. Fresh campaign build, focused, shader,
the required `mesh_detail.vert` comment changes the manifest source hash, while allocation, graphical, and same-session stationary A/B gates pass as recorded
the contract forbade refreshing that artifact. Packet §16.2 records the stop below and in packet §17. Three of the five additional attempts remain unused.
and is attempt 2/5's binding contract: retain the prose diff, run the shader S4-c2 is closed; next is a fresh S4-c3 deletion contract from landed code.
compiler once, permit only the manifest and paired vertex SPIR-V mechanical
closure, prove no shader instruction change, then let the lead amend and run
both reviews sequentially. Nothing lands or graphically gates before dual
PASS. The campaign renderer remains S4-c1 `766f9e749`; G3/G4 remain unpassed.
**Historical state before the final round (kept for audit; do not execute its **Historical state before the final round (kept for audit; do not execute its
landing procedure):** landing procedure):**
@ -134,12 +129,28 @@ What `cc8e5677a` did, per the implementer's report (verify each claim against th
- 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`). - 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. - **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.
**What is left on chunk 2, in order:** **Historical landing procedure (completed; audit only):**
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. 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.
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). 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).
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`. 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`.
**Landing result:** attempt 2 retained the exact prose fixes, refreshed only
`shaders.manifest.json`, and proved `mesh_detail.vert.spv` byte-identical
(SHA-256 `5346247ab7d606046943e19b28888c814e08dc6cb27cd9750096ac055457eb57`).
Lead gates: Release 0W/0E; shader 32/32; affected 37/37; real production
allocation 2/2 at 0 B; focused production 239/239. The official no-retry
14-assembly lane was 16,734 pass / 1 fail: the unchanged global `Console.Out`
capture race in `WalkFrameDriverTests`; its exact theory passed 2/2 isolated.
InstalledDat was 255 pass / 10 documented fail / 1 skip. Validation-on routes
`logs/selfgate-20260904-115818-s4c2-landed-route` and
`logs/selfgate-20260904-120025-s4c2-landed-g3b` pass provisionally; every PNG
is listed in packet §17. The first tip soak failed before sampling on known
#461/#462; the retry and the S4-c1 control both passed 9/9 with graceful exits.
Stationary tip-minus-control averages: CPU p95 0.01 ms, GPU p95 +0.16 ms,
allocation p50 +1.2 KiB, update p95 0.12 ms, working set 24.6 MiB, private
memory 17.7 MiB. G3/G4 remain unpassed.
**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. **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.
## 4. After chunk 2 ## 4. After chunk 2

View file

@ -1108,3 +1108,74 @@ the artifact closure and amends the unlanded implementation commit with all
fourteen mutation names/first failures. Then review attempt 2 sequentially, fourteen mutation names/first failures. Then review attempt 2 sequentially,
retail/evidence first and production/gate second. A finding consumes attempt 2; retail/evidence first and production/gate second. A finding consumes attempt 2;
three further attempts remain. three further attempts remain.
## 17. Attempt 2 landing result (2026-09-04)
Attempt 2 retained the five evidence/comment fixes from §16.1 and refreshed
only `src/AcDream.App/Rendering/Shaders/spv/shaders.manifest.json` after the
one permitted compiler run. `mesh_detail.vert.spv` remained byte-identical:
SHA-256 `5346247ab7d606046943e19b28888c814e08dc6cb27cd9750096ac055457eb57`,
Git blob `5ae4f2379167f739f297d2f00189901e29d5e412`. The lead amended the
implementation evidence to name all fourteen mutations and their actual first
assertions; final reviewed implementation commit: `daaeab0ba`.
The sequential retail/evidence lens PASSED first. It independently confirmed
the paired PDB/executable GUID `{9e847e2f-777c-4bd9-886c-22256bb87f32}` age 1
and the required bytes: blend IDs 2/6 at `0x0059C72A`/`0x0059C72F`, alpha-test
enable at `0x0059C821`, `GREATER_EQUAL` at `0x0059C838`, and depth-write at
`0x0059C866`. Whole-leaf exclusion, `0x08`/`0x09` CLIP, row-3 override false,
references/sentinel/detail/ALPHA/rollback/particles/register all passed. The
production/gate-honesty lens then PASSED: real production reachability,
pipeline state, bounded 3000/4096 scratch, production 0-B pins, register truth,
and all fourteen mutations passed. Its fresh gates were Release 0W/0E,
shader 32/32, affected 37/37, allocation 2/2, production focused 239/239.
The stack landed on the campaign branch in order:
`89f1e2676` (`048d5b12f`), `9ccb61a8e` (`cc8e5677a`), `0aa166aa0`
(`c4cbc1d0d`), and `252886e84` (`daaeab0ba`). All 43 non-packet files at the
campaign tip are byte-identical to the reviewed implementation stack.
Fresh campaign gates:
- Release build: PASS, zero warnings/errors.
- Shader/manifest 32/32; attempt-2 affected 37/37; real allocation 2/2 at
0 B; focused production 239/239.
- Official no-retry 14-assembly hermetic artifact
`%TEMP%\acdream-s4-c2-campaign-252886e84`: 16,734 pass / 1 fail / 0 skip.
The sole failure is the unchanged global `Console.Out` capture race in
`WalkFrameDriverTests.Collect_WeatherTurnFiredMatchesThePrintedOcLineExactly`;
the exact theory passed 2/2 isolated. The isolated pass does not rewrite the
original lane verdict.
- InstalledDat with explicit installed DAT path: 255 pass / 10 documented
fail / 1 skip. The failures are TowerAscent, two #383 sweeps, #458, and six
`AlphaFlushCounts_*`; every `AlphaFlushSites_*` row passed.
Validation-on graphical evidence is provisional until owner review:
- `logs/selfgate-20260904-115818-s4c2-landed-route`: `00-login.png`,
`01-cathedral-stairs.png`, `02-facility-stairs.png`,
`03-holtburg-house.png`, `04-holtburg-terrain-leak.png` — PASS. Facility's
left-panel crop matches the S4-c1 control; only ordinary time/weather drift.
- `logs/selfgate-20260904-120025-s4c2-landed-g3b`:
`13-capture-terrace-edge.png`, `14-capture-cathedral-arrival.png`,
`15-capture-holtburg-doorway.png`, `16-capture-foundry-deep.png` — PASS.
Pose 15 is the intentional #468 outdoor replacement and the camera is close
to the translucent self body; owner review remains explicit.
The first tip soak
`logs/connected-r6-soak-20260904-120607.report.json` failed before its first
sample on known #462 and then reproduced known #461 during abort/logout; keep
it as a failed attempt. The retry
`logs/connected-r6-soak-20260904-120756.report.json` passed 9/9 with exit 0
and graceful teardown. The clean S4-c1 control at `9ba8f013e`, report
`s4-c1-impl/logs/connected-r6-soak-20260904-121735.report.json`, also passed
9/9 in the same session. Stationary tip-minus-control averages: CPU p95
0.01 ms, GPU p95 +0.16 ms, allocation p50 +1.2 KiB, update p95 0.12 ms,
working set 24.6 MiB, private memory 17.7 MiB. Per-destination CPU p95 was
within ±0.1 ms, GPU p95 within 0.0+0.4 ms; only Caul/Sawato allocation p50
rose materially (+5.6/+5.8 KiB).
S4-c2 is LANDED and closed. Attempt 1/5 was consumed by the contract conflict;
attempt 2/5 passed; three attempts remain unused. G3/G4 remain unpassed. Next:
write S4-c3's bounded deletion contract from the landed code, not §4's old
guess, and re-check the AP-238/AP-240/`AlphaFlushCounts_*` residuals there.