diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-27 18:07:06 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | 6f7beca8d27e2e00f7b90bb75015637a9aa4c950 (patch) | |
| tree | 823e143a5e29aca8049c905213e40520f3354383 /src/Pipe.zig | |
| parent | f4412d6dfdb1e2bd8549a7edba785ee242fd38f2 (diff) | |
| download | pardes-6f7beca8d27e2e00f7b90bb75015637a9aa4c950.tar.gz pardes-6f7beca8d27e2e00f7b90bb75015637a9aa4c950.zip | |
Run a line at a terminal's prompt through pty/run and read how it ended
/pane/<n>/pty/run takes factotum's rpc shape: write one line on an open,
read the answer on that same open. The answer is exit N once the command
ended and the shell is back at a prompt; busy at once when a command runs,
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 (fish on
a syntax error keeps it on the prompt, so it is taken back with Ctrl-U);
error shell gone when the pane closes or its shell is replaced; error no
prompt marks for a shell pardes could not instrument.
The end comes from the shell's OSC 133 marks. ghostty parses D's exit
status and drops it, so the stream now runs through a handler that wraps
ghostty's and follows prompt -> input -> running -> done. The marks pardes
injects into bash and fish carry aid=pardes and only those count, so fish
4's own marks (which doubled ours), a nested shell's, and a stray 133;D in
printed output are ignored.
Checked end to end against real bash and fish: false, exit 7, a syntax
error, sleep, busy while running, and the pane closing mid-command.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/Pipe.zig')
0 files changed, 0 insertions, 0 deletions
