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:
parent
c79d0a49da
commit
db3ca59fd0
6 changed files with 57 additions and 26 deletions
11
AGENTS.md
11
AGENTS.md
|
|
@ -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 A–G 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.
|
||||||
|
|
|
||||||
11
CLAUDE.md
11
CLAUDE.md
|
|
@ -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 A–G 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.
|
||||||
|
|
|
||||||
|
|
@ -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 A–F are complete. The pipeline owns the serialized worker
|
Slice 5 checkpoints A–G 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 A–G 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)
|
||||||
|
|
|
||||||
|
|
@ -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 A–F have extracted the DAT-backed worker
|
**Current:** Slice 5 checkpoints A–G 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
|
||||||
|
|
|
||||||
|
|
@ -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 A–F are also complete:
|
complete. Slice 5 landblock-presentation checkpoints A–G 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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue