refactor(net): own live session composition
Extract reset, selection, entered-world, and route construction behind LiveSessionHost while preserving the sole LiveSessionController authority. Retain partial route and subscription cleanup for retry, and replace the embedded ACE-only shortcut with the exact named-retail unsigned skill formula. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
18d4b999de
commit
557eb7ef6b
22 changed files with 1430 additions and 236 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# acdream — strategic roadmap
|
||||
|
||||
**Status:** Living document. Updated 2026-07-22. **M3 landed; M4 is next after the active `GameWindow` structural prerequisite.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. The current program is the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md); Slices 1–7 are complete and final Slice 8 composition/shutdown cleanup is active. New M4 quest/emote/character-creation feature bodies wait until that campaign is complete. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
|
||||
**Status:** Living document. Updated 2026-07-22. **M3 landed; M4 is next after the active `GameWindow` structural prerequisite.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. The current program is the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md); Slices 1–7 and Slice 8 checkpoints A–C are complete, with the remaining composition/shutdown checkpoints active. New M4 quest/emote/character-creation feature bodies wait until that campaign is complete. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
|
||||
**Purpose:** One source of truth for where the project is and where it's going. Every observed defect or missing feature has a named phase that owns it; when something looks wrong in-game, look here to find the phase that'll address it. Implementation details live in per-phase specs under `docs/superpowers/specs/`, not in this file.
|
||||
|
||||
---
|
||||
|
|
@ -79,7 +79,12 @@ second synchronized soak pass with graceful exits, and the six stable PNG
|
|||
checkpoints preserve Slice 6 presentation. Issue #232 tracks the coarse
|
||||
process-residency gate's diagnostic blind spot; no tolerance was loosened.
|
||||
|
||||
Final Slice 8 composition/shutdown cleanup is now active.
|
||||
Final Slice 8 composition/shutdown cleanup is active. Checkpoints A–C now own
|
||||
the frozen shell boundary, all nine native callback edges, and live-session
|
||||
reset/selection/entry/route composition. `GameWindow` is 4,589 lines / 196
|
||||
fields / 69 methods; the Checkpoint C Release suite passes 7,408 tests / 5
|
||||
skips. Environment, input, settings, startup/resource transfer, and shutdown
|
||||
checkpoints D–L remain.
|
||||
|
||||
This is a behavior-preserving structural program. Severe regressions still get
|
||||
root-cause fixes in separate commits; ordinary feature work resumes with M4
|
||||
|
|
|
|||
|
|
@ -39,8 +39,10 @@ diagnostic owners preserve the accepted draw/failure graph. `GameWindow` is
|
|||
campaign baseline. The full Release suite passes 7,341 tests / 5 skips; the
|
||||
315.6-second capped/reconnect lifecycle gate and 395.2-second synchronized
|
||||
nine-destination soak pass with graceful exits, and six stable PNG checkpoints
|
||||
preserve Slice 6 presentation. Final Slice 8 composition/shutdown cleanup is
|
||||
active. Issue #232 tracks process-residency variance in the soak without
|
||||
preserve Slice 6 presentation. Final Slice 8 checkpoints A–C are complete:
|
||||
native callbacks and live-session composition now have explicit retryable
|
||||
owners, and `GameWindow` is 4,589 lines / 196 fields / 69 methods. Checkpoints
|
||||
D–L remain active. Issue #232 tracks process-residency variance in the soak without
|
||||
loosening its leak threshold.
|
||||
|
||||
Carried:
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ audit.
|
|||
test-facade residue.
|
||||
- [x] B — make native-window callback intake an explicit reversible owner and
|
||||
define host-quiescence failure semantics.
|
||||
- [ ] C — extract live-session host/reset/binding callbacks and verify the
|
||||
- [x] C — extract live-session host/reset/binding callbacks and verify the
|
||||
embedded skill formula against named retail.
|
||||
- [ ] D — extract retail world-environment/day/weather behavior.
|
||||
- [ ] E — extract two-phase raw pointer/camera input, focus, and framebuffer
|
||||
|
|
@ -450,6 +450,19 @@ frozen callback behavior.
|
|||
- Keep `LiveSessionController.Start` last; both disabled-live and
|
||||
missing-credential starts must execute the reset path.
|
||||
|
||||
Result: `LiveSessionHost` now owns reset-plan construction, exact selection and
|
||||
entered-world ordering, and create→attach route factories while resolving all
|
||||
session/command/in-world state through the sole `LiveSessionController`.
|
||||
Partially attached routes and every individual subscription edge retain failed
|
||||
cleanup work; successful edges are never replayed, and reset/new generations
|
||||
remain blocked until teardown converges. Named-retail research corrected the
|
||||
former ACE-only skill shortcut to exact unsigned `SkillFormula::Calculate @
|
||||
0x00591960` semantics. Three corrected-diff review loops are clean; focused
|
||||
session/formula/ledger tests, the App suite (3,048 pass / 3 intentional skips),
|
||||
Core.Net (548 pass), the Release build, and the full suite (7,408 pass / 5
|
||||
intentional skips) pass. No connected gate was required for this ownership
|
||||
checkpoint; the final connected lifecycle gate remains Checkpoint L.
|
||||
|
||||
### D — world environment
|
||||
|
||||
- Move loaded sky/day state, `RefreshSkyForCurrentDay`, `AdminEnvirons`,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue