From 542dd489149e33915d19878a277e23b3a9c0b070 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sun, 27 Sep 2026 17:41:55 -0300 Subject: Record /log whether or not anyone reads it, with the editor's messages in it /log is now one ring (64 KiB, 4 KiB on the board) that records new, del, rename and save, and a msg line for everything the editor says. An open freezes it, so cat log shows what happened lately and ends; writing follow to that same open makes reads past it wait for newer records, and a follower the ring outran reads lost N first. The message log keeps the pane's serial, not its reusable slot. A test now fails when the tree serves a file /README never mentions; it caught pty/status, now documented along with typing through pty/data. Co-Authored-By: Claude Opus 5.5 --- test/fs.py | 24 +++++++++++++++++------- test/panes.zig | 1 + 2 files changed, 18 insertions(+), 7 deletions(-) (limited to 'test') diff --git a/test/fs.py b/test/fs.py index 33bcdfa9..48104e3f 100644 --- a/test/fs.py +++ b/test/fs.py @@ -185,7 +185,11 @@ def discovery(binary, embedded=False): # An open of /pane/new makes a pane and the read names it; each # open makes another. A stat makes none, which is why new can be # listed at all: ls -l stats every name a listing gave it. - log = client.open('/log') + # /log answers the recent past and ends; `follow` written to the + # same open makes its reads past that wait for new records. + log = client.open('/log', 2) + frozen = len(client.read_fid(log)) + client.rpc(118, struct.pack('