Tried this on current main (9e85538535); nothing in this resize path has changed since v0.1.7. It did not reproduce, so we need a bit more to narrow it down.
What I ran, web client against a dev server, right-panel terminal, bash:
- Your steps: a spinner redrawing one line every 100 ms, the divider dragged narrower mid-run (67 → 44 cols), then your
stty sizecheck. Result:41 44, the====|line ended at the edge, and the spinner redrew in place. - Same setup, but the WebSocket was closed at the moment the resize request went out, to simulate a lost resize. The client resent the size about 3 s after reconnecting. Result:
41 68, matching the panel. - A 10 ms spinner with three quick drags in both directions. Result:
41 83, matching the panel.
The surface does resend its size after a reconnect, so a single dropped request does not leave the PTY stale on its own. Your 51 110 while the panel showed about 86 columns means the server kept a size that a later resize did not replace. Three things would help us tell which path that was:
- Was any other client connected to that desktop app at the time with the same terminal open, such as app.t3.codes, a browser on the local network, or the mobile app? Even one in a background tab counts. The server sizes a shared terminal to its smallest attached viewer.
- Had the desktop app just woken from sleep or shown a reconnecting state shortly before the drag?
- The server log from around 22:20–22:30 on Nov 4, in
~/.t3/userdata/logs, especially any lines mentioningterminal.resizeorTerminalResizeError.