From 7f31e62b63a64cef3916aac21417b7b1414000aa Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sun, 27 Sep 2026 19:37:05 -0300 Subject: pty/run answers with the command's output; pin cloud9 with 9ns concurrency and E.BUSY The answer is now the header line (exit N, or exit N cut M when only the last 64 KiB were kept, or exit N cut when its start scrolled out of the history), then what the command printed: the screen text between its C and D marks, which the marks handler pins so scrolling keeps them. Also from review: a plain /log open honours its offset until follow is written, so tail -n and less work; whitespace-only run lines are refused. cloud9 is pinned at 82d8152c: 9ns keeps up to 32 requests in flight per mount so a waiting read no longer freezes the rest of it, and E.BUSY replaces the errno pardes spelled locally. Co-Authored-By: Claude Opus 5.5 --- docs/fs.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/fs.md b/docs/fs.md index d46e3d21..90849a58 100644 --- a/docs/fs.md +++ b/docs/fs.md @@ -198,7 +198,14 @@ Closing the open is the only way back, as with rio's `consctl`. `pty/run` runs one line at a terminal's prompt and answers how it ended, on the same open (factotum's `rpc` shape): write the line, then read `exit N` -once the command has ended and the shell is back at a prompt. It reads +once the command has ended and the shell is back at a prompt, followed by +what it printed. The output is what the screen showed between the command's +start and end marks: stderr interleaved, `\r` progress collapsed to its last +state, no colour; a full-screen program (vim, less) leaves none, and rows a +program redrew above its start are missed. Only its last 64 KiB are kept, +from a line start, and the header then reads `exit N cut M` (M bytes left +out), or `exit N cut` when its start scrolled out of the history. The header +is always the whole first line. It reads `busy` at once when a command is running, text is typed at the prompt or the shell has not drawn its first prompt; `error not run` when the shell refused the line without running it (a fish syntax error; the line is taken back off -- cgit v1.3