v1.5.1
1.5.1
Fixed
-
No more stray characters on the terminal after a session detaches. Two
separate leaks were writing to the local terminal once a session was already
gone. (1) Theconnectclient never cancelled its remote stdout/stderr
listeners on detach, so bytes still buffered in the channel were flushed
afterwards — at an idle prompt the line editor repainted around them, smearing
erase/prompt escape sequences onto the detached terminal. The listeners are now
guarded against the detached state and cancelled on teardown. (2) When a session
was detached from another window mid full-screen program, the terminal reset
undid the alternate screen, cursor and color attributes but not mouse
reporting, so every later mouse move spewed SGR mouse reports (ESC[<…M) onto
the terminal. The detach reset now also disables every mouse-tracking mode
(1000/1002/1003 and the 1005/1006/1015 encodings) and bracketed paste (2004). -
Interactive sessions no longer freeze on heavy output. The
connect
client consumed remote stdout/stderr without ever replenishing the channel's
send window, so after a cumulative 256 KiB the node's flow-control credit
drained and all further output stalled — the session appeared frozen. This
surfaced most often with full-screen TUIs that repaint the whole screen on
every scroll (e.g.claude's plan view,vim,less,htop), which exhaust
the window within a handful of redraws. The client now grants window credit for
every chunk it consumes. The node grants stdin credit symmetrically, so a large
paste into a full-screen program can't stall input either.