Commit graph

  • 9bd3a98363 docs: close #193 (OOM — Opacities leak, measurement-verified) + file #194 main Erik 2026-07-10 14:24:30 +02:00
  • 119a2326be fix(#193): clear InstanceGroup.Opacities each frame — stop the ~1 GB/min LOH leak Erik 2026-07-10 14:15:10 +02:00
  • 02487da0ce docs: file #193 — client OOMs after ~50 min of play (two crashes 2026-07-10) Erik 2026-07-10 10:03:08 +02:00
  • 9a772d2b2a docs: M1.5 "Indoor world feels right" LANDED 2026-07-10 — advance to M2 Erik 2026-07-10 09:58:48 +02:00
  • 113569b482 docs(#138): record 2026-07-10 partial gate — enter+navigate confirmed, exit gate pending Erik 2026-07-10 09:49:19 +02:00
  • 5e271dd719 docs: reconcile M1.5 tracking with git reality — G.3 dungeons SHIPPED, not "broken" Erik 2026-07-10 09:45:05 +02:00
  • 217a4bad69 Merge branch 'main' into claude/peaceful-visvesvaraya-e0a196 Erik 2026-07-09 23:18:52 +02:00
  • 0ecb729527 docs: close #192 (login streaming race) — user visual gate passed Erik 2026-07-09 16:12:31 +02:00
  • fa9aedca0a fix(#192): close login streaming race — gate on a known real position, not session state Erik 2026-07-09 15:57:43 +02:00
  • 3dcd53cab7 docs: bulk issues triage — close 27, note 10 investigated-open Erik 2026-07-09 13:52:41 +02:00
  • c4058203f4 docs: update Current state — #137 + A7 lighting closed, #138 is the sole M1.5 critical-path item left Erik 2026-07-09 13:18:01 +02:00
  • 44cced715c docs: close #93 and #80 (indoor lighting) — user re-verified 2nd-floor fix Erik 2026-07-09 13:17:25 +02:00
  • 754b299f7a docs: close #189 (fountain water spray) — user visual gate passed Erik 2026-07-09 12:44:13 +02:00
  • 6e034ac610 docs: A7.L1 session bookkeeping — close #190, update #93/#189, file #191 Erik 2026-07-09 12:40:42 +02:00
  • e651cb6dd1 fix(#190): interior entity id counter overflowed past its 8-bit budget, aliasing into the next landblock Erik 2026-07-09 12:21:57 +02:00
  • f6b054b7d7 docs(#79/#93): dat-truth check refutes the mesh-gate theory for missing fountain/candle particles Erik 2026-07-09 11:44:03 +02:00
  • 9ebb206086 fix(#79/#93): mesh-empty hydration gate was dropping light-only fixtures Erik 2026-07-09 11:11:16 +02:00
  • d275ed554e feat(A7.L1): scope the point-light pool by last frame's visible cells (#79/#93/#176/#177) Erik 2026-07-09 10:34:15 +02:00
  • 388f3ed307 docs(A7): Town Network "too dark" root-caused — ambient RULED OUT (live cdb 0.2 white == retail), cause is the 463>128 light cap Erik 2026-07-09 10:18:05 +02:00
  • 5d013dcb10 docs: close #188 (fading-wall doors fade + hold; door flip-back fix, 3284dd0a) Erik 2026-07-09 09:20:51 +02:00
  • 3284dd0aed feat(#188): fading-wall + sliding-door translucency; hold open past animation settle Erik 2026-07-09 09:17:50 +02:00
  • e2e285b855 fix(#187): drop the "Name == Door" special-case — register any entity with a resolvable MotionTableId Erik 2026-07-08 20:10:45 +02:00
  • 0efa7ed2a1 docs: close #137 (dungeon collision, user re-gate) + file #187 (door animation dispatch gap) Erik 2026-07-08 17:14:11 +02:00
  • 4dea66b633 docs(#186): close — render InsideSide from dat PortalSide bit (fix 8257b9ba); retail trace overturned PICK + FLOOD-epsilon hypotheses Erik 2026-07-08 15:07:46 +02:00
  • 8257b9ba10 fix(#186): render side-cull mis-sided thin connectors — use dat PortalSide bit, not AABB centroid Erik 2026-07-08 15:06:33 +02:00
  • 9d35a9786f docs(#186): handoff — connector grey flap narrowed to the doorway-flap flood/pick family Erik 2026-07-08 14:04:23 +02:00
  • cd42369581 docs(#186): file indoor->indoor grey flap at a connecting room (new house type) Erik 2026-07-08 10:26:54 +02:00
  • 5a9df00aa9 docs(#185): close — REAL root cause = shadow part-id uint32 overflow (07c5b832) Erik 2026-07-08 10:17:08 +02:00
  • 07c5b832cf fix(#185): landblock collision part-id uint32 overflow dropped stair steps Erik 2026-07-08 10:07:50 +02:00
  • b62b13ce21 docs(#185): design v2 — REAL root cause = shadow part-id uint32 overflow Erik 2026-07-08 09:55:24 +02:00
  • 75e3b76445 docs(#185): implementation plan — red replay -> pin -> retention fix -> regress Erik 2026-07-08 08:42:36 +02:00
  • 06c3ecd89d docs(#185): design — Approach A (keep mover grounded on the forward move) Erik 2026-07-08 08:37:24 +02:00
  • 4a067e34a9 docs(#185): handoff for the outdoor-stairs phantom fix (synthetic sliding-normal, #137/TS-4 family) Erik 2026-07-08 07:35:11 +02:00
  • 99c22fad48 docs(#185): root cause = synthetic sliding-normal at a convex tread edge (#137/TS-4 family, artifact not geometry) Erik 2026-07-08 07:28:35 +02:00
  • 29e01c3829 docs: file #185 - local player jams half-way up outdoor stairs (house on stilts) Erik 2026-07-08 07:14:06 +02:00
  • bd632f6f6d docs(#184): CLOSE — Slice 2 gate passed (players walk through, monsters collide) Erik 2026-07-08 06:40:29 +02:00
  • ddb5a96799 feat(#184): Slice 2b — unify the remote player/NPC fork (players collide faithfully) Erik 2026-07-08 00:45:44 +02:00
  • e1ac56cce9 refactor(#184): Slice 2a — extract RemotePhysicsUpdater (byte-exact, fork preserved) Erik 2026-07-07 23:52:16 +02:00
  • 4b07b0f541 docs(#184): Slice 2 handoff — extract RemotePhysicsUpdater (2a) + unify the player/NPC fork (2b) Erik 2026-07-07 23:31:01 +02:00
  • f0f6a92a4c docs(#184): mark the remote-creature de-overlap symptom RESOLVED + gated (Slices 1+3) Erik 2026-07-07 22:59:14 +02:00
  • f51c1dffa5 feat(#184): Slice 3 — Setup-derived mover sphere for the remote de-overlap sweep Erik 2026-07-07 22:53:21 +02:00
  • 37a94e1fa4 feat(#184): remote-creature de-overlap — placement-snap + shadow-follows-resolved (visual gate passed) Erik 2026-07-07 22:36:54 +02:00
  • 7f7a78d3ea docs: remote-creature de-overlap — design spec + fresh-session handoff Erik 2026-07-07 20:29:06 +02:00
  • e3c4c59b84 docs(#182): retire TS-3, narrow AD-25 + add AD-39/40/41, update ISSUES for the shipped rebuild Erik 2026-07-07 14:30:07 +02:00
  • 54d5622960 feat(#182): route player collision response through the ported UpdateObjectInternal chain (Slice 2b/2c) Erik 2026-07-07 14:25:47 +02:00
  • 78df1370b6 feat(#182): port handle_all_collisions as a pure Core unit (Slice 2a) Erik 2026-07-07 14:12:59 +02:00
  • 6c3cd96b7a feat(#182): frames_stationary_fall round-trip in the kept transition internals (Slice 1b/1c) Erik 2026-07-07 14:11:35 +02:00
  • 6e8117741b feat(#182): PhysicsBody fsf state + CachedVelocity; ungate small-velocity-zero (Slice 1a) Erik 2026-07-07 13:39:28 +02:00
  • 8bb8b20411 tools+plan(#182): resolve-capture histogram classifier + verbatim player-physics rebuild plan Erik 2026-07-07 13:37:15 +02:00
  • 80881ed6f1 docs(#182): crowd-collision investigation outcome + velocity-model rebuild design Erik 2026-07-07 13:07:56 +02:00
  • 96ae274081 fix #182: port CSphere collision family — retail-faithful crowd wiggle (retires TS-45) Erik 2026-07-07 11:25:56 +02:00
  • 0cbe1102d9 docs(#177): mark stairs pickup-handoff SUPERSEDED (flood theory disproven) Erik 2026-07-07 10:10:53 +02:00
  • 3120f8ae08 docs(ISSUES): correct #138 status to resolved (residuals #146/#147) Erik 2026-07-07 08:45:58 +02:00
  • 554af5042d park #177: retail cdb trace DISPROVES the portal-flood theory Erik 2026-07-07 08:43:21 +02:00
  • c84dc49a63 docs: park #181 with the full elimination ledger; #177 stairs pickup handoff + companion prompt Erik 2026-07-06 22:53:23 +02:00
  • 233b469b01 fix #176/#181 (A7 fix #2): stationary server-weenie fixtures take retail's STATIC light curve - isDynamic decided by motion, not origin Erik 2026-07-06 22:45:50 +02:00
  • cace430299 diag #176/#181: artifact CHARACTERIZED - static ~10x-hot magenta wash zebra-striping wall geometry; root = weenie lamps on the dynamic light curve (A7 fix #2); retail static curve Ghidra-verified (calc_point_light 0x0059c8b0) Erik 2026-07-06 22:43:43 +02:00
  • 378316af15 docs #181: the vsync decision gate - all camera/sweep mechanisms now Ghidra-verified faithful; residual mm limit cycle likely retail-class, visible only via unsynced tearing Erik 2026-07-06 22:31:36 +02:00
  • 3f34bca06f port #181: retail viewer step subdivision (calc_num_steps 0x0050a0b0) - radius-anchored steps + remainder final step + viewer-exempt small-offset abort Erik 2026-07-06 22:30:37 +02:00
  • d4ff80cb2b diag #181: retraction + exoneration - the 'scissor rect' was the user's snip-tool marquee; applied light sets FROZEN across all vis=32 frames Erik 2026-07-06 21:50:08 +02:00
  • d366f36557 diag #181 (refined): 0x0181's region is a zero-area sliver; the amplifier is per-drawn-cell state shifting with the cell list, not light-pool scoping Erik 2026-07-06 21:46:49 +02:00
  • 864e4d9e75 diag #181: root-cause chain complete - flapping cell 0x0181, wall-press excitation, and the REAL defect: camera-flood-scoped light application Erik 2026-07-06 21:04:34 +02:00
  • d9a4ca2355 docs #180/#181: bank the session state - both camera fixes verified, the flicker split to #181 (portal-flood vis flap on micron eye noise) Erik 2026-07-06 20:54:01 +02:00
  • 87cddce24a fix #176 site-A: idempotent static light registration on landblock re-apply - the stacking wash leak Erik 2026-07-06 18:47:33 +02:00
  • f10fe4e96c fix #180 (root): retail adjust_to_plane - PathClipped stops now resolve to the contact point, not a step boundary Erik 2026-07-06 17:20:46 +02:00
  • 48aaab811c fix #180: port retail's stateful camera sought-position - the sweep target converges onto the wall contact Erik 2026-07-06 16:49:01 +02:00
  • 7272235a22 docs(#180): camera-sweep strobe handoff - evidence, retail anchors, autonomous visual-loop recipe, companion prompt Erik 2026-07-06 16:29:57 +02:00
  • 6aabe0b5ac diag #176/#180: isolation toggles pin the residual stripes on the camera sweep, not the render Erik 2026-07-06 16:19:38 +02:00
  • d8984e877f fix #176: light pool tracked the camera via flood scoping - collect residents, anchor at player Erik 2026-07-06 15:12:31 +02:00
  • 8cb3176daa feat(lighting): SelectForCell (all dynamic lights per EnvCell) + #176 handoff — residual is a runtime z-fight Erik 2026-07-06 13:55:16 +02:00
  • 92bb27c03b docs(pipeline): PARK Track MP - FPS-swing win banked, ECS+remainder deferred Erik 2026-07-06 00:57:04 +02:00
  • 093cdb6d57 Merge branch 'main' into claude/eloquent-hugle-42119e Erik 2026-07-06 00:47:09 +02:00
  • c500912bf8 feat(lighting): A7 visible-cell light scoping + [indoor-light] probe (NOT the #176/#177 fix) Erik 2026-07-06 00:35:01 +02:00
  • ffe0c0e4f3 docs(pipeline): MP-Alloc safe-batch SHIPPED + user-gated (steadier FPS) Erik 2026-07-06 00:19:54 +02:00
  • 91afea24b4 perf(pipeline): MP-Alloc Task 4 - reuse per-frame animatedIds + drawableCells sets Erik 2026-07-06 00:09:03 +02:00
  • 76b8b4e9fc perf(pipeline): MP-Alloc Task 3 - pool InteriorEntityPartition.Result Erik 2026-07-05 23:47:23 +02:00
  • a4b42a7417 perf(pipeline): MP-Alloc Task 2 - reuse particle draw-list + iterator Erik 2026-07-05 23:43:14 +02:00
  • b8c05e2bbe perf(pipeline): MP-Alloc Task 1 - reuse animation pose buffers per entity Erik 2026-07-05 23:40:57 +02:00
  • 3e69241c64 docs(pipeline): MP-Alloc safe-batch plan - kill per-frame garbage (frame-time spikes) Erik 2026-07-05 23:34:43 +02:00
  • 08a9d28a32 docs(pipeline): resequence Track MP - pull allocation triage ahead of MP1c Erik 2026-07-05 23:28:34 +02:00
  • e1746ca10d docs: #176/#177 handoff — root-caused, folded into A7 dungeon lighting Erik 2026-07-05 23:16:17 +02:00
  • 4ca4cf9501 docs(pipeline): correct 6.6 - EnvCell dedup is REQUIRED (full-bake gate) Erik 2026-07-05 23:16:12 +02:00
  • d591e3bbe5 revert #176/#177 cap raise: the uncapped light pool exposes unported per-cell reach semantics — defer to A7 Erik 2026-07-05 23:11:18 +02:00
  • 859cf5ec02 refactor(pipeline): MP1b review - unify DatCollectionAdapter + TOC/log test gaps Erik 2026-07-05 22:18:30 +02:00
  • 86e0dc4655 fix(pipeline): MP1b review - bake CLI determinism + bounded memory Erik 2026-07-05 22:14:31 +02:00
  • 84d1956d84 fix(pipeline): MP1b review - pak format/reader hardening Erik 2026-07-05 22:08:59 +02:00
  • 8814a50f52 docs(pipeline): spec 6.6 - EnvCell geomId-vs-fileId keying note for MP1c Erik 2026-07-05 21:59:18 +02:00
  • 4d25e04d83 fix #176 #177: the camera-capped light snapshot evicted visible cells' torches — per-cell lighting popped at seams Erik 2026-07-05 21:55:43 +02:00
  • a5926ebcfc fix(pipeline): MP1b - remove dead try/catch in PakWriter.Dispose Erik 2026-07-05 21:35:07 +02:00
  • 55f16a0205 test(pipeline): MP1b - live-vs-pak equivalence suite (dat-gated) Erik 2026-07-05 21:33:32 +02:00
  • 50f7dd06cf feat(pipeline): MP1b - acdream-bake CLI Erik 2026-07-05 21:30:25 +02:00
  • 981025d58b feat(pipeline): MP1b - PakWriter + mmap PakReader Erik 2026-07-05 21:21:58 +02:00
  • b8e9e204ad docs+test #176/#177: 12 mechanisms refuted, apparatus shipped, probe protocol staged Erik 2026-07-05 21:20:03 +02:00
  • a5ba435839 feat(pipeline): MP1b - ObjectMeshData binary serializer (deterministic round-trip) Erik 2026-07-05 21:19:02 +02:00
  • 8248abe9d4 feat(pipeline): MP1b - pak key + header/TOC primitives Erik 2026-07-05 21:14:10 +02:00
  • f29255a45c test(pipeline): MP1b - AcDream.Content.Tests scaffold Erik 2026-07-05 21:11:12 +02:00
  • b9ceafd4fd docs(pipeline): MP1b plan - pak format, acdream-bake, PakReader, equivalence Erik 2026-07-05 21:01:18 +02:00
  • 4122ac7eaf docs(pipeline): MP1a shipped - Content extraction user-gated Erik 2026-07-05 20:58:29 +02:00
  • b0758d772b refactor(pipeline): MP1a cleanup - narrow public surface, csproj parity, move residue Erik 2026-07-05 20:52:01 +02:00
  • 932f904e00 fix(pipeline): MP1a - sink delegate restores immediate side-stage enqueue (exception-path faithfulness) Erik 2026-07-05 20:39:42 +02:00