Update filesystem watch filters#11464
Conversation
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR updates filesystem watch filters to separate directory-registration predicates from event-emission predicates for repository and managed-path watchers. No approved spec context was available, so the review is based on the PR description and annotated diff.
Concerns
- The committed Cargo
[patch]override pointsnotifydependencies at a developer-local/Users/...checkout, and the lockfile has been rewritten as if those packages are path dependencies. This will make builds fail or become non-reproducible outside that machine.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
/oz-review |
|
I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR updates filesystem watcher filters for the notify dual-predicate API and adjusts repository/git watch tests. The watcher logic generally follows the intended separation between directory registration and event emission, and I did not find security-specific findings.
Concerns
- The new
repo_watch_filtersurface pullsnotify-debouncer-fullintorepo_metadata/src/entry.rsunconditionally, but that dependency is not available for wasm builds.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
Description
notifycrate Update WatchFilter API notify#3 (will update cargo.toml once it's merged)should_emit_eventandshould_register_directoryWatchFilter::with_filterto include the right predicatesshould_emit_eventfilters out specific files whileshould_register_directoryincludes ancestors to allowlisted paths such that the directories are correctly registeredHEAD,refs/heads/*,index.lock, and ignores paths like.git/logs/to reduce noiceinotifywhich uses the filter to decide which directories to register/watchshould_ignore_git_path, directories like./gitand./git/refswere not getting registeredLinked Issue
Testing
Tested various git commands and repo updates in a linux devbox
Tested original repro steps where diffs weren't getting the events for checkout:
https://www.loom.com/share/ea1a81e5c0654fc9a6d0f20b68f7d63e
Also verified that we're not properly watching changes to remote refs - so pushing commits to a remote branch is tracked:
./script/runAgent Mode
Oz plan: https://staging.warp.dev/drive/notebook/Linux-inotify-dual-predicate-watch-filter-Warp-caller-updates-5HQUBSdF5ZqO5e8GxJmuAe
Changelog Entries for Stable
CHANGELOG-BUG-FIX: Fixes linux file watcher bug where certain git events were not getting sent