- draw(): a zero-width non-combining char (VS16, ZWJ) or a stray control
byte dropped the rest of the run; skip the char instead
- quantize_256: grey 248 mapped to slot 256 and aborted the SGR
- trim_history: the cap now counts rows above the screen, so a value
below the screen height (0: no scrollback) no longer cuts the screen
- "No theme" sampled the focused terminal's own colours; sample a
non-terminal view instead
- vterm.sublime-settings: Apple Terminal is the default again, kitty
commented out, as the README says
Sublime recreates every TextCommand instance whenever any plugin loads,
which dropped colored_lines and restarted the region key counter: old
overlays were never erased and keys were reused. RenderState now lives on
terminal.render_state, which survives reloads.
The renderer pinned a viewport dragged into sublime's past-end room. With
scroll_past_end off there is no such room: sublime clamps to bottom_y, so the
trigger can only fire against a stale anchor, which following() already
resolves on the next frame.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>