1.0.29
Fixes the terminal periodically freezing — refusing keystrokes and arrow keys for a stretch — when another plugin polls the workspace.
getState() re-serialized the full 1000-line scrollback buffer on every call, synchronously, on the same thread xterm.js needs to accept a keystroke and repaint. The snapshot is now memoized behind a dirty flag and a 2s TTL, so an idle terminal reuses it for free and a busy one is bounded to one serialization per TTL no matter how many callers ask. Closing a terminal still captures its true final buffer, so "Rescue closed terminal" is unaffected.