From c1990b3e6e196ad41379aa432bf3ccca8a65d9f0 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sun, 20 Sep 2026 00:36:50 -0300 Subject: Flatten the 9P control tree and move it out of fs.zig The served tree loses the self/ level: /index /ctl /new /log /screen /listeners /pane//... /os, with /src only in -Dembed-sources=true builds (default off, on for esp32p4). ctl speaks the editor's own language with two lowercase verbs, look TEXT and exec TEXT, plus acme's addr verbs; the new/ factory directory becomes one clone file; cons is gone (exec Msg); name and sel are files; stats report real lengths, modes and mtimes; /log streams pane new/del/rename/save events. The tree code lives in src/ninep/ (tree, pane, ctl, addr, pty, events, screen, sources); fs.zig keeps host access, mounts, resolution and find/grep. Same engine and transports. README (fs-help.txt) and docs rewritten; tests updated and extended. Co-Authored-By: Claude Fable 5.1 --- docs/v9fs.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'docs/v9fs.md') diff --git a/docs/v9fs.md b/docs/v9fs.md index 51b35a46..6cb4e998 100644 --- a/docs/v9fs.md +++ b/docs/v9fs.md @@ -8,11 +8,11 @@ your configured shell as your normal user, with your account's supplementary groups. The shell receives `PARDES_MOUNT`, the absolute mountpoint: ```sh -ls "$PARDES_MOUNT/self/pane" -cat "$PARDES_MOUNT/self/index" -cat "$PARDES_MOUNT/self/README" -ls -l "$PARDES_MOUNT/self/new" -cat "$PARDES_MOUNT/self/pane/$PARDES_PANE/body" +ls "$PARDES_MOUNT/pane" +cat "$PARDES_MOUNT/index" +cat "$PARDES_MOUNT/README" +cat "$PARDES_MOUNT/pane/$PARDES_PANE/body" +echo 'exec Msg hello' > "$PARDES_MOUNT/ctl" ``` The mount belongs to that pane's subprocess tree. Other panes and the editor @@ -96,7 +96,7 @@ unprivileged and uses `sudo -n`, retaining the calling terminal's authorization. Missing authorization or kernel support fails the test instead of skipping it. It checks mount isolation, privilege dropping, inherited access, directory refresh, body reads and truncation, independent wire updates, addressed edits, -shell redirection to ctl, Exec dispatch, rendered screen JSON, and OS-file reads. +shell redirection to name, Exec dispatch, rendered screen JSON, and OS-file reads. Linux follows `O_TRUNC` with a `Twstat` carrying zero length and an `mtime` hint. Pardes accepts this truncation without storing caller-selected timestamps; -- cgit v1.3