From 6509a2892671e376c28e9b101fbdfba1e4a572e2 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 10 Jun 2026 15:04:25 +0200 Subject: [PATCH] docs: #112 primary fix shipped - hatch removed, lateral recovery in; residual = at-doorway demote via outdoor candidates (oracle read pending) Co-Authored-By: Claude Fable 5 --- docs/ISSUES.md | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/docs/ISSUES.md b/docs/ISSUES.md index b015bbca..b5cb17fc 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -3737,16 +3737,31 @@ sweep gated while indoor-classified; A6.P4 debt), filed here as a data point onl crossings, so the player stays outdoor (→ outdoor flood → transparent interior) until they happen to re-cross the doorway portal. -**Fix direction:** read the retail oracle for the outdoor pick's building handling — -`CLandCell::find_transit_cells` / `CBuildingObj` building-cell checks -(`acclient_2013_pseudo_c.txt`; the CheckBuildingTransit port covered the portal -path #85, but retail likely also tests interior-cell containment for an outdoor -object standing inside a building's footprint). A containment-based promotion in -`ResolveCellId`'s outdoor branch (test the landcell's building's interior cells for -foot-sphere containment) would both heal the gap exit and harden every house. -Scan data: standing-now → [0x103], pick(seed 0x100)=0x103 / pick(seed 0x3C)=0x3C; -flip-a → []; flip-b → [0x100]. Cross-check #90 (sphere-overlap stickiness, -`4ca3596`) and the A6.P4 per-cell shadow architecture — same family. +**PRIMARY FIX SHIPPED 2026-06-10 late (`2d6954e`) — residual remains, live gate +pending.** Oracle reads settled the mechanism: retail keeps curr_cell on a +null pick result (pc:308788-308825); `CLandCell::point_in_cell` is terrain-poly +only (:316941); building promotion = `sphere_intersects_cell` per portal-adjacent +cell (:309827) — all retail-matched in our port EXCEPT the `6dbbf95` escape +hatch, a non-retail demoter that converted the cottage's interior containment +gap into an outdoor stranding. Fix: hatch removed; per-tick pick now does +lateral stab-graph recovery (retail find_visible_child_cell :311444 — the #111 +adjacent-claim shape self-heals, dat-tested) then retail keep-curr. Poisoned +saves stay covered at the snap (#107/#111 AdjustPosition). P1 retail-golden +gates explicitly green (11/11). + +**RESIDUAL (documented by +`Issue112MembershipTests.A9B3CottageGap_..._DocumentsResidual`):** at the +doorway-region gap itself, the NORMAL outdoor-candidate path still demotes +(the BFS reaches the exterior portal → outdoor cells enter the array). Open +oracle read: retail's `add_all_outside_cells` gate in +`CEnvCell::find_transit_cells` (pc:317499 region) — sphere-proximity to the +exterior portal polygon vs mere graph reachability. If proximity-gated, the +at-door demote disappears and the DocumentsResidual assert flips to keep-curr. +Re-promotion at doorway cells works (retail-identical), so the demote now +self-heals walking in — no stranding. Live gate pending: user re-walks the +A9B3 cottage; expect interior to stay rendered (brief doorway flicker at most). +The missing OBJECT collision in that cottage = #99 data point (A6.P4 debt). +Scan data: standing-now → [0x103]; flip-a → []; flip-b → [0x100]. ---