Skip to content

fix(vfs): keep macOS watcher setup from blocking readiness - #343

Merged
hongjr03 merged 2 commits into
masterfrom
fix/watcher-rediness
Aug 14, 2026
Merged

fix(vfs): keep macOS watcher setup from blocking readiness#343
hongjr03 merged 2 commits into
masterfrom
fix/watcher-rediness

Conversation

@hongjr03

Copy link
Copy Markdown
Member

Summary

  • use PollWatcher on macOS so FSEvents run-loop startup/shutdown cannot block VFS loading
  • register only deduplicated recursive roots instead of every discovered directory
  • report versioned watcher readiness/failure separately from workspace scan progress
  • make full LSP tests use client watched-file notifications and an explicit single worker

Root cause

The failing diagnostics and reload tests were waiting for VFS Progress(Finished). The macOS notify FSEvents backend could block while registering a watched directory before that message was emitted, leaving workspace readiness permanently false. Reducing Rust test concurrency changed the timing but did not remove that blocking path.

Validation

  • cargo fmt --all -- --check
  • cargo xtask check-config-artifacts
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • parallel cargo test -p vide --lib: 150 passed, 0 failed

The VFS regression test also records its event journal on timeout and verifies duplicate roots are registered once before loading completes.

@github-actions

Copy link
Copy Markdown

Docs preview: https://vide.pascal-lab.net/preview/pr-343/

@hongjr03
hongjr03 force-pushed the fix/watcher-rediness branch from de18dd8 to 9c9f825 Compare August 14, 2026 07:15
@hongjr03
hongjr03 marked this pull request as ready for review August 14, 2026 07:17
@hongjr03
hongjr03 merged commit ff6b15d into master Aug 14, 2026
9 of 10 checks passed
@hongjr03
hongjr03 deleted the fix/watcher-rediness branch August 14, 2026 07:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant