Patch Changes
-
fix: retry
fs.lstaton transientEBUSYerrors instead of emitting a spuriousremoveevent (fixes #223, #44). The retry count is controlled by theWATCHPACK_RETRIESenvironment variable (default:3; set to0or"false"to disable retrying). (by @alexander-akait in #293) -
Improve perfomance for ignored and improve perfomance for reduce plan. (by @alexander-akait in #289)
-
perf: speed up
ignoredmatchers (~35–45% faster on POSIX paths) andreducePlan(~20–40% faster on medium and large plans). Also adds a tinybench suite underbench/and a CodSpeed GitHub Actions workflow to catch future regressions. (by @alexander-akait in #287) -
fix: don't log "Watchpack Error (initial scan)" for unreadable entries inside a watched parent directory, e.g.
pagefile.syson WSL or/efion Linux (fixes #187).EACCES/ENODEV(andEINVALon Windows) errors are now handled likeEPERM/ENOENT/EBUSY: the entry is recorded as missing and the scan continues silently. (by @alexander-akait in #298) -
fix: prevent unbounded watcher growth when a symlinked directory points back to one of its own ancestors (e.g.
a/b/loop -> ..) withfollowSymlinks: true. Such symlinks are now recorded as plain entries instead of being descended into; symlinks pointing outside the watched tree (#231) behave as before. (by @alexander-akait in #297)