Commit graph

2603 commits

Author SHA1 Message Date
Erik
8b8afeefa3 refactor(input): own pointer and callback lifetime
Move camera pointer, framebuffer resize, and retained/devtools input edges behind focused reversible owners. Preserve input priority while making shutdown deactivate callbacks before live-session retirement and retry physical detach without stranding transport teardown.
2026-07-22 11:59:33 +02:00
Erik
d09e246d3a refactor(world): own live environment state
Move the DAT sky, selected day group, world clock, weather, AdminEnvirons bridge, and debug cycles into a one-shot WorldEnvironmentController while preserving GameWindow's public aliases and accepted startup/session/render order. Correct the named retail citations and register the remaining environment audio and fog/radar gaps.

Co-authored-by: Codex <codex@openai.com>
2026-07-22 10:54:33 +02:00
Erik
557eb7ef6b 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>
2026-07-22 10:36:06 +02:00
Erik
18d4b999de refactor(app): own native window callback lifetime
Publish the fixed Silk callback binding before acquisition, quiesce admitted callbacks before teardown, and retain failed physical detach ownership for retry. Preserve the frozen callback order while covering partial event accessors, concurrency, reentrancy, and shutdown completion.

Co-authored-by: Codex <codex@openai.com>
2026-07-22 09:59:10 +02:00
Erik
476c2e6de1 test(app): freeze GameWindow lifecycle boundaries
Pin the accepted startup, input, frame, resize, shutdown, and native-window order before Slice 8 moves those edges, while deleting only unread duplicate state and test-only GameWindow facades.

Co-authored-by: Codex <codex@openai.com>
2026-07-22 09:27:55 +02:00
Erik
20ebf217e2 docs(architecture): plan GameWindow lifecycle shell
Freeze host ordering, resource ownership, callback quiescence, partial-startup rollback, and canonical soak evidence as twelve reviewed, bisectable Slice 8 checkpoints.

Co-authored-by: Codex <codex@openai.com>
2026-07-22 09:14:24 +02:00
Erik
96f8bfcfa8 docs(architecture): close GameWindow render slice
Record the clean Release, lifecycle, soak, and framebuffer gates for Slice 7, advance the structural program to Slice 8, and preserve the observed process-residency diagnostic gap as issue 232 rather than weakening its leak threshold.\n\nCo-authored-by: Codex <codex@openai.com>
2026-07-22 08:40:52 +02:00
Erik
9d7df1bfc5 refactor(render): compose render frame orchestrator
Move the accepted draw transaction and failure recovery behind typed frame-phase owners so GameWindow only supplies immutable frame input. Preserve retail draw order, make ImGui/bootstrap shutdown ownership explicit, and restore exact text-render GL state on failures.\n\nCo-authored-by: Codex <codex@openai.com>
2026-07-22 08:03:49 +02:00
Erik
28e1cf8029 refactor(render): extract world scene frame owner
Move fallback and PView world drawing, shared alpha, particles, visibility, selection, and diagnostics behind focused frame owners. Make exceptional frames failure-atomic by restoring the shared GL baseline and preserving primary alpha failures through cleanup.

Co-authored-by: Codex <codex@openai.com>
2026-07-22 07:22:09 +02:00
Erik
85239fb373 refactor(render): extract typed retail pview passes 2026-07-22 06:40:09 +02:00
Erik
6d6e5b5fa5 refactor(render): extract world frame preparation
Move camera/root resolution, live settings and listener preview, sky/lighting/fog preparation, animated classification, and building visibility scratch behind a typed WorldRenderFrameBuilder while preserving retail frame order and borrowed lifetimes.

Co-authored-by: Codex <codex@openai.com>
2026-07-22 05:54:00 +02:00
Erik
bc6f09f987 refactor(render): extract frame resource preparation
Move ordered resource begin, clear/state setup, live upload/reveal, weather timing, and display pacing behind focused owners while preserving the accepted frame order and retryable shutdown ownership.

Co-authored-by: Codex <codex@openai.com>
2026-07-22 05:23:46 +02:00
Erik
733126a272 refactor(render): extract frame presentation diagnostics 2026-07-22 05:02:31 +02:00
Erik
7e4cfb37c3 refactor(render): establish frame orchestration contract 2026-07-22 04:18:31 +02:00
Erik
f316bbd817 docs(architecture): plan GameWindow render-frame extraction 2026-07-22 04:11:58 +02:00
Erik
9512404e25 docs(architecture): close GameWindow slice 6 2026-07-22 03:54:11 +02:00
Erik
e91f310279 refactor(update): cut over the frame orchestrator
Reduce GameWindow.OnUpdate to one typed orchestration call and remove transitive window callbacks from teardown, liveness, teleport placement, live presentation, auto-entry, and entity packet routing. Preserve the frozen retail object/network order while making the production owner graph explicit and testable.
2026-07-22 03:31:38 +02:00
Erik
947c61d2d7 refactor(camera): extract the update frame
Move fly/chase publication, combat target tracking, and local player projection behind typed runtime owners. Preserve the inbound-created projection/reconcile barrier while removing GameWindow callbacks and duplicate shadow helpers.
2026-07-22 03:08:58 +02:00
Erik
eeb0f6b45c refactor(runtime): extract local teleport and player mode
Move local teleport, player-mode, animation, shadow, and sealed-dungeon lifetimes out of GameWindow. Make player-mode entry transactional and isolate approach completions by controller lifetime and approach generation so stale callbacks cannot affect replacements.

