diff --git a/docs/ISSUES.md b/docs/ISSUES.md index 3ebafe4b..e56ddf7f 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -48,7 +48,7 @@ Copy this block when adding a new issue: ## #145 — Portals only work once per session (can't run in, run out, re-enter) -**Status:** ✅ CASCADE FIXED + USER-GATE PASSED (2026-06-21) — the far-town resolver runaway is closed via the **cell-relative physics frame (Option B)**, Slices 1–3 + 7 (`438bb68`→`403a338`). Live gate: `+Je` spawned ON the trigger (`0xC95B0001` local `(14.8,0.3,12)`) and ran through SIX far towns + the hub — 131 cell-transits, every crossing clean, **zero march to `0x00`** (pre-fix the first southward step sprayed the cascade). All suites green (Core 1529 / App 480 / UI 425 / Net 313 + `TeleportFarTownRunawayTests`). REMAINING (invisible, no behaviour change): Slices 4–6 (contact-plane/walkable cell-relative + `_liveCenter` fully render-only) + an adversarial review of the fix in flight. The `17410` wire artifact died with the cascade (it was downstream of the marched cell). Mechanism + design: `docs/superpowers/specs/2026-06-21-145-cell-relative-physics-frame-design.md` + plan. [Original reopened-research banner below.] +**Status:** 🟡 PARTIALLY FIXED — REOPENED 2026-06-21 (a NARROWER residual). The cell-relative carried-anchor (Option B, Slices 1–3+7, `438bb68`→`403a338`) **fixes the cascade for a STREAMED-terrain arrival** (live-verified: `+Je` ran through ~10 far-town landblocks across 2 sessions, zero march). BUT a third live session found the cascade **RECURS when a teleport arrives onto a NOT-YET-STREAMED landblock NEAR AN EDGE.** Evidence (`launch5.log`): arrival `[snap] claim=0xC98C0028 pos=(113.666,190.259,22.010) branch=NO-LANDBLOCK (lbs=0) -> verbatim` (local Y=190.3, **1.7 m from the 192 boundary**) → cell marches `0xC98C(lbY 0x8C) → 0xC9FE(lbY 0xFE)` +2/tick while Z free-falls 22→−19; the outbound wire then sends the marched cell `C9FE0031` with compensating garbage `localY=−21684` → ACE `MOVEMENT SPEED` / `failed transition` → player stuck. Contrast same session: hub `0x00070133` VALIDATED→fine; far town `0x977B000C` arrived unstreamed but **mid-block** (Y=73.8) → Z free-fall only, NO march. **ROOT (hypothesis, NOT yet apparatus-confirmed):** outdoor teleport places immediately but the destination streams a few ticks later (`streaming: dungeon EXIT-expand -> (201,140)` logs just after placement); during that gap the resolve runs against an empty world, and at an edge the player crosses into the unstreamed neighbour where the carried anchor (which computes to `(0,0,0)` at the recentered center) gives no protection. Same root as the Z free-fall (`#135`/`#138` placed-but-unstreamed gap). **DO NOT guess-patch** (original #145 burned 5 attempts) — needs a capture + an anchor/guard diagnostic at the crossing FIRST. Likely fix shape: a streaming-gap HOLD (freeze the per-tick resolve — no march, no fall — until the player's landblock loads; the async equivalent of retail's synchronous load), which would fix both symptoms. Suites still green; `TeleportFarTownRunawayTests` covers the STREAMED case only. [Prior "fixed" banner was premature — 2 clean sessions wasn't enough for a streaming-timing bug.] **Status (historical):** REOPENED 2026-06-21 — RESIDUAL: a teleport to a FAR town triggers a per-frame **resolver runaway** (the 2026-06-20 source-drop fix holds for Holtburg↔dungeon, but far-town destinations regress). #138 (objects come back) is confirmed SEPARATE + fixed. Root cause under research (retail-decomp oracle workflow). **Severity:** HIGH (blocks far-town portal travel; breaks collision after the teleport — user, 2026-06-21)