#112 CLOSED: threshold tick-skip absorbing state fixed by the retail growing-walk port (user-gated 2026-06-12)

This commit is contained in:
Erik 2026-06-12 11:45:41 +02:00
parent be03146e30
commit 0664cba925

View file

@ -3767,13 +3767,33 @@ stable now; this is a draw-order/depth oscillation localized to the door surface
## #112 — A9B3 hill cottage: containment gap inside the house demotes to outdoor with no re-promotion (transparent interior while walking)
**Status:** OPEN — user re-confirmed at the 2026-06-11 re-gate: "that
hill house also sometimes when entering, all walls turn transparent.
Only that house." NOTE: the #120 reciprocal ping-pong fired at exactly
A9B3 `0103↔010F` during that session — the runaway duplicate views are a
plausible alternate mechanism for the transparent frames. Re-check this
symptom AFTER the #120 fix (`dede7e4`) before resuming the membership
investigation.
**Status:** CLOSED 2026-06-12 (`be03146`) — user gate "OK seems to work"
after run-speed in/out cycles; live capture shows threshold promotions +
room tracking + clean exits, zero errors.
**ROOT CAUSE (instrumented capture `cottage-112-capture1.log` + dat
replay):** the cottage's entry cell 0x104 is a 0.22 m-wide THRESHOLD
band; a running player crosses it between two physics ticks. Our
membership pick's outdoor-seed branch ran `CheckBuildingTransit` over a
landcell snapshot and STOPPED — building entry cells were never
expanded — so the tick after the skip (centre in deep room 0x100) found
no containing candidate and the pick kept the outdoor landcell
FOREVER (absorbing state): the render faithfully drew an outdoor frame
= transparent walls; promotion fired only on touching portal-adjacent
0x102's own volume. Retail's `CObjCell::find_cell_list` (0x0052b4e0)
runs ONE growing-array walk for EVERY seed (0052b576: vtable
`find_transit_cells` over the GROWING array) — recovery fires one tick
after any skip. Fix = the unified retail walk ported verbatim; pins in
`Issue112MembershipTests` (tick-skip recovery RED pre-fix; run-speed
phase-swept entry replay; gap over-fix guard; full promotion-chain
replay diagnostic). The earlier legs (escape-hatch removal `2d6954e`,
straddle gate `414c3de`) remain correct — they fixed the demote side;
this closes the promotion side.
(History below predates the close.) NOTE: the #120 reciprocal ping-pong
fired at exactly A9B3 `0103↔010F` during the 2026-06-11 session — the
runaway duplicate views were a plausible alternate mechanism for the
transparent frames; #120's fix (`dede7e4`) landed first.
**Severity:** MEDIUM-HIGH (any house with interior containment gaps; user-observed
"sometimes transparent" while walking around inside)
**Filed:** 2026-06-10 (late — user exploration after #111 closed)