perf(content): close prepared asset cutover

This commit is contained in:
Erik 2026-07-24 15:49:24 +02:00
parent b1ad4b7c0a
commit a564c4b782
11 changed files with 428 additions and 66 deletions

View file

@ -24,7 +24,7 @@ What does NOT go here:
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
## Current queue — 2026-07-23
## Current queue — 2026-07-24
- **Structural handoff:** all eight `GameWindow` decomposition slices and the
automated closeout are complete. The 1,622-line native shell has typed
@ -44,6 +44,9 @@ What does NOT go here:
smooth and physics, collision, and wire state remain correct.
- **Build hygiene:** `#228` records 17 clean-Release test-project warnings;
production compilation and all tests pass.
- **Performance side track:** prepared-content Slices AC are complete;
`#244` is closed and Slice D unified residency/accounting is next. Evidence:
[`research/2026-07-24-slice-c-prepared-asset-cutover-report.md`](research/2026-07-24-slice-c-prepared-asset-cutover-report.md).
The [documentation map](README.md) defines how this tactical ledger relates to
the milestone, roadmap, architecture, divergence register, research, and
@ -453,7 +456,7 @@ insert site ~1757).
## #244 — SequencerFactory probes Setup without a DID guard or catch; [dat-miss] logs under the database lock
**Status:** OPEN
**Status:** DONE — 2026-07-24, Modern Runtime Slice C
**Severity:** MEDIUM
**Filed:** 2026-07-24
**Component:** composition / content
@ -470,11 +473,14 @@ probes hit the dated TEMP `[dat-miss]` `Console.WriteLine`
synchronous console I/O while holding `_databaseLock`, serializing all
readers of that dat.
**Root cause / status:** 2026-07-24 audit review finding. Plan Slice C's
typed DID metadata removes the probe pattern; the Slice C amendment also
requires narrowing `ResolveActivation`'s blanket catch. The `[dat-miss]`
tripwire should be resolved (root-caused or demoted to a rate-limited
diagnostic) in the same change.
**Root cause / status:** Slice C's prepared TOC presence index now gates both
`SequencerFactory` and `ResolveActivation`, so GfxObj IDs do not enter the
Setup parser. Known malformed DAT failures are diagnosed once; cancellation
and unexpected failures propagate. The remaining `[dat-miss]` anomaly report
now captures its condition while holding the serialized DAT lock, performs
console I/O only after releasing it, and is limited to one report per database.
Connected capped, uncapped, and dense routes recorded zero invalid Setup-probe
exceptions.
**Files:** `src/AcDream.App/Composition/LivePresentationComposition.cs:200-225`;
`src/AcDream.Content/DatCollectionAdapter.cs:196-206`;