diff --git a/docs/ISSUES.md b/docs/ISSUES.md index c12f1781..9d668ad2 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -883,15 +883,13 @@ Retail oracle for cell-id hysteresis: `acclient_2013_pseudo_c.txt:308742-308783` --- -## #97 — Phantom collisions + occasional fall-through on indoor 2nd floor (post-slice-1 happy-testing) +## #97 — Phantom collisions + occasional fall-through on indoor 2nd floor (post-slice-1 happy-testing) — [DONE 2026-06-11 · T6/BR-7 + T5 gate] -**Status:** OPEN — **LIKELY CLOSED by T6/BR-7 (2026-06-11), verify at the T5 -visual gate.** The +5 m radial query pad that made spheres test objects in -cells they never overlapped (the structural producer of this phantom class, -per the WF1 verification) is deleted with the per-cell query; indoor 2nd -floor now tests only the overlapped cells' own shadow lists. If T5's inn -2nd-floor walk is clean, close; if phantoms persist they have a different -mechanism and this gets a fresh capture. +**Status:** DONE — closed by T6/BR-7 (the +5 m radial query pad that made +spheres test objects in cells they never overlapped — the structural +producer of this phantom class per the WF1 verification — was deleted with +the per-cell query) and **user-confirmed at the T5 gate** ("5. Check" — +clean inn 2nd-floor walk, no invisible barriers). **Severity:** MEDIUM (intermittent; doesn't block stair-walking which works post-slice-1) **Filed:** 2026-05-21 **Component:** physics, ContactPlane stability @@ -3703,9 +3701,14 @@ Unverified. The likely culprits, ranked by suspected probability: --- -## #108 — Cellar↔main-floor transition: terrain (grass) sweeps across the upstairs door opening +## #108 — Cellar↔main-floor transition: terrain (grass) sweeps across the upstairs door opening — [DONE 2026-06-11 · T5 gate] -**Status:** OPEN — **RE-ATTRIBUTED to MEMBERSHIP 2026-06-11** (was: render) +**Status:** DONE — user-confirmed GONE at the T5 comprehensive gate +("3. Check" — cellar descent + ascent with the upstairs doorway watched +during the transition). Closed by the holistic-port stack: the T1 retail +frame order + T2 flood fidelity + the BR-7 membership/collision work +(the punch that previously masked-then-exposed it was rebuilt as part of +the discipline). No isolated fix commit — the discipline retired the class. **Severity:** MEDIUM **Component:** ~~render / indoor PView~~ → **physics / membership** (cellar-transition root flip) @@ -3730,9 +3733,12 @@ separate real mechanism to rebuild under BR-3 — it does NOT fix #108. --- -## #109 — Exit door across the room oscillates between door texture and background color +## #109 — Exit door across the room oscillates between door texture and background color — [DONE 2026-06-11 · T5 gate] -**Status:** OPEN +**Status:** DONE — user-confirmed at the T5 comprehensive gate ("7. No." +— the far exit door no longer oscillates). Closed by the holistic-port +stack (T1 dynamics-last frame order + depth discipline + T2 flood +fidelity). No isolated fix commit — the discipline retired the class. **Severity:** MEDIUM **Component:** render / indoor PView (exit-portal region vs door entity draw order) @@ -3904,6 +3910,94 @@ ad hoc — the DO-NOT-RETRY table's slide entries (physics digest) apply. --- +## #117 — Aperture-shaped see-through: doors/interiors visible through terrain hills and through nearer buildings + +**Status:** OPEN +**Severity:** HIGH (the most visible remaining render artifact post-port) +**Filed:** 2026-06-11 (T5 comprehensive gate, user items 11a+11b) +**Component:** render — aperture depth discipline (the T1 punch pass) + +**Symptom (user, axioms):** (a) "looking downhill I can see certain parts +of houses (not everything) like doors and some textures" through the +terrain; (b) "when I'm behind a house I can see the openings on the house +behind that house through the house in front of me, like doors and +windows." Both shapes are APERTURE-shaped (doors/windows), which points at +one mechanism: the far-Z punch erases the depth of NEARER occluders +(terrain hills, closer buildings) at the punched aperture pixels, so +interior content + door entities (dynamics drawn last) paint over them. + +**Diagnosis direction (mechanism, not live-probing):** decomp +`DrawPortalPolyInternal` (Ghidra 0x0059bc90) for the punch's depth STATE — +retail either depth-tests the punch polygon against the existing buffer +(only punching where the aperture is actually visible) or relies on +far→near per-building draw order so nearer geometry re-establishes depth +AFTER the punch. Compare against the T1 (`579c8b0`) punch pass wiring. + +--- + +## #118 — Character clipped + disappears for a moment when exiting houses + +**Status:** OPEN +**Severity:** MEDIUM-HIGH (every house exit, brief) +**Filed:** 2026-06-11 (T5 comprehensive gate, user item 10) +**Component:** render — dynamics handling at the indoor→outdoor transition + +**Symptom (user):** "We get clipped and disappear when we exit houses. +Like when we are just outside for a moment." Transition frames where the +viewer is still indoors and the player is just outside the door. + +**Suspects (in order):** (1) the LOCAL player entity's partition in +`InteriorEntityPartition` — T1's rule routes `ServerGuid != 0` to +Dynamics (never dropped); the local player may carry ServerGuid==0 and +fall into a per-cell static class that drops when its cell isn't in the +flood; (2) the landscape-through-aperture pass's plane clips slicing the +player if it draws in that pass ("clipped" wording). Check the partition +first. + +--- + +## #119 — Old tower: stairs partially invisible + extraneous water barrel; two meshes permanently invisible at startup + +**Status:** OPEN +**Severity:** MEDIUM (pre-existing — "same issue as before" per the user) +**Filed:** 2026-06-11 (T5 comprehensive gate, user items 9+13) +**Component:** render — mesh upload / content inclusion + +**Symptom (user):** the old tower has missing stair parts (pre-existing; +the tower stairs ARE visible in retail — user axiom recorded 2026-06-11 +in the render digest) and shows a water barrel that retail doesn't. + +**Lead (from the T5 launch log):** exactly two +`[up-null] upload returned null for 0x00010002B4 / 0x00010008A8 — caching +EMPTY render data (permanently invisible)` lines at startup. Identify +which models those are (likely GfxObjs 0x010002B4 / 0x010008A8 — plausibly +the stair parts) and why `ObjectMeshManager`'s upload returned null; the +"permanently invisible" cache makes any transient failure sticky. The +barrel is a separate static-inclusion question (which cell owns it, and +is it admitted by a view it shouldn't be). + +--- + +## #120 — [pv-ERROR] in-place propagation tripwire: convergence invariant broken at depth 128 (cottage interior cells) + +**Status:** OPEN +**Severity:** HIGH (self-detected invariant break in the new flood growth) +**Filed:** 2026-06-11 (T5 launch log; fired during normal cottage play) +**Component:** render — PortalVisibilityBuilder in-place growth (T2/BR-4) + +**Evidence:** `[pv-ERROR] in-place propagation tripwire at depth 128 on +cell=0xA9B40175 / 0xA9B40174 / 0xA9B40162 — convergence invariant broken, +investigate` (3+ firings in the T5 session, exactly the cottage interior +cells the user was walking). T2's in-place growth (which replaced the +`MaxReprocessPerCell=16` cap) re-propagated one cell's view 128 times +within a single build — a re-emission cycle the dedup misses, or growth +ping-ponging through a reciprocal portal pair. May be load-bearing for +#117/#118 (runaway view growth → wrong clip/punch volumes). Investigate +FIRST among the post-T5 set: loudest signal, cheapest repro (the tripwire +self-reports), and a correctness invariant of the new code. + +--- + # Recently closed ## #113 — Phantom staircase: REOPENED 2026-06-11, folded into the HOLISTIC BUILDING-RENDER PORT diff --git a/docs/plans/2026-06-11-building-render-port-plan.md b/docs/plans/2026-06-11-building-render-port-plan.md index 76c67746..f367e32a 100644 --- a/docs/plans/2026-06-11-building-render-port-plan.md +++ b/docs/plans/2026-06-11-building-render-port-plan.md @@ -14,9 +14,24 @@ designed (door apparatus + tick-13558 + tick-22760's blocking invariant); the 4th (BSPStepUp D4) + 22760's lateral-slide delta proved to be a SEPARATE pre-existing slide-response family — filed #116, D4 skipped with the reference (probes show the cell-set layer innocent). Suites: Core -1416/0/2skip, App 225, UI 420, Net 294. REMAINING: **T5 — the single -comprehensive visual gate with the user** (checklist in the render -digest's ledger), then roadmap/digest closeout.** +1416/0/2skip, App 225, UI 420, Net 294. + +**T5 EXECUTED 2026-06-11 (the single comprehensive user gate) — PARTIAL +PASS.** ✅ Confirmed by the user: doors block both ways incl. off-center +(#99 visual), cellar descent/ascent clean + #108 grass-sweep GONE, inn +2nd floor clean (#97 closed), interiors stable through doorways incl. +edge-on, #109 far-door oscillation GONE, formerly-popping stairs now +STABLE at all ranges (the distance-pop class is dead). ❌ Remaining — +four filed render artifacts: **#117** aperture-shaped see-through +(doors/interiors through terrain hills + through nearer buildings — the +punch erases occluder depth), **#118** character clipped+vanishes for a +moment on house exit, **#119** old-tower stairs partially invisible + +extraneous barrel (pre-existing; `[up-null]` permanently-invisible mesh +lead in the T5 log), **#120** `[pv-ERROR]` in-place-propagation +convergence tripwire at depth 128 on the cottage cells (self-detected +T2 invariant break — investigate first). Rain-indoors not verifiable +(clear weather). NEXT: fix #120 → #117 → #118 → #119 at the mechanism +level, then a focused re-gate on just those spots.** **Status: APPROVED + AMENDED (2026-06-11). EXECUTION DIRECTIVE CHANGED BY THE USER: "I don't care if it is non-playable… I want everything ported, then we