mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-01 20:29:00 +00:00
Since #713 every raised device tile and lock badge is its floor anchor lifted by one shared wall-top rise and room names stay on the floor, so the live scene no longer called the #651 search. What was left of it only cost code, build time and review attention: - src/iso-overlays.ts: resolveIsoOverlayRigidGroups, resolveIsoOverlayCollisions with their boundary-candidate machinery, the nudge search in resolveIsoOverlayPlacement (the vector to the room safe point, the near-wall test, the zoom hint), the safe point itself, the nudge/nearWall/cleared/capped and status/reason fields, and ISO_OVERLAY_MAX_NUDGE_CSS_PX / ISO_OVERLAY_SAFETY_GAP_CSS_PX. - src/iso-scene-render.ts: the zoom reuse fast path and the CSS-pixel scale it compared; a placement now depends only on anchor, owner, footprint and rise, so zoom and stage resize reuse it by signature. residualPairs is gone and the memo key is called layoutSignature. - src/houseplan-card.ts: the overlay scene no longer receives the view, the reference view or the stage rect it only fed to that scale; data-hp-iso-nudged stays as the constant "false" that the golden requireOneRise preflight, the live-touch smoke and the Stage 4 benchmark read. The #585/#651 unit tests and the seven mutants that guarded only the removed code are deleted; kept tests drop their nudge assertions, and a stage resize is now pinned as a non-layout event. docs/ISOMETRIC.md keeps #651 as history only. Live 2.5D output is unchanged: the 21 isometric golden scenes pass on the accepted baselines. Issue: #714 User-Visible: no Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd