Found by the #920 screenshot run (PR #961) on 2026-09-26, after #941 (PR #958) merged.
Observed
On the Dashboard's Lay rate card, the day strip's readout tooltip can stick out to the left of its reserved row. To reproduce:
- Focus a day in the strip.
- Hover the far-right day.
- Move the pointer away.
The tooltip returns to its full width (about 152px) but keeps the position calculated for its earlier, narrower width (about 86px), so it protrudes left of the row. The reserved readout row itself keeps its height (35.19px); only the tooltip's horizontal placement is stale.
The screenshot spec tools/simulation/ui/specs-screenshots/screenshots.spec.ts catches it as a post-capture assertion failure ("readout shifts from 76px to 43px after hover returns to the focused day"). The README images themselves are unaffected.
Likely cause
The readout's position is computed from its width at one moment and not recomputed when its content or width changes back (focus → hover → leave).
Done when
- The readout stays within its row after any sequence of focus, hover and pointer-leave, on the card and in the expanded view, at 1280 and 390, in en/es/tl.
- A browser geometry test covers the sequence above and fails on the current code first.
- The screenshot spec's post-capture assertion passes.
Found by the #920 screenshot run (PR #961) on 2026-09-26, after #941 (PR #958) merged.
Observed
On the Dashboard's Lay rate card, the day strip's readout tooltip can stick out to the left of its reserved row. To reproduce:
The tooltip returns to its full width (about 152px) but keeps the position calculated for its earlier, narrower width (about 86px), so it protrudes left of the row. The reserved readout row itself keeps its height (35.19px); only the tooltip's horizontal placement is stale.
The screenshot spec
tools/simulation/ui/specs-screenshots/screenshots.spec.tscatches it as a post-capture assertion failure ("readout shifts from 76px to 43px after hover returns to the focused day"). The README images themselves are unaffected.Likely cause
The readout's position is computed from its width at one moment and not recomputed when its content or width changes back (focus → hover → leave).
Done when