490fe002a1
The fs-policy gate throws FS_NOT_OBSERVED when the model edits a file it never read; that rejection surfaces as a failed tool_call_update, but no snapshot pinned it — a regression that dropped or mis-rendered the failed card would pass every gate. Record a scenario that edits a seeded file without a preceding read: the edit is vetoed, the file stays unchanged on disk, and the transcript shows the pending edit card followed by a status:'failed' update carrying the policy error.