From 2a71bff5f06ba3e785a5eb96a8377e2cab8e2cdd Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 28 Sep 2026 10:55:10 -0300 Subject: A refused or failed write is an err record in the log, naming the file and the reason Through a mount every refusal reads as Invalid argument, so a shell user could not tell a missing regexp match from a bad ctl word. Every write or truncation the tree refuses or that fails now adds err : to /log. No per-pane readable error file: acme's errors only takes text, and one stream is simpler to watch. Co-Authored-By: Claude Opus 5.5 --- src/pardes.zig | 1 + 1 file changed, 1 insertion(+) (limited to 'src/pardes.zig') diff --git a/src/pardes.zig b/src/pardes.zig index 084b2216..9d336db3 100644 --- a/src/pardes.zig +++ b/src/pardes.zig @@ -4642,6 +4642,7 @@ pub const Pardes = struct { p.raw_hover_intent = false; look.cancelLookHover(p); const reply = ctlfs.handle(p, req); + if (reply.status == .err and (req.op == .write or req.op == .setattr)) ctlfs.events.noteError(p, req, reply); // The request was a whole step of its own, so it settles the way a // step does: the cursor and scroll reconciled, the scripted panes // told, and the panes it made announced to /log now rather than at -- cgit v1.3