6.4 KiB
6.4 KiB
Night-session handoff (2026-06-12): nine closes shipped; NEXT = #108-residual
Branch state: claude/thirsty-goldberg-51bb9b, pushed to BOTH remotes at
49cffe6. Suites green at every commit: App 261+1skip / Core 1439+2skips /
UI 420 / Net 294. CLAUDE.md "Current state" + the render digest
(claude-memory/project_render_pipeline_digest.md) are refreshed to this
truth — orient there first.
1. What this session closed (all user-gated; do NOT re-litigate)
| Closed | Root cause | Commits |
|---|---|---|
| #130 doorway top-edge strip | TWO stacked causes: scissor box Floor(origin)+Ceiling(size) under-covers top/right (sub-pixel, NdcScissorRect); THE strip = the +0.02 m shell draw-lift missing from draw-space portal consumers post-f35cb8b (6.7 px @2.4 m, measured) |
6c4b6d6, 5135066 (AP-32 row added) |
| #129 doors leak through terrain at ~a landblock | constant 0.0005 NDC punch bias spans ~190 m of eye depth at distance; capped to 0.5 m eye-space (MarkBiasNdc) |
4ba7148 (AD-18 updated) |
| #113 hill-cottage phantom stairs | dead via 2163308 (cache cross-serving) — re-gate confirmed |
— |
| #124 far-building back walls through openings | interior-root look-ins ported as a LANDSCAPE-STAGE sub-pass (decomp: LScape::draw runs FIRST in DrawCells' outside branch, pc:432719, pre-clear/pre-seal; seeds clip vs the INSTALLED view → BuildFromExterior(seedRegion:); punch-all-then-draw). NEVER merge look-ins into the main frame (post-clear seal z-kill) |
77cef4c (AP-33 added) |
| #132 candle flame vs through-opening background | slice particles drew BEFORE the look-ins / merged interiors (no depth self-protection) — the FlushAlphaList deferral ported as the two-phase slice split + outdoor post-frame attached pass | 20d1730, 87afbc0 (AP-34 added) |
| #131 portal swirl missing through doorways | FOUR layers (see lesson below); final: the portal is a SERVER object inside the hall's PORCH cell (look-in cell) → partition.Dynamics → dynamics-last culls it (no look-in cells in the main cone) + post-seal z-fail. Fix: DrawBuildingLookIns draws look-in-cell dynamics + emitters (retail nested DrawCells/DrawObjCellForDummies) |
1d3f9a8, 47f32cd, d208002 |
| UN-2 GetMaxSpeed ×4 contradiction | the implementation was retail-correct; BN pseudo-C drops x87 fmuls — byte-verified (3× fmul [0x7C8918]=4.0f); doc rewritten, weenie-null default aligned to literal 1.0; row deleted |
0cb97aa (verifier tools/verify_un2_fmul.py) |
2. THE #131 LESSON (cost: 4 fix iterations)
Identify the ENTITY before theorizing about draw passes. Three real-but-adjacent fixes shipped before the elimination chain (teleport pCell flip → owner cell; headless replay → flood admits it; partition routing → exactly one possible drop site) forced the answer. Two tools that would have shortened it to one iteration:
- The pick line: left-click prints
[B.4b] pick guid=… name=…+[B.7] pick-info … setup=…— names any clickable object in the log. - The teleport/pCell flip: walking onto/into a thing prints its cell. Both need zero new code. The register also already KNEW the answer (AP-33's "look-in DYNAMICS are not drawn — deferred") — scan-the-register-on-symptom applies to rows YOU wrote hours earlier.
3. NEXT (the queue to the M1.5 → M2 boundary)
- #108-residual — cellar-ascent grass window (NEXT, desk-first). Climbing out of a cellar, grass covers the exit door until the eye pops above grade. Punch/seal exonerated; it is MEMBERSHIP/VIEWER-side (which cell the camera resolves while the eye is below grade). Apparatus designed: a VERTICAL exit-walk-harness variant (HouseExitWalkReplayTests machinery driving the camera up cellar stairs, watching viewer-cell resolution per step). Read the physics digest + ISSUES #108 before starting. User needed only for the final cellar gate.
- #127 — distant-building admission churn (flood size oscillates ±1–3 cells at mm eye deltas; suspect list includes the PortalBounds frustum pre-gate — machinery #124 now reuses for interior roots).
- #116 — slide-response family (physics, oracle-first: one cdb session).
- #125 sticky-drop debt — failed texture uploads never retried (session-sticky invisible meshes); robustness, no visual gate.
4. Apparatus added this session (all env-gated, kept)
| Tool | How | For |
|---|---|---|
[outstage]/[outstage-pt]/[outstage-own] |
ACDREAM_PROBE_OUTSTAGE=1 (+ACDREAM_DUMP_ENTITY=<ids> doubles as the owner watchlist) |
outside-stage dynamics routing/cone verdicts; scene-particle owner matching |
Issue130DoorwayStripTests |
App.Tests | aperture-vs-gate top-edge gap in DRAWN (lifted) space; the lift-seam sensitivity pin |
NdcScissorRectTests / Issue129PunchBiasTests |
App.Tests | scissor containment; punch-bias eye-span cap |
Issue124LookInSeedRegionTests |
App.Tests | seedRegion semantics at the real corner-building door |
Issue131SetupProbeTests |
App.Tests | dat setup dumps + the porch-admission replay of a captured frame |
tools/verify_un2_fmul.py |
py |
re-derive the GetMaxSpeed ×4.0 byte proof |
5. Paste-ready pickup prompt
Pick up acdream as a SENIOR 3D ENGINE DEVELOPER on #108-residual (the
cellar-ascent grass window). Branch claude/thirsty-goldberg-51bb9b ==
pushed both remotes at 49cffe6. Read FIRST: CLAUDE.md "Current state",
docs/research/2026-06-12-night-session-handoff-108-residual-next.md (THE
handoff), then BOTH digests (render + physics; DO-NOT-RETRY tables apply).
WORK ORDER:
1. #108-residual — eye-below-grade membership at cellar exits. Build the
VERTICAL exit-walk harness variant (HouseExitWalkReplayTests machinery,
a cellar staircase fixture), watch viewer-cell resolution per step while
the eye is below terrain grade; pin where the resolver demotes to
outdoor/terrain. Punch/seal are exonerated — do NOT touch them.
2. Then #127 (admission churn; PortalBounds pre-gate suspect), #116
(slide-response, oracle-first cdb), #125 sticky-drop debt.
Closing this list ≈ the M1.5 → M2 boundary (M2 = kill a drudge).
The user's reports are AXIOMS. Visual gates are the acceptance tests.
Suites green per commit: App 261+1skip / Core 1439+2skip / UI 420 /
Net 294. Register discipline: new deviation = same-commit row. For any
object-specific render bug: IDENTIFY THE ENTITY FIRST (the pick line
[B.4b] names clicked objects; pCell flips name cells) — the #131 lesson.