isIgnored only matched a directory path itself, not files beneath it, so a recursive watch still surfaced changes inside .dart_tool/, build/, etc. Linux usually hid this because inotify drops the nested creates; macOS FSEvents delivers them, so the tree reacted to churn it should ignore. Check each ancestor segment as a directory. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>