docs(architecture): close GameWindow slice 5

This commit is contained in:
Erik 2026-07-21 23:45:45 +02:00
parent 4a205a3e56
commit d4ecac1da3
7 changed files with 70 additions and 43 deletions

View file

@ -47,15 +47,16 @@ passes 6,940 tests with five intentional skips. The 310-second connected R6
gate passed seven destinations/revisits, movement/jump/combat exercises, and
graceful close.
**Current:** Slice 5 checkpoints AG have extracted the DAT-backed worker
Slice 5 is complete: checkpoints AG extracted the DAT-backed worker
build plus render, physics, DAT-static, and retryable Near/full presentation
ownership into `LandblockPresentationPipeline`. Production has no callback
facade back into the deleted GameWindow apply bodies. A retained shared-origin
transaction retires the complete old window before teleport recenter or
session replacement, including failure/retry and fast relogin. `GameWindow` is
8,793 raw lines (44% below the campaign baseline) and the Release suite passes
7,052 tests with five intentional skips. Slice 5H deterministic and connected
closeout is active.
session replacement, including failure/retry and fast relogin. Shutdown keeps
the reset graph alive until disposal converges. `GameWindow` is 8,811 raw
lines / 247 fields / 153 methods (44% below the campaign baseline); 7,054
Release tests, the capped/reconnect lifecycle gate, and the synchronized
nine-stop resource soak pass. Slice 6 update-frame orchestration is active.
This is a behavior-preserving structural program. Severe regressions still get
root-cause fixes in separate commits; ordinary feature work resumes with M4

View file

@ -19,14 +19,15 @@ layer, the active structural prerequisite is the behavior-preserving
The 2026-07-21 audit baseline was 15,723 lines, 278 fields, and 205 methods.
Selection/interaction Slice 1, live-animation-presentation Slice 2, complete
live-session ownership Slice 3, and live-entity App integration Slice 4 are
complete. Slice 5 landblock-presentation checkpoints AG are also complete:
complete. Slice 5 landblock presentation is also complete:
the worker DAT transaction, render/physics/static publishers, and retryable
Near/full retirement now have focused owners. The direct production cutover
also serializes complete old-window retirement with teleport and session
origin lifetimes. `GameWindow` is 8,793 raw lines, down 1,508 from the Slice-5
baseline and 6,930 (44%) from the campaign baseline. The full Release suite
passes 7,052 tests / 5 skips; Slice 4's seven-destination connected R6 route
passed in 310 seconds. Slice 5H deterministic/connected closeout is active.
origin lifetimes. `GameWindow` is 8,811 raw lines / 247 fields / 153 methods,
down 1,490 lines from the Slice-5 baseline and 6,912 (44%) from the campaign
baseline. The full Release suite passes 7,054 tests / 5 skips; the 311-second
capped/reconnect lifecycle gate and synchronized 394-second nine-destination
resource soak both pass. Slice 6 update-frame orchestration is next.
Carried:
#153 far-teleport residual, #116 slide-response, the remaining R6 ownership cleanup plus

View file

@ -1,6 +1,6 @@
# GameWindow Slice 5 — landblock presentation
**Status:** Active 2026-07-21.
**Status:** Complete 2026-07-21 (`4a205a3e`).
**Parent program:** [`docs/architecture/code-structure.md`](../architecture/code-structure.md), Slice 5.
**Baseline:** `2b10e91e`; `GameWindow.cs` is 10,301 lines, 267 fields, and
163 methods. Release baseline: 6,940 passed / 5 skipped. The connected R6
@ -98,9 +98,23 @@ test, and bisectable commit rather than being hidden in a mechanical move.
`GameWindow.cs` is 9,011 lines.
- [x] G — cut `StreamingController` and `GameWindow` directly to the pipeline;
delete old bodies, scratch state, and callback facades.
- [ ] H — three-agent corrected-diff review, full Release suite, deterministic
lifecycle gate, seven-destination resource soak, documentation, and durable
- [x] H — three-agent corrected-diff review, full Release suite, deterministic
lifecycle gate, nine-destination resource soak, documentation, and durable
memory closeout.
- Landed in `4a205a3e`: native shutdown now keeps the live-session reset
dependencies alive until deferred/reentrant disposal actually converges;
source and behavioral tests pin that completion barrier. Both connected
harnesses scan the final post-close logs for shutdown/disposed-resource
failures. The resource gate uses an already-warm Caul → Sawato → Caul
plateau instead of comparing a cold first load to a warmed cache, and
every route command blocks on its exact portal-materialization count.
- All three final reviews are clean. Release gate: 7,054 passed / 5 skipped.
The capped/reconnect lifecycle gate passed in 311.4 seconds. The
synchronized nine-stop soak passed in 394.1 seconds; Caul return → plateau
changed working/private memory by only +56.4/+48.4 MiB and update p95 by
0.8 → 0.7 ms. `GameWindow.cs` closes Slice 5 at 8,811 raw lines, 247
fields, and 153 methods—1,490 lines below the Slice-5 baseline and 6,912
lines (44%) below the campaign baseline.
Every checked checkpoint is committed as a bisectable architectural unit.
Documentation records the exact commit and accepted test count as work lands.
@ -385,15 +399,15 @@ the shared origin may be reused. Reviews closed full-window overlap, radius
reconfiguration, sealed-dungeon bootstrap, committed-callback retry,
reentrancy, fast-relogin, and ordinary-logout gaps. Three final reviews are
clean; the zero-warning Release build and 7,052 tests pass with five skips.
`GameWindow.cs` is 8,793 raw lines, 1,508 below the Slice-5 baseline and 6,930
(44%) below the campaign baseline.
`GameWindow.cs` was 8,793 raw lines at checkpoint G, 1,508 below the Slice-5
baseline and 6,930 (44%) below the campaign baseline.
### H — closeout
**Active.** No new landblock ownership moves are planned in H; it proves the
landed graph under deterministic and connected lifecycle churn, reconciles
divergence pointers/documentation, and records the final Slice-5 structural
measurement before Slice 6 begins.
**Complete in `4a205a3e`.** H proved the landed graph under deterministic and
connected lifecycle churn, corrected shutdown-stage ordering so session reset
converges before its streaming dependencies are disposed, and strengthened the
resource oracle to compare already-warm steady-state revisits.
- Run focused App/Core/Net tests after each checkpoint.
- After each code checkpoint, run three independent read-only reviews: retail/
@ -401,7 +415,7 @@ measurement before Slice 6 begins.
analysis. Fix confirmed findings and repeat review until clean.
- Run `dotnet build AcDream.slnx -c Release` and the full Release test suite.
- Run deterministic first-login/portal lifecycle automation and the connected
seven-destination resource soak. Verify retirement/preparation queues drain,
nine-destination resource soak. Verify retirement/preparation queues drain,
residence matches the region, resource counts remain bounded, and graceful
close succeeds.
- Update the divergence register pointers in IA-14, AD-2, AD-22, and any other
@ -410,6 +424,11 @@ measurement before Slice 6 begins.
- Update architecture, milestones, roadmap, issues if needed, synchronized
`AGENTS.md`/`CLAUDE.md`, and durable decomposition/render memory.
The final IA-14/AD-2/AD-22 audit found no new retail divergence. IA-14 and
AD-22 still point at the correct WB/mesh owners; AD-2 now names the extracted
origin-recenter/presentation owners. AD-6, AD-24, AP-31, and TS-52 remain open
as required.
## 6. Acceptance matrix
Automated acceptance includes: