docs(architecture): record landblock cutover

Mark Slice 5G complete, record the 44 percent GameWindow reduction and origin-lifetime barrier, and advance the active ledger to deterministic and connected closeout.
This commit is contained in:
Erik 2026-07-21 22:50:38 +02:00
parent c79d0a49da
commit db3ca59fd0
6 changed files with 57 additions and 26 deletions

View file

@ -27,6 +27,7 @@ after Slice 1 14,912 lines / 278 fields / 191 method
after Slice 2 14,546 lines / 277 fields / 190 methods
after Slice 3 14,310 lines / 274 fields / 190 methods
after Slice 4 10,301 lines / 267 fields / 163 methods
after Slice 5G 8,793 lines (field/method closeout in H)
```
`GameWindow` is the single object that:
@ -399,7 +400,7 @@ useful ordering seam, but its ownership status is **partial**.
| World reveal | **Complete** | `WorldRevealCoordinator` owns login/portal readiness and reveal lifetime (`a4ef5788`). The accepted deterministic lifecycle trace did not change after extraction. |
| Retained gameplay UI | **Mostly complete feature ownership** | `RetailUiRuntime` and focused panel/controllers own layout and behavior. `GameWindow.OnLoad` still performs substantial service composition, which is allowed until the final composition cleanup. |
| Selection/interaction | **Complete** | `WorldSelectionQuery` owns read-only picking/classification/range queries; `SelectionInteractionController` owns selection intent, Use/PickUp transport, exact-incarnation queues, and auto-walk deferral; `ItemInteractionController` owns ItemHolder policy plus the shared retail inventory-request transaction. `GameWindow` retains construction and narrow lifecycle forwarding only. |
| Landblock presentation | **Not extracted** | Residency scheduling is extracted, but DAT build, scenery/EnvCell construction, apply, collision/resource publication, and retirement glue remain a large `GameWindow` body. |
| Landblock presentation | **Complete; closeout active** | `LandblockBuildFactory` owns the captured-origin DAT transaction; concrete render/physics/DAT-static publishers and `LandblockPresentationPipeline` own publication and exact retryable retirement. `StreamingOriginRecenterCoordinator` serializes old-window retirement with teleport/session origin lifetimes. `GameWindow` retains construction and one pipeline field only (`c79d0a49`). |
| Render-frame orchestration | **Not extracted** | `OnRender` plus its portal/PView/alpha/particle helpers still own the draw graph and frame-local scratch state. There is no `RenderFrameOrchestrator` yet. |
| Unified `GameEntity` | **Deferred target** | `LiveEntityRuntime` already supplies the critical canonical owner. Full type aggregation is a separate high-risk migration and is not required to make `GameWindow` thin. |
@ -542,13 +543,15 @@ keeps a second identity dictionary. ForcePosition serializes and stamps one
exact canonical outbound Position. Three corrected-diff reviews, the complete
6,940-test Release suite, and the 310-second seven-destination connected R6
route all passed. `GameWindow` is 10,301 lines / 267 fields / 163 methods.
Slice 5 checkpoints AF are complete. The pipeline owns the serialized worker
Slice 5 checkpoints AG are complete. The pipeline owns the serialized worker
build, concrete render/physics/static publication, and retryable Near/full
retirement; `GameWindow.cs` is 9,011 lines and no longer owns a retirement
coordinator or callback body. Checkpoint G direct cutover/dead-facade cleanup
is active next, followed by deterministic and connected closeout in H.
retirement. The direct cutover deleted the legacy apply/facade/scratch body and
added one retained shared-origin lifetime transaction for teleport, logout,
and fast relogin. `GameWindow.cs` is 8,793 raw lines and no longer owns
landblock build/apply/retirement behavior. Deterministic and connected closeout
is active in H.
#### Slice 5 — extract landblock presentation
#### Slice 5 — extract landblock presentation — CHECKPOINTS AG COMPLETE
Detailed execution ledger:
[`docs/plans/2026-07-21-gamewindow-slice-5-landblock-presentation.md`](../plans/2026-07-21-gamewindow-slice-5-landblock-presentation.md)

View file

@ -47,12 +47,15 @@ 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 AF have extracted the DAT-backed worker
**Current:** Slice 5 checkpoints AG have extracted the DAT-backed worker
build plus render, physics, DAT-static, and retryable Near/full presentation
ownership into `LandblockPresentationPipeline`. `GameWindow` is 9,011 lines
and the Release suite passes 7,039 tests with five intentional skips. Slice 5G
now removes the obsolete callback bodies and scratch/facade state before the
deterministic and connected closeout in H.
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.
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,13 +19,14 @@ 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 AF are also complete:
complete. Slice 5 landblock-presentation checkpoints AG are also complete:
the worker DAT transaction, render/physics/static publishers, and retryable
Near/full retirement now have focused owners. `GameWindow` is 9,011 lines,
down 1,290 from the Slice-5 baseline and 6,712 from the campaign baseline. The
full Release suite passes 7,039 tests / 5 skips; Slice 4's seven-destination
connected R6 route passed in 310 seconds. Slice 5G direct cutover and dead
facade/scratch cleanup is active next.
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.
Carried:
#153 far-teleport residual, #116 slide-response, the remaining R6 ownership cleanup plus

View file

@ -96,7 +96,7 @@ test, and bisectable commit rather than being hidden in a mechanical move.
impossible. Three corrected-diff reviews are clean. Release gate: 7,039
passed / 5 skipped; build green with 17 pre-existing test-project warnings;
`GameWindow.cs` is 9,011 lines.
- [ ] G — cut `StreamingController` and `GameWindow` directly to the pipeline;
- [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
@ -375,8 +375,26 @@ AdvanceLandblockPresentationRetirement
apply-diagnostic scratch state that now have focused owners.
- Add structural source tests and remeasure GameWindow lines/fields/methods.
**Complete in `c79d0a49`.** Production constructs one concrete pipeline;
legacy callback constructors are internal test seams and structural tests keep
them out of the composition root. The old GameWindow apply methods and their
building/diagnostic scratch state are deleted. A retained
`StreamingOriginRecenterCoordinator` now joins complete old-window
presentation retirement to teleport recenter and session cancellation before
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.
### 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.
- Run focused App/Core/Net tests after each checkpoint.
- After each code checkpoint, run three independent read-only reviews: retail/
WorldBuilder conformance, architecture/integration, and adversarial failure