Commit graph

284 commits

Author SHA1 Message Date
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
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
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
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
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
acb6b34d01 docs(plan): complete landblock render publication 2026-07-21 20:48:26 +02:00
Erik
0f9c03f422 docs(plan): complete landblock build extraction 2026-07-21 20:30:54 +02:00
Erik
e4a9664f09 docs(plan): complete landblock streaming seams 2026-07-21 20:13:25 +02:00
Erik
2216a02de5 docs(plan): record landblock transaction checkpoint 2026-07-21 19:57:13 +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
c203e4799a docs(plan): record live teardown checkpoint 2026-07-21 18:27:15 +02:00
Erik
4427cfb2c7 docs(plan): record live relationship checkpoint 2026-07-21 18:11:09 +02:00
Erik
40352d5a7a docs(plan): record live hydration checkpoint 2026-07-21 17:33:22 +02:00
Erik
27dcd0ecb7 docs(plan): record live projection checkpoint 2026-07-21 16:18:52 +02:00
Erik
c87bac31a0 docs(plan): record canonical live entity seams 2026-07-21 14:06:23 +02:00
Erik
db5a11707d docs(plan): pin live-entity integration slice 2026-07-21 13:00:16 +02:00
Erik
ed9dc36643 docs(architecture): close live-session ownership slice 2026-07-21 12:44:48 +02:00
Erik
485b3fb6ed docs(plan): record GameWindow session cutover 2026-07-21 12:37:38 +02:00
Erik
783ef1d6db docs(plan): record complete session lifecycle checkpoint 2026-07-21 12:21:34 +02:00
Erik
23b43d1859 docs(plan): record convergent session reset checkpoint 2026-07-21 12:01:12 +02:00
Erik
78a9223b65 docs(plan): record live session routing checkpoint 2026-07-21 11:18:03 +02:00
Erik
707e606e35 docs(plan): record owned session wiring checkpoint 2026-07-21 10:46:18 +02:00
Erik
88fe1db37b docs(plan): record session conformance checkpoint 2026-07-21 10:33:25 +02:00
Erik
bacc7e45a9 docs(architecture): plan live session ownership slice 2026-07-21 10:16:14 +02:00
Erik
9a150e2421 docs(architecture): close live animation slice
Record the shipped presentation owner, exact frame-handoff lifetime, retail short-frame behavior, current GameWindow metrics, and Slice 3 as the next structural boundary.
2026-07-21 10:03:20 +02:00
Erik
9760ff5a8d docs(animation): plan GameWindow live presentation slice
Define the exact extraction boundary, incarnation-safe handoff, retail trailing-part correction, and review gates before moving the final PartArray presentation path out of GameWindow.

Co-Authored-By: OpenAI Codex <codex@openai.com>
2026-07-21 09:30:04 +02:00
Erik
9ad8113c79 docs(architecture): close selection extraction slice
Record the measured GameWindow reduction, final review and test gates, durable selection/inventory ownership rules, and live animation presentation as Slice 2.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-21 09:04:31 +02:00
Erik
c271383714 docs(interaction): plan GameWindow selection slice
Define the read-only query and stateful interaction ownership boundaries, pin retail ordering and lifecycle invariants, and isolate the GUID-incarnation and pending-pickup defects as #230 and #231 before the mechanical cutover.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-21 06:59:56 +02:00
Erik
cf50ee3d50 docs(architecture): reconcile GameWindow extraction program
Close the completed M3 and portal observer gates, make the behavior-preserving GameWindow ownership campaign the explicit M4 prerequisite, and replace the stale extraction sketch with an implementation-audited sequence.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-21 06:44:29 +02:00
Erik
e02acb870c docs(runtime): close deterministic world lifecycle gate
Record the passing capped and uncapped connected evidence, coordinator ownership, graceful reconnect contract, current test baseline, and the remaining human-only visual gates. Keep AGENTS.md synchronized with CLAUDE.md and distill the durable reveal-lifecycle lesson into project memory.
2026-07-21 00:00:31 +02:00
Erik
db45b81f75 test(streaming): expose world reveal lifecycle 2026-07-20 22:32:23 +02:00
Erik
b60cb67009 fix(streaming): block login on complete world reveal
Make initial login and portal arrival consume one WorldRevealReadinessBarrier that joins near-tier mesh publication, destination composite uploads, and collision residency before normal world geometry becomes visible. This ports retail SmartBox's blocking-cell completion edge into the asynchronous client instead of exposing a ground-only login.

Add focused outdoor, indoor, texture, and invalid-claim tests; update the retail pseudocode, architecture, divergence record, issue ledger, roadmap baseline, and synchronized agent guidance.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-20 16:08:08 +02:00
Erik
6c3bd4ce4b docs: reconcile project status and navigation
Add a canonical documentation map, modernize the public README, and align milestone, roadmap, architecture, issue, divergence, and session guidance with the July 20 baseline. Correct the far-teleport residual to issue #153, close visually accepted indicator and terrain-tiling work, record the remaining detail-overlay and build-warning debt, and deprecate the duplicate legacy bug ledger.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-20 13:00:41 +02:00
Erik
a755b764bf test(runtime): add unattended connected R6 soak
Drive turn, movement, jump, and combat through the production InputDispatcher so connected Release testing works without an interactive Windows desktop. Track held automation actions through normal completion and every shutdown path.

Add a seven-destination ACE route with post-liveness memory, allocation, update, fatal-log, outbound-movement, and graceful-close gates. Record dynamic ACE population changes as context instead of a false lifetime oracle, and document the accepted rebaseline.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-20 12:12:08 +02:00
Erik
f961d70023 feat(physics): port retail complete object frame pipeline
Restore the named-retail object update order across local, remote, static, projectile, animation, shadow, teleport, and effect lifetimes. Separate authoritative root commits from spatial rebucketing, preserve per-owner hook/FIFO ordering, and remove update-path allocations with exact lifecycle and residency gates.

Add deterministic conformance, adversarial lifetime, GUID-reuse, pending-cell, quaternion, timestamp, and allocation coverage. Release build is warning-free and all 6,446 tests pass with five intentional skips; retail, architecture, and adversarial reviews are clean.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-20 09:10:31 +02:00
Erik
c5ab99081c fix(motion): restore retail object manager order
Process animation completion at the retail process_hooks boundary, then run targeting, movement, PartArray completion, and PositionManager in the named UpdateObjectInternal order for local, remote, hidden, and position-less animated objects. Retire TS-42 with deterministic conformance coverage.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
2026-07-19 21:40:14 +02:00
Erik
0f996db747 docs(roadmap): record Linux headless bot direction
Capture the deferred configurable-LOD, Linux graphical host, true headless runtime, and multi-session automation direction without changing the active M3 sequence. Reconcile the previous blanket cross-platform exclusion while keeping native macOS graphics uncommitted.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-19 21:14:11 +02:00
Erik
b95bb3e21c fix(diagnostics): keep UI scripts on game-loop time
Preserve sub-millisecond frame deltas with a command-local compensated clock so uncapped diagnostic routes do not outrun materialization and settling. Keep sleep boundaries inclusive, wait timeouts strict, and handle long-duration and invalid-delta cases deterministically.

Record the aligned seven-destination connected route with a full turn at every stop. Release build succeeds and all 6,308 tests pass with five intentional skips.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-19 16:38:49 +02:00
Erik
3718e341be fix #225: stabilize render pacing and frame CPU
Replace scheduler-quantized software sleeps with a reusable Windows high-resolution deadline timer, expose pacing in the frame profiler, and make shutdown wake every persistent mesh worker without losing the shared signal.

Preserve retail alpha order while using a stable radix, skip duplicate deferred-alpha SSBO packing, pack light sets, cache static selection descriptors, and retire historical material groups at the whole-frame boundary. The fixed dense-Caul sample improved from roughly 9-12 ms CPU to 5.3-6.2 ms without reducing visual quality.

Release build succeeds with zero warnings and all 6,300 tests pass with five intentional skips. Three independent retail, architecture, and adversarial reviews are clean; the post-review connected route remains pending because local ACE is offline.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-19 06:29:30 +02:00
Erik
749e8ceeb1 fix(rendering): bound portal resource lifetime
Separate logical ownership, render publication, and GPU retirement across live entities, landblocks, particles, textures, mesh arenas, portal/UI teardown, and per-frame scratch storage. Add bounded DAT/texture caches, upload budgets, three-frame fence retirement, exact-incarnation appearance reconciliation, frame pacing, and extensive lifetime conformance coverage.\n\nThe seven-destination connected route now cuts peak working/private memory roughly in half, returns Caul to 125-153 FPS locally, and produces no WER or AMD reset.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
2026-07-18 21:35:16 +02:00
Erik
3971997689 fix(streaming): retire stale portal-region entities
Port retail's 25-second leave-visibility lifetime over canonical live records, retaining spatially resident and owned entities while using the conservative ACE visibility envelope for nonresident records. Route expiry through the normal generation-safe F747 teardown so animations, effects, physics, and render owners unwind symmetrically.

Replace the append-only modern mesh buffer with coalescing vertex/index ranges and upload each mesh's vertices once instead of once per material. Released zero-reference meshes can now reuse GPU ranges after portal and cache churn.

A connected five-region round trip returned animation ownership to baseline, recreated the starting region on revisit, and held normal FPS. Release build succeeds and all 5,927 tests pass with five intentional skips.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-18 10:02:15 +02:00
Erik
ec1bb19609 feat(selection): port retail offscreen target indicator 2026-07-18 07:41:12 +02:00
Erik
ea4f52ec51 fix(selection): port SmartBox click lighting pulse
Port the retail high/low material-lighting cadence for successful world clicks, keep it instance-scoped in the modern renderer, and restore authored lighting after 0.8 seconds. Correct the selection oracle and pin timing plus per-frame buffer lifecycle with tests.

Co-authored-by: Codex <codex@openai.com>
2026-07-17 23:00:04 +02:00
Erik
146a963aeb feat(selection): port retail polygon picking and vivid marker
Replace the projected Setup-sphere rectangle and independent physics-wall ray with retail's render-coupled picker: only visible server-object parts participate, each exact drawing sphere broad-phases the camera-eye ray, and first-in-DAT-order visual polygon hits globally outrank sphere fallbacks.

Replace the devtools-only procedural triangles with the retained gameplay VividTargetIndicator using retail client-enum surfaces 1..4, radar-blip colorization, Setup selection-sphere framing, and the exact eight-pixel viewport clamp.

Release build succeeds with zero warnings and all 5,886 tests pass with five intentional skips.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-17 21:32:51 +02:00
Erik
d51a0fc825 fix(items): complete retail corpse looting feedback
Route corpse Use through the shared ItemHolder policy so Stuck corpses open instead of being sent as pickup requests. Restore the framed, horizontally resizable external-container strip and use a compact initial width. Port retail's target-list pending item projection so loot is marked in the chosen inventory slot without changing canonical ownership before the server confirms.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-17 16:53:49 +02:00
Erik
20ce67b625 feat(items): port retail external-container looting
Add the ClientUISystem ground-object lifecycle, authoritative root and nested ViewContents projections, replacement and close semantics, and the DAT-authored gmExternalContainerUI strip for chests and corpses.

Route double-click loot and full or partial drag transfers through the shared retail item policy without optimistic external ownership. Remove the incorrect NoLongerViewingContents behavior from owned side packs and retire AP-106/#196.

Release build succeeds and all 5,875 tests pass with five intentional skips.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-17 16:18:10 +02:00
Erik
48a118db91 config(vfx): default to extended particle range
Honor the requested non-dev-UI behavior by making the 2x DAT-authored particle cutoff the application default while keeping Retail as the exact opt-down setting. Update migration tests and the divergence/roadmap documentation accordingly.

Release build succeeds and all 5,857 tests pass with five intentional skips.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-17 15:32:57 +02:00