Fix terminal resize handling and cached updates
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled

This commit is contained in:
Codex
2026-06-11 10:18:09 -04:00
parent 66c4c97c9d
commit 8ffbb07bfa
3 changed files with 104 additions and 10 deletions
+12
View File
@@ -258,6 +258,10 @@ async fn handle_bootstrap_attach(
.sessions
.get_mut(&req.bootstrap.session)
.expect("session exists");
if req.bootstrap.mode != "view-only" {
session.pty.resize(req.cols, req.rows)?;
session.parser.set_size(req.rows, req.cols);
}
let client_id = crypto::random_16();
let snapshot = session.parser.screen().state_formatted();
let screen = session.parser.screen().clone();
@@ -362,6 +366,10 @@ async fn handle_ticket_attach(
.sessions
.get_mut(&req.session)
.expect("session exists");
if req.mode != "view-only" {
session.pty.resize(req.cols, req.rows)?;
session.parser.set_size(req.rows, req.cols);
}
let client_id = crypto::random_16();
let snapshot = session.parser.screen().state_formatted();
let screen = session.parser.screen().clone();
@@ -456,6 +464,10 @@ async fn handle_resume(
client.rows = req.rows;
client.last_seen = Instant::now();
client.send_seq += 1;
if client.mode != "view-only" {
session.pty.resize(req.cols, req.rows)?;
session.parser.set_size(req.rows, req.cols);
}
let snapshot = session.parser.screen().state_formatted();
client.last_screen = Some(session.parser.screen().clone());
(client.send_seq, session.output_seq, snapshot)