From da920ca49e3f5d1649e811bbdc3ddba482c6aae4 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 07:33:14 -0300 Subject: The docs: a log stat is the whole ring, changed's three forms, terminal +Search rows' column range, /commands in the skill, read -t through FUSE Dogfood round 17 found these false or missing: the skill said a stat of log was one record's length; fs.md's changed covered only unsaved edits; a terminal's +Search row is `@p::`, not a line alone; the skill's /commands line predated `both`, setting values and the description; bash's `read -t` never times out on a followed file through FUSE. Co-Authored-By: Claude Opus 5.5 --- .agents/skills/pardes-9p/SKILL.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to '.agents') diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md index 1bb825fe..7f33937f 100644 --- a/.agents/skills/pardes-9p/SKILL.md +++ b/.agents/skills/pardes-9p/SKILL.md @@ -65,11 +65,13 @@ $m/pane//pty/run write one line, read `exit N` + its output, or `busy` / `e $m/log recent events, then EOF: new|del|rename|save , msg , run , exit , send , ask , answer , changed - [reloaded|deleted], newcol|delcol , restored|restoredcol , + [reloaded|deleted] (under unsaved edits; a clean reload; gone from disk), + unsaved (each pane a refusal is about), newcol|delcol , restored|restoredcol , dump|restore , err : (exec 3<>$m/log; echo follow >&3; cat <&3 replays what is there, then waits for new ones; `echo follow new` waits for new ones only; tail -f does not wait; - while read -r line <&3; do ...; done loses nothing within a session: a Restore + while read -r line <&3; do ...; done loses nothing within a session (through + FUSE, `read -t` never times out: use `timeout N` around the loop): a Restore hangs every connection up, so dial again, and restart a 9ns mount) $m/screen the rendered screen as JSON, frozen per open $m/listeners this session's dial addresses @@ -90,7 +92,8 @@ $m/ctl the settings, one a line as a write takes them; write a setting or on its right, its panes going below that column's own, in order, and needs such a column); a pane's builtins (Del, Save f, Collapse, which folds that pane, and the column word Delcol, which closes that pane's column) go to $m/pane//ctl -$m/commands every builtin: `Word`, `Word arg`, then `root` or `pane` (which ctl takes it) +$m/commands every builtin: `Word`, `Word arg`, then `root`, `pane` or `both` (which ctl takes + it), a setting's values comma-joined, then ` -- ` and one sentence of what it does $m/layout one line per column (16 columns at most: Newcol past that fails, no space for a column): serial index x width current|notcurrent empty|full pane-serials...; active $m/tag the workspace tag (> replaces, >> appends, one line); $m/col//tag a column's (serials stay, as panes' do) $m/tagexec a word as a click in the workspace tag (pane//tagexec: in that pane's tag); every exec @@ -384,8 +387,9 @@ and 32 screen/terminal-history snapshot handles. A file's qid version is the pane's revision for `body`, `data` and `xdata`, so `stat` sees an edit land without reading the text; it stays zero elsewhere. -Stat sizes are real, and for `log`, `event` and `pty/data` report the length of -the record a read would answer — zero when nothing is waiting. +Stat sizes are real: for `event` and `pty/data` the length of the record a read +would answer (zero when nothing is waiting), for `log` the whole ring, the text +an open would freeze now. ## Terminal input and screen observations -- cgit v1.3