summaryrefslogtreecommitdiff
path: root/src/pardes.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 10:55:10 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commit2a71bff5f06ba3e785a5eb96a8377e2cab8e2cdd (patch)
tree05ba873c6696b4e88261e8fe20482c498ed52eb6 /src/pardes.zig
parent68a74ec034a24c9b016497880e375f291498ae5f (diff)
downloadpardes-2a71bff5f06ba3e785a5eb96a8377e2cab8e2cdd.tar.gz
pardes-2a71bff5f06ba3e785a5eb96a8377e2cab8e2cdd.zip
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 <serial|-> <file>: <why> 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 <[email protected]>
Diffstat (limited to 'src/pardes.zig')
-rw-r--r--src/pardes.zig1
1 files changed, 1 insertions, 0 deletions
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