From 72127c95e4b2853701a0d61b6b1617225d889fb9 Mon Sep 17 00:00:00 2001 From: Amin Chirazi <32016576+AminChirazi@users.noreply.github.com> Date: Sun, 2 Aug 2026 00:05:31 +0400 Subject: [PATCH] docs: the fs report prints, and a reader had no way to learn it stops there The Filesystem observation section described what the report contains and never said where it does not go. "Is this in the trace?" is the first question a reader with a CI artifact asks, and the honest answer - no, and deliberately - was recorded on issue #302 and nowhere a user would look. Says it, with the reason, because "not implemented yet" and "designed and declined" are different facts and only one of them tells you to stop waiting. Co-Authored-By: Claude Opus 5 --- docs/agent-testing.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/agent-testing.md b/docs/agent-testing.md index 082f0a6..9f8c489 100644 --- a/docs/agent-testing.md +++ b/docs/agent-testing.md @@ -936,6 +936,15 @@ dropped, since the trap already proved the syscall happened. Only a syscall whose *destructiveness* could not be adjudicated - an `openat2` whose `open_how` was unreadable - is a fault. +**It prints, and it is not recorded.** There is no `fs` lane in the trace, +by decision rather than by omission: the report goes to stderr and nothing +survives the run. A lane was designed and declined, because a trace is a +COMMITTED artifact and these paths are absolute - `/home/alice/exports/ +acme-corp-2025.csv` would be baked into a file that is reviewed and diffed +forever. That is the same argument that keeps `execve` out of the trap set +for its argv. So this answers "what did that run destroy", never "what has +this flow destroyed since March". + **Punts, and they are real.** These are ATTEMPTS, not outcomes: the reply goes out before the kernel runs the call, so an `rmdir` of a directory that was not there reads exactly like one that removed a tree. `open(path,