summaryrefslogtreecommitdiff
path: root/docs/fs.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 20:51:06 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commit015152bb7e28a26d135fc4bc67b09a5f53d5080b (patch)
treed5ed31d3a0dee08e07c54f045f2fd0c13e2e4d8c /docs/fs.md
parent78ee8672307adbdf30a2afffc38efb70217dc212 (diff)
downloadpardes-015152bb7e28a26d135fc4bc67b09a5f53d5080b.tar.gz
pardes-015152bb7e28a26d135fc4bc67b09a5f53d5080b.zip
A shell that exits under a run answers exit N, and the log says exit before del
A dogfood agent ran `exit 3` through pty/run: the reader got ENOENT, and the log went straight to del. The hosts now read a shell's exit status at its pty's end as they do a command's; a run waiting on the line answers `exit 3` with what it printed, the log says `exit <serial> 3` before the pane's `del`, and an open run still stats after its pane is gone (cat fstats its input). Pins cloud9 f35b7ed, whose stat of an open fid names its open. Writes to a gone pane's pty/data, held open or not, fail ENOENT. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs/fs.md')
-rw-r--r--docs/fs.md11
1 files changed, 8 insertions, 3 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 29f15571..3800e8cb 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -489,7 +489,9 @@ an open renders its frame; stat the entry.
`/log` is one ring (64 KiB) that records whether or not anyone reads it:
`new`, `del`, `rename` (a terminal's too, as its shell changes directory,
-since a terminal is named by its directory) and `save <serial> <name>`,
+since a terminal is named by its directory), `exit <serial> <N>` before
+the `del` of a terminal whose shell exited by itself, and `save <serial>
+<name>`,
`dump <path>` when a Dump is written and `restore <path>` in a Restore's
new log after its panes' `new`s, and `msg <serial|-> <text>`
for every line the editor says, repeats included (with `verbose` on, that
@@ -576,8 +578,11 @@ could not instrument, or a startup that hangs) leaves such a line waiting
for ever: cancel the read (interrupt it, or close the open) to give up;
`error not run` when the shell refused
the line without running it (a fish syntax error; the line is taken back off
-the prompt); `error shell gone` when the pane closed or its shell was
-replaced; `error no prompt marks` for a shell pardes could not instrument;
+the prompt); `exit N` and what it printed when the line ended the shell
+itself (`exit 3`, or `echo bye; exit 3`): its terminal closes, and a read
+of the run's open still answers after the pane is gone; `error shell gone`
+when the pane closed or its shell was replaced, or the shell went without
+an exit status to tell; `error no prompt marks` for a shell pardes could not instrument;
`error command done; not a shell` (or `error a command runs here, not a
shell`) on a command pane, whose child is its command.
It relies on the OSC 133 marks pardes injects into bash and fish, tagged