fix(web): move the grid origin only together with a full repaint

The bottom-anchored origin was recomputed from the live mount height at
render time, but an animation-frame render can run before the same
frame's ResizeObserver fit. A partial dirty-row redraw could therefore
composite rows at a shifted origin over rows painted at the previous
one, leaving interleaved stale fragments — visible when shell history
recall rewrote wrapped prompt lines during or after a resize. The
origin is now cached and only updated inside fit(), where any change
forces the full repaint that keeps every consumer consistent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
e6109923edWout Stiens committed on 7/31/2026, 10:47:38 AMparent7997cd1
1 file changedLine totals unavailable