From 047a2b50a7ac0162d7ef38f912d41c15a47479c7 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 28 Sep 2026 13:00:06 -0300 Subject: A line written to a pane's own look or exec goes to the event reader holding the pane A script writing to pane/N/exec bypassed the client holding that pane's event file, which a middle click on it would not: acme sends a window's clicks to its event reader (look.c:53, exec.c:173). Such a line is now an F record at 0 0 carrying its text; the root's look and exec still act at once. acme takes back only origin, action and range, which a record with no place in the text cannot use, so the whole record as read is taken too, and for an empty range acts on its text. Co-Authored-By: Claude Opus 5.5 --- .agents/skills/pardes-9p/SKILL.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to '.agents') diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md index 5e3bc39c..c9efec0b 100644 --- a/.agents/skills/pardes-9p/SKILL.md +++ b/.agents/skills/pardes-9p/SKILL.md @@ -210,11 +210,12 @@ For live terminal output or plugin events, use `open` / `read_fid` / `close`, not the read-until-EOF helper. `pty/data` captures output while held open; it is not a history replay. Both files are shared, consuming queues, not per-client broadcasts, so a slow reader loses older data. Holding `event` open -intercepts that pane's Look and Exec clicks, so it is not a passive logger: for -Look/Exec records whose offsets identify the intended text, forward the short -record ` \n`, not the whole report with flags and text. -Expansion and chord reports need explicit handling, and terminal-body events -can carry text only in the report, which a short writeback cannot reproduce. +intercepts that pane's Look and Exec clicks -- and lines written to that pane's +own `look`/`exec`, as `F` records at `0 0` with the text -- so it is not a +passive logger. To have a record done, write it back: the short form +` \n` acts on that range's text, and the whole record +as read acts on its text when the range is empty (the only way for a record +at `0 0`). Chord reports need explicit handling. Read the event implementation before building an interceptor. Close handles in `finally`, and disconnect after a socket timeout. The service shares four connection slots and 32 screen/terminal-history snapshot handles. -- cgit v1.3