Adds optional watcher-observed file change reports to bash commands. Set bash.changed_files to list or diff in your user config (default off); diff mode uses clean git before-images with bounded output, and a bounded watcher flush covers last-moment writes.
Projects can turn the feature off but cannot enable it.
Reports ride through foreground results and background completion notices, including new remote tasks, without changing shell arguments; restart replay registers without a capture.
Output is capped (40 files, 200 diff lines, 64 KB report); overflow and flush timeouts are disclosed rather than silently omitted.
Rendering is bounded by the caller's reply deadline, with Git root/HEAD discovery and status sharing one capture budget; exhaustion or expiry falls back from diffs to paths, watcher exclusions apply before journaling, and directory renames are reported as incomplete.
Diff reads use the no-follow, verified-read path from file.read_exact; denied or unverifiable files stay listed without content, and path rows reserve report space before diff content.
Git comparisons normalize changed paths and Git roots on comparison copies only, so native Windows spellings resolve without altering stored paths or read authorization.
Confidence Score: 5/5
The PR appears safe to merge; no new blocking issue was found.
Summary
Adds optional watcher-based file reports to shell results and background completion notices.
Bash commands can return a report of project files changed while they run.
Changed-file reports travel with Bash replies and completion notices.
The file watcher confirms recent events before Bash reports its changes.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[User enables file reports] --> B[Capture Git state and watcher position]
B --> C[Run shell command]
C --> D[Wait briefly for watcher]
D --> E[Build bounded path list]
E --> F[Add permitted diffs within remaining budget]
F --> G[Foreground result or background notice]