Co-authored-by: Codex <noreply@openai.com>
2026-07-22 02:50:15 +02:00
Erik
c557038353 refactor(input): extract the gameplay frame 2026-07-22 01:38:40 +02:00
Erik
0bc9fda9de refactor(streaming): extract the update frame 2026-07-22 01:01:04 +02:00
Erik
4e4aac2c5a refactor(runtime): extract the live object frame 2026-07-22 00:42:26 +02:00
Erik
99a3e819c4 refactor(runtime): define the update-frame contract 2026-07-22 00:15:27 +02:00
Erik
a36a7015c4 docs(architecture): plan GameWindow update-frame extraction 2026-07-22 00:06:55 +02:00
Erik
d4ecac1da3 docs(architecture): close GameWindow slice 5 2026-07-21 23:45:45 +02:00
Erik
4a205a3e56 test(streaming): close lifecycle gate after cutover 2026-07-21 23:41:15 +02:00
Erik
db3ca59fd0 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.
2026-07-21 22:50:38 +02:00
Erik
c79d0a49da refactor(streaming): complete landblock presentation cutover
Remove the legacy GameWindow apply path and make the concrete render, physics, and static publishers the only production owner graph. Serialize full-window retirement with shared-origin teleport and session boundaries so old coordinate-frame resources cannot survive into a new world or login.
2026-07-21 22:47:30 +02:00
Erik
801d8a189c docs(architecture): record pipeline-owned retirement
Close Slice 5F in the execution ledger, update the milestone and roadmap measurements, and advance the active checkpoint to direct cutover and dead-facade cleanup.

Co-authored-by: Codex <codex@openai.com>
2026-07-21 22:09:16 +02:00
Erik
ea7ffbc186 refactor(streaming): own presentation retirement in pipeline
Move full and near-tier presentation retirement out of GameWindow and into a concrete pipeline-owned stage mapper. Harden the retry ledger against reentrancy and committed visibility observer failures, enforce a single state/resource ownership graph, and split concrete versus legacy controller construction so callbacks cannot be silently ignored.

Co-authored-by: Codex <codex@openai.com>
2026-07-21 22:07:36 +02:00
Erik
dc39772bf9 docs(architecture): close landblock presentation checkpoint E
Record the retained static-resource lifetime, exact receipt retry boundary, clean review cycle, and 7,026-pass Release gate before retirement ownership moves into the pipeline.

Co-authored-by: Codex <noreply@openai.com>
2026-07-21 21:46:02 +02:00
Erik
ea0da8c8ae refactor(streaming): compose landblock presentation transaction
Own render, physics, DAT-static presentation, and retained static-resource rebinds behind retryable receipts so a failed publication resumes its exact unfinished suffix without replaying retail create-time defaults.

Co-authored-by: Codex <noreply@openai.com>
2026-07-21 21:45:16 +02:00
Erik
e1110f7e54 docs(plan): complete landblock physics publication
Record the exact Slice 5D owner boundary, corrected review results, Release gate, and GameWindow reduction before starting static presentation coordination.

Co-authored-by: Codex <noreply@openai.com>
2026-07-21 21:14:24 +02:00
Erik
3613d393e6 refactor(streaming): extract landblock physics publisher
Move streamed terrain/cell/building and static collision publication behind a focused update-thread owner. Preserve retail publication order while making replacement and retirement exact by logical landblock ownership, including current-cell rebasing and adjacent-seam isolation.

Co-authored-by: Codex <noreply@openai.com>
2026-07-21 21:13:22 +02:00
Erik
acb6b34d01 docs(plan): complete landblock render publication 2026-07-21 20:48:26 +02:00
Erik
1029f8372e refactor(streaming): extract landblock render publisher 2026-07-21 20:47:01 +02:00
Erik
0f9c03f422 docs(plan): complete landblock build extraction 2026-07-21 20:30:54 +02:00
Erik
5af101b2f1 refactor(streaming): extract landblock build factory 2026-07-21 20:30:32 +02:00
Erik
e4a9664f09 docs(plan): complete landblock streaming seams 2026-07-21 20:13:25 +02:00
Erik
090b0354ff refactor(streaming): capture landblock build origin 2026-07-21 20:12:56 +02:00
Erik
2216a02de5 docs(plan): record landblock transaction checkpoint 2026-07-21 19:57:13 +02:00
Erik
4f965d0699 refactor(streaming): own landblock publication transactions 2026-07-21 19:55:24 +02:00
Erik
4001251064 docs(plan): define GameWindow slice 5 2026-07-21 19:33:16 +02:00
Erik
2b10e91e07 docs(plan): complete GameWindow slice 4 2026-07-21 19:29:04 +02:00
Erik
aa90c64666 refactor(world): extract live entity network updates
Move Position, Vector, State, Movement, and equal-generation CreateObject routing out of GameWindow while preserving per-channel authority, ForcePosition acknowledgement, and motion-runtime ownership. Add adversarial authority and exact-wire coverage so reentrant updates and GUID reuse cannot publish stale state.
2026-07-21 19:11:49 +02:00
Erik
c203e4799a docs(plan): record live teardown checkpoint 2026-07-21 18:27:15 +02:00
Erik
f38822c490 refactor(world): extract live entity teardown 2026-07-21 18:25:59 +02:00
Erik
4427cfb2c7 docs(plan): record live relationship checkpoint 2026-07-21 18:11:09 +02:00
Erik
fe5514967c refactor(world): extract live appearance and parenting
Move ObjDesc, Parent, Pickup, child-ready, and retained projection recovery into LiveEntityHydrationController while preserving retail timestamp and leave-world semantics. Pin ready publication to exact projection authority and restore attached descendant chains synchronously.
2026-07-21 18:10:07 +02:00
Erik
40352d5a7a docs(plan): record live hydration checkpoint 2026-07-21 17:33:22 +02:00