Two small follow-ons closing the GPU perf backlog:
- Viewport-end drift: typing grows the slice end while the declared
range's end stays put, and the daemon clips styling to the
declaration — long unbroken typing ate through the bottom overscan
and the deepest lines lost styling. Re-declare once the drift
exceeds half the overscan (in lines); origin moves keep their
immediate re-declaration.
- render() allocated fresh wgpu vertex buffers for the background /
caret / minimap quads every frame; they're now reused in place
(rewrite when the data fits, grow with power-of-two slack). The
minimap vertex bytes are cached by (summary generation, surface
size, scroll_top) instead of rescanning every line shape per frame.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>