fix: send stty resize on every resize, not just first time
The _stty_sent guard prevented the container shell from updating its terminal size after the first resize. This caused visual mismatches where xterm.js displayed at the new size but the shell still wrapped output at the old size. Remove the guard so stty is sent on every resize event.
This commit is contained in:
@@ -154,12 +154,10 @@ class TerminalSession:
|
||||
|
||||
# Docker exec doesn't forward PTY resize to the container process,
|
||||
# so we need to explicitly set the size inside the container shell.
|
||||
# Only do this on the first resize to avoid interfering with user input.
|
||||
if not getattr(self, '_stty_sent', False):
|
||||
self._stty_sent = True
|
||||
stty_cmd = f"stty cols {cols} rows {rows}\n".encode()
|
||||
await self.write_input(stty_cmd)
|
||||
logger.info(f"Sent stty command to container for session {self.session_id}: {cols}x{rows}")
|
||||
# Send on every resize so the container shell always matches the frontend.
|
||||
stty_cmd = f"stty cols {cols} rows {rows}\n".encode()
|
||||
await self.write_input(stty_cmd)
|
||||
logger.debug(f"Sent stty resize to container for session {self.session_id}: {cols}x{rows}")
|
||||
|
||||
async def reset(self) -> None:
|
||||
"""Reset the session by killing the process and clearing state."""
|
||||
|
||||
Reference in New Issue
Block a user