feat(overhaul): select pack shadows from retail visibility

Borrow the exact prior-completed landscape visibility transaction and S2 CELLARRAY owner for the opt-in IA-24 directional-shadow pack. Select terrain by authored 1..64 cells, ordinary casters by CELLARRAY, and buildings by outdoor EffectCellId with no fallback.

Keep retained caster/material/terrain topology stable across visibility-only frames. Publish exact arbitrary active instance runs and bounded terrain commands through separate selection sequences; preserve transform-journal, fade/retry, deferral, shader/RHI, ordinary world, and pack-off behavior. Amend IA-24 and the S5 ledger.

Pre-commit gates: Release solution build 0 warnings/0 errors; focused visibility/frame/caster/prepared/GPU/terrain/pack lane 137/137; warmed caster/prepared/terrain selectors 0 B; git diff --check clean. Official hermetic and InstalledDat evidence intentionally run post-commit from this exact clean tree.

Mutation evidence (each restored exactly): (1) CELLARRAY->Parent first failed PriorLandscapeSelection expected [201,202,203,205], actual [204,205]. (2) all resident terrain first failed Assert.Single with 3 commands. (3) building EffectCell->anchor first failed expected trailing 205, actual 206. (4) admit missing membership first failed with extra 204. (5) completed->building scratch first failed completed-view Assert.True, expected true/actual false. (6) selection advanced BuildSequence first failed expected 1/actual 2. (7) alternating->prefix first failed active command count expected 3/actual 1.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-04 17:52:29 +02:00
parent 5c106bcdff
commit a4de2efc4e
19 changed files with 1198 additions and 100 deletions

View file

@ -732,3 +732,76 @@ reconstruction, arbitrary-instance correctness, no topology rebuild on camera
motion, transform/GPU flight safety, 0-B steady state, lifecycle/deferral,
allowed scope, counts, and at least three mutation claims. A failed lens gets
one bounded fix contract; a third fix round stops and is written up.
### 14.7 S5-c2 implementation result — clean evidence pending
The bounded implementation is complete for review. The selected atmospheric
pack now borrows the existing visibility controller's exact prior-completed
set and completed-view flag by reference. The frame captures that fact before
the current transaction begins and borrows S2's retained CELLARRAY owner
through a typed read-only adapter. No second visibility set, cell index, or
fallback was added.
The retained caster and terrain products now have separate active-selection
projections. Ordinary casters intersect their non-empty retail CELLARRAY with
the completed landscape set; building shells use outdoor `EffectCellId`;
missing membership and no/empty completed views fail closed. The established
outdoor family remains `low != 0 && low < 0x0100` (including `0x41`), while a
terrain slot scans only its authored 1..64 cells. Arbitrary selected instances
inside one material command are emitted as exact contiguous
`BaseInstance`/`InstanceCount` runs. Active indirect publication advances its
own sequence; caster, prepared-draw, and terrain topology sequences remain
unchanged on visibility-only frames. Terrain snapshot publication also marks
an aborted build invalid so the next frame retries rather than accepting a
partially written snapshot.
Built-in and declared directional-shadow graphs call the same typed selector
and pass the same prior product into terrain selection. The existing
production pack-off integration remains unchanged and proves no active pack
runtime, shadow resource, or shadow work. IA-24 now states the prior-view/S2
selection adaptation and keeps the shadow map explicitly non-retail.
Pre-commit automated evidence:
- Release solution build: PASS, 0 warnings / 0 errors.
- focused visibility/frame/caster/prepared/GPU/terrain/built-in/declared/
pack-off/long-cycle lane: 137 passed, 0 failed, 0 skipped;
- warmed production selection: caster selector, arbitrary-run projection, and
terrain projection each measured 0 managed bytes while retained scratch and
topology build sequences stayed stable;
- `git diff --check`: PASS.
The required mutations were each built, run against the named production pin,
and restored exactly. Their actual first failures were:
1. CELLARRAY → `ParentCellId`:
`PriorLandscapeSelection_UsesExactCellArrayAndBuildingEffectCell`, first
`Assert.Equal` expected `[201, 202, 203, 205]`, actual `[204, 205]`.
2. Select every resident terrain range:
`PriorLandscapeSelection_ScansExactAuthoredEightByEightCells`, first
`Assert.Single` found 3 commands.
3. Building anchor → placement effect cell:
`PriorLandscapeSelection_UsesExactCellArrayAndBuildingEffectCell`, first
`Assert.Equal` expected `[201, 202, 203, 205]`, actual
`[201, 202, 203, 206]`.
4. Admit missing membership:
the same caster pin's first `Assert.Equal` expected
`[201, 202, 203, 205]`, actual `[201, 202, 203, 204, 205]`.
5. Publish current building scratch instead of the completed product:
`BorrowedLandscapeFrame_TracksOnlyCompletedTransactionsByReference`, first
`Assert.True` expected `HasCompletedWorldView=true`, actual `false` after
the completed empty frame.
6. Advance retained caster topology during selection:
`PriorLandscapeSelection_UsesExactCellArrayAndBuildingEffectCell`, first
topology `Assert.Equal` expected `BuildSequence=1`, actual `2`.
7. Collapse alternating selection into one prefix instance count:
`AlternatingCasterSelection_EmitsExactContiguousInstanceRuns`, first
active-command-count `Assert.Equal` expected 3, actual 1.
The one bounded implementation commit is made before the official lanes.
Official hermetic and inclusive InstalledDat evidence will run only from that
exact clean commit, with `WorktreeDirty=false`, under
`artifacts/s5-c2-hermetic-20260904` and
`artifacts/s5-c2-installed-20260904`. Those post-commit artifacts supersede no
earlier run and will be reported directly; this result does not invent their
counts.