From b03338789f5c9f3619a1ace7fcda842bc073c4dc Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 28 Sep 2026 10:38:30 -0300 Subject: pty/run on a fresh terminal waits for the shell's first prompt instead of answering busy A new terminal's shell takes tens of milliseconds to draw its first prompt, and a run written meanwhile answered busy, so a script's first command was lost, while pty/status said busy 0. A line written before the first prompt now waits for it and is sent then (a respawn in between keeps it waiting for the new shell), and pty/status's third field says what a run would be told: busy while a command runs or text is typed at the prompt, not before the first prompt. Co-Authored-By: Claude Opus 5.5 --- src/ninep/tree.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/ninep/tree.zig') diff --git a/src/ninep/tree.zig b/src/ninep/tree.zig index 3ce7e758..a83b0193 100644 --- a/src/ninep/tree.zig +++ b/src/ninep/tree.zig @@ -139,7 +139,10 @@ pub const Open = struct { switch (o.what) { .snapshot => |bytes| if (bytes) |b| gpa.free(b), .log => |log| gpa.free(log.bytes), - .run => |run| gpa.free(run.output), + .run => |run| { + gpa.free(run.output); + gpa.free(run.line); + }, .event, .pty_data, .ctl => {}, } o.* = .{}; -- cgit v1.3