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 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-10 15:04:25 +02:00
parent 2d6954ee44
commit 6509a28926

View file

@ -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].
---