fix: replace notify-debouncer-full/mini with raw notify + custom debounce

notify-debouncer-full cancelled FSEvents Create+Remove pairs (breaking
macOS file deletion detection). notify-debouncer-mini lacked event kind
information (breaking Windows rename detection).

Use raw notify::RecommendedWatcher with a simple 50ms debounce thread
that preserves full event kinds (Create/Write/Remove/Rename). This
matches upstream Rojo's approach (notify v4 built-in debouncer) while
staying on notify v8.

All 489 tests passing on macOS. No debouncer dependencies needed.
This commit is contained in:
Joe 2026-03-12 18:28:37 -05:00
parent 9cf4cea936
commit b8bc7dda5b
3 changed files with 127 additions and 63 deletions

13
Cargo.lock generated
View file

@ -1911,7 +1911,6 @@ dependencies = [
"fs-err",
"log",
"notify",
"notify-debouncer-mini",
"serde",
"tempfile",
]
@ -1981,18 +1980,6 @@ dependencies = [
"windows-sys 0.60.2",
]
[[package]]
name = "notify-debouncer-mini"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17849edfaabd9a5fef1c606d99cfc615a8e99f7ac4366406d86c7942a3184cf2"
dependencies = [
"log",
"notify",
"notify-types",
"tempfile",
]
[[package]]
name = "notify-types"
version = "2.1.0"