Skip to content

Fix Linux watcher cleanup for recreated directories#50412

Merged
probably-neb merged 1 commit intozed-industries:mainfrom
Chriss4123:fix/linux-watcher-path-reuse-46709
Mar 3, 2026
Merged

Fix Linux watcher cleanup for recreated directories#50412
probably-neb merged 1 commit intozed-industries:mainfrom
Chriss4123:fix/linux-watcher-path-reuse-46709

Conversation

@Chriss4123
Copy link
Copy Markdown
Contributor

Problem

  • On Linux, non-recursive watcher registrations remained path-cached after deleting and recreating a directory in the same session.
  • The recreated directory was not re-watched, so newly created child entries under that path could be missing.

Summary

  • Remove directory watcher registrations when worktree paths are removed from snapshot state.
  • Ensure recreated directories can be watched again on Linux by allowing scan_dir to re-add fresh watches.
  • Add a Linux integration regression test for directory delete/recreate path reuse and child file creation.

Testing

  • cargo test -p project --features test-support --test integration test_recreated_directory_receives_child_events -- --exact
  • cargo test -p project --features test-support --test integration test_rescan_and_remote_updates -- --exact

Related

Release Notes:

  • Fixed Linux worktree file watching so child entries appear after deleting and recreating a directory at the same path.

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Feb 28, 2026
@zed-community-bot zed-community-bot bot added the first contribution the author's first pull request to Zed. NOTE: the label application is automated via github actions label Feb 28, 2026
@Chriss4123
Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@probably-neb probably-neb merged commit c19cc4c into zed-industries:main Mar 3, 2026
38 checks passed
@probably-neb
Copy link
Copy Markdown
Collaborator

Thanks for fixing this @Chriss4123! Although there were 4 separate PRs to fix this issue, I found your solution the simplest. Nice work!

@Chriss4123 Chriss4123 deleted the fix/linux-watcher-path-reuse-46709 branch March 3, 2026 17:40
tahayvr pushed a commit to tahayvr/zed that referenced this pull request Mar 4, 2026
…0412)

## Problem
- On Linux, non-recursive watcher registrations remained path-cached
after deleting and recreating a directory in the same session.
- The recreated directory was not re-watched, so newly created child
entries under that path could be missing.

## Summary
- Remove directory watcher registrations when worktree paths are removed
from snapshot state.
- Ensure recreated directories can be watched again on Linux by allowing
`scan_dir` to re-add fresh watches.
- Add a Linux integration regression test for directory delete/recreate
path reuse and child file creation.

## Testing
- `cargo test -p project --features test-support --test integration
test_recreated_directory_receives_child_events -- --exact`
- `cargo test -p project --features test-support --test integration
test_rescan_and_remote_updates -- --exact`

## Related
- zed-industries#46709

Release Notes:

- Fixed Linux worktree file watching so child entries appear after
deleting and recreating a directory at the same path.
wzulfikar pushed a commit to wzulfikar/zed that referenced this pull request Mar 4, 2026
…0412)

## Problem
- On Linux, non-recursive watcher registrations remained path-cached
after deleting and recreating a directory in the same session.
- The recreated directory was not re-watched, so newly created child
entries under that path could be missing.

## Summary
- Remove directory watcher registrations when worktree paths are removed
from snapshot state.
- Ensure recreated directories can be watched again on Linux by allowing
`scan_dir` to re-add fresh watches.
- Add a Linux integration regression test for directory delete/recreate
path reuse and child file creation.

## Testing
- `cargo test -p project --features test-support --test integration
test_recreated_directory_receives_child_events -- --exact`
- `cargo test -p project --features test-support --test integration
test_rescan_and_remote_updates -- --exact`

## Related
- zed-industries#46709

Release Notes:

- Fixed Linux worktree file watching so child entries appear after
deleting and recreating a directory at the same path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement first contribution the author's first pull request to Zed. NOTE: the label application is automated via github actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants