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

@ -115,7 +115,7 @@ and the final two-client portal-out/materialization observer flow are
user-gated. Deterministic world-lifecycle automation protects fresh login, user-gated. Deterministic world-lifecycle automation protects fresh login,
outdoor/world-edge/dungeon travel, same-location revisit, exact graceful outdoor/world-edge/dungeon travel, same-location revisit, exact graceful
disconnect, and uncapped fresh-process reconnect with JSON/PNG artifacts. disconnect, and uncapped fresh-process reconnect with JSON/PNG artifacts.
Release builds; 6,940 tests pass / 5 skip. Release builds; 7,052 tests pass / 5 skip.
**Active prerequisite before new M4 subsystem work:** continue the **Active prerequisite before new M4 subsystem work:** continue the
behavior-preserving `GameWindow` decomposition reconciled on 2026-07-21. behavior-preserving `GameWindow` decomposition reconciled on 2026-07-21.
@ -123,9 +123,12 @@ Selection/interaction Slice 1, live-animation-presentation Slice 2, complete
live-session ownership Slice 3, and live-entity App integration Slice 4 are live-session ownership Slice 3, and live-entity App integration Slice 4 are
landed. Focused hydration, teardown, inbound-authority, network-update, and landed. Focused hydration, teardown, inbound-authority, network-update, and
motion-runtime owners now sit over canonical `LiveEntityRuntime` without a motion-runtime owners now sit over canonical `LiveEntityRuntime` without a
second GUID dictionary. `GameWindow` is 10,301 lines, 267 fields, and 163 second GUID dictionary. Slice 5 checkpoints AG have moved the complete DAT
methods. Slice 5 extracts landblock presentation next; later slices finish build, render/physics/static publication, retryable retirement, and shared-
update/render orchestration and composition cleanup. origin lifetime barrier out of `GameWindow`; it is now 8,793 raw lines, down
44% from the 15,723-line campaign baseline. Slice 5H lifecycle/connected
closeout is active; later slices finish update/render orchestration and
composition cleanup.
See `docs/architecture/code-structure.md`. **Carried:** #153, #116, remaining See `docs/architecture/code-structure.md`. **Carried:** #153, #116, remaining
R6 ownership cleanup, TS-50/TS-51, Modern Pipeline MP1b+, and #225's R6 ownership cleanup, TS-50/TS-51, Modern Pipeline MP1b+, and #225's
lifestone/particle alpha visual gate. lifestone/particle alpha visual gate.

View file

@ -113,7 +113,7 @@ and the final two-client portal-out/materialization observer flow are
user-gated. Deterministic world-lifecycle automation protects fresh login, user-gated. Deterministic world-lifecycle automation protects fresh login,
outdoor/world-edge/dungeon travel, same-location revisit, exact graceful outdoor/world-edge/dungeon travel, same-location revisit, exact graceful
disconnect, and uncapped fresh-process reconnect with JSON/PNG artifacts. disconnect, and uncapped fresh-process reconnect with JSON/PNG artifacts.
Release builds; 6,940 tests pass / 5 skip. Release builds; 7,052 tests pass / 5 skip.
**Active prerequisite before new M4 subsystem work:** continue the **Active prerequisite before new M4 subsystem work:** continue the
behavior-preserving `GameWindow` decomposition reconciled on 2026-07-21. behavior-preserving `GameWindow` decomposition reconciled on 2026-07-21.
@ -121,9 +121,12 @@ Selection/interaction Slice 1, live-animation-presentation Slice 2, complete
live-session ownership Slice 3, and live-entity App integration Slice 4 are live-session ownership Slice 3, and live-entity App integration Slice 4 are
landed. Focused hydration, teardown, inbound-authority, network-update, and landed. Focused hydration, teardown, inbound-authority, network-update, and
motion-runtime owners now sit over canonical `LiveEntityRuntime` without a motion-runtime owners now sit over canonical `LiveEntityRuntime` without a
second GUID dictionary. `GameWindow` is 10,301 lines, 267 fields, and 163 second GUID dictionary. Slice 5 checkpoints AG have moved the complete DAT
methods. Slice 5 extracts landblock presentation next; later slices finish build, render/physics/static publication, retryable retirement, and shared-
update/render orchestration and composition cleanup. origin lifetime barrier out of `GameWindow`; it is now 8,793 raw lines, down
44% from the 15,723-line campaign baseline. Slice 5H lifecycle/connected
closeout is active; later slices finish update/render orchestration and
composition cleanup.
See `docs/architecture/code-structure.md`. **Carried:** #153, #116, remaining See `docs/architecture/code-structure.md`. **Carried:** #153, #116, remaining
R6 ownership cleanup, TS-50/TS-51, Modern Pipeline MP1b+, and #225's R6 ownership cleanup, TS-50/TS-51, Modern Pipeline MP1b+, and #225's
lifestone/particle alpha visual gate. lifestone/particle alpha visual gate.

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 2 14,546 lines / 277 fields / 190 methods
after Slice 3 14,310 lines / 274 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 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: `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. | | 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. | | 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. | | 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. | | 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. | | 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 exact canonical outbound Position. Three corrected-diff reviews, the complete
6,940-test Release suite, and the 310-second seven-destination connected R6 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. 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 build, concrete render/physics/static publication, and retryable Near/full
retirement; `GameWindow.cs` is 9,011 lines and no longer owns a retirement retirement. The direct cutover deleted the legacy apply/facade/scratch body and
coordinator or callback body. Checkpoint G direct cutover/dead-facade cleanup added one retained shared-origin lifetime transaction for teleport, logout,
is active next, followed by deterministic and connected closeout in H. 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: Detailed execution ledger:
[`docs/plans/2026-07-21-gamewindow-slice-5-landblock-presentation.md`](../plans/2026-07-21-gamewindow-slice-5-landblock-presentation.md) [`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 gate passed seven destinations/revisits, movement/jump/combat exercises, and
graceful close. 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 build plus render, physics, DAT-static, and retryable Near/full presentation
ownership into `LandblockPresentationPipeline`. `GameWindow` is 9,011 lines ownership into `LandblockPresentationPipeline`. Production has no callback
and the Release suite passes 7,039 tests with five intentional skips. Slice 5G facade back into the deleted GameWindow apply bodies. A retained shared-origin
now removes the obsolete callback bodies and scratch/facade state before the transaction retires the complete old window before teleport recenter or
deterministic and connected closeout in H. 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 This is a behavior-preserving structural program. Severe regressions still get
root-cause fixes in separate commits; ordinary feature work resumes with M4 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. 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 Selection/interaction Slice 1, live-animation-presentation Slice 2, complete
live-session ownership Slice 3, and live-entity App integration Slice 4 are 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 the worker DAT transaction, render/physics/static publishers, and retryable
Near/full retirement now have focused owners. `GameWindow` is 9,011 lines, Near/full retirement now have focused owners. The direct production cutover
down 1,290 from the Slice-5 baseline and 6,712 from the campaign baseline. The also serializes complete old-window retirement with teleport and session
full Release suite passes 7,039 tests / 5 skips; Slice 4's seven-destination origin lifetimes. `GameWindow` is 8,793 raw lines, down 1,508 from the Slice-5
connected R6 route passed in 310 seconds. Slice 5G direct cutover and dead baseline and 6,930 (44%) from the campaign baseline. The full Release suite
facade/scratch cleanup is active next. 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: Carried:
#153 far-teleport residual, #116 slide-response, the remaining R6 ownership cleanup plus #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 impossible. Three corrected-diff reviews are clean. Release gate: 7,039
passed / 5 skipped; build green with 17 pre-existing test-project warnings; passed / 5 skipped; build green with 17 pre-existing test-project warnings;
`GameWindow.cs` is 9,011 lines. `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. delete old bodies, scratch state, and callback facades.
- [ ] H — three-agent corrected-diff review, full Release suite, deterministic - [ ] H — three-agent corrected-diff review, full Release suite, deterministic
lifecycle gate, seven-destination resource soak, documentation, and durable lifecycle gate, seven-destination resource soak, documentation, and durable
@ -375,8 +375,26 @@ AdvanceLandblockPresentationRetirement
apply-diagnostic scratch state that now have focused owners. apply-diagnostic scratch state that now have focused owners.
- Add structural source tests and remeasure GameWindow lines/fields/methods. - 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 ### 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. - Run focused App/Core/Net tests after each checkpoint.
- After each code checkpoint, run three independent read-only reviews: retail/ - After each code checkpoint, run three independent read-only reviews: retail/
WorldBuilder conformance, architecture/integration, and adversarial failure WorldBuilder conformance, architecture/integration, and adversarial failure