rolldown-notify 10.2.0

Cross-platform filesystem notification library
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [10.2.0]https://github.com/rolldown/notify/compare/rolldown-notify-v10.1.0...rolldown-notify-v10.2.0 - 2026-03-06

### Added

- support wasm build ([#67]https://github.com/rolldown/notify/pull/67)

## [10.1.0]https://github.com/rolldown/notify/compare/rolldown-notify-v10.0.0...rolldown-notify-v10.1.0 - 2025-12-25

### Added

- report file types for create / remove events by polling backend ([#66]https://github.com/rolldown/notify/pull/66)
- align poll watcher behavior with other backends ([#63]https://github.com/rolldown/notify/pull/63)

### Other

- use `Path::ancestors` ([#64]https://github.com/rolldown/notify/pull/64)

## [10.0.0]https://github.com/rolldown/notify/compare/rolldown-notify-v9.1.1...rolldown-notify-v10.0.0 - 2025-12-19

### Other

- [**breaking**] remove implicit dependency named features ([#61]https://github.com/rolldown/notify/pull/61)
- consolidate paths to parent path when threshold exceeded for fsevents watcher ([#60]https://github.com/rolldown/notify/pull/60)
- only watch the top-most path for fsevents watcher ([#59]https://github.com/rolldown/notify/pull/59)
- simplify path to CFString conversion ([#58]https://github.com/rolldown/notify/pull/58)
- use `objc2-core-*` instead of `fsevent-sys` ([#57]https://github.com/rolldown/notify/pull/57)
- rename `recursive_info` to `watches` in fsevents watcher ([#55]https://github.com/rolldown/notify/pull/55)

## [9.1.1]https://github.com/rolldown/notify/compare/rolldown-notify-v9.1.0...rolldown-notify-v9.1.1 - 2025-12-18

### Fixed

- emit multiple events if multiple files are created at once for kqueue watcher ([#54]https://github.com/rolldown/notify/pull/54)

### Other

- use vec to collect events to emit in kqueue watcher ([#53]https://github.com/rolldown/notify/pull/53)
- enable more clippy rules ([#50]https://github.com/rolldown/notify/pull/50)

## [9.1.0]https://github.com/rolldown/notify/compare/rolldown-notify-v9.0.0...rolldown-notify-v9.1.0 - 2025-11-25

### Added

- add tracing logs to remaining files ([#48]https://github.com/rolldown/notify/pull/48)
- add tracing logs for fsevent backend ([#47]https://github.com/rolldown/notify/pull/47)
- add tracing logs for kqueue backend ([#46]https://github.com/rolldown/notify/pull/46)
- add tracing logs for Windows backend ([#45]https://github.com/rolldown/notify/pull/45)
- add tracing logs for inotify backend ([#44]https://github.com/rolldown/notify/pull/44)

### Fixed

- filter out unrelated events for inotify & kqueue backend ([#38]https://github.com/rolldown/notify/pull/38)

### Other

- add optional modify_data_size event expects for kqueue ([#49]https://github.com/rolldown/notify/pull/49)
- use tracing instead of log ([#43]https://github.com/rolldown/notify/pull/43)
- tweak `upgrade_to_recursive` kqueue test to reduce flakiness ([#42]https://github.com/rolldown/notify/pull/42)
- tweak `upgrade_to_recursive` kqueue test to reduce flakiness ([#41]https://github.com/rolldown/notify/pull/41)
- add `upgrade_to_recursive` tests ([#40]https://github.com/rolldown/notify/pull/40)

## [9.0.0]https://github.com/rolldown/notify/compare/rolldown-notify-v8.2.4...rolldown-notify-v9.0.0 - 2025-11-23

### Added

- implement `TargetMode::TrackPath` for kqueue ([#25]https://github.com/rolldown/notify/pull/25)
- implement `TargetMode::TrackPath` for fsevent ([#27]https://github.com/rolldown/notify/pull/27)
- implement `TargetMode::TrackPath` for Windows ([#23]https://github.com/rolldown/notify/pull/23)
- implement `TargetMode::TrackPath` for inotify ([#22]https://github.com/rolldown/notify/pull/22)
- [**breaking**] change `Watcher::watch` to take `WatchMode` instead of `RecursiveMode` ([#21]https://github.com/rolldown/notify/pull/21)

### Other

- update TargetMode comment ([#36]https://github.com/rolldown/notify/pull/36)
- add optional expected events to reduce flakiness ([#31]https://github.com/rolldown/notify/pull/31)
- add `TargetMode` related tests for polling watcher ([#30]https://github.com/rolldown/notify/pull/30)
- wait a short period before checking whether no events were received ([#29]https://github.com/rolldown/notify/pull/29)
- add optional expected events to reduce flakiness ([#28]https://github.com/rolldown/notify/pull/28)

## [8.2.4]https://github.com/rolldown/notify/compare/rolldown-notify-v8.2.3...rolldown-notify-v8.2.4 - 2025-11-23

### Fixed

- watch hardlinks correctly for inotify backend ([#20]https://github.com/rolldown/notify/pull/20)
- prevent hanging on file additions in recursive watches for inotify backend ([#18]https://github.com/rolldown/notify/pull/18)

### Other

- merge adjacent `if` and `match` statements ([#24]https://github.com/rolldown/notify/pull/24)

## [8.2.3]https://github.com/rolldown/notify/compare/rolldown-notify-v8.2.2...rolldown-notify-v8.2.3 - 2025-11-21

### Fixed

- align the behavior of kqueue backend more with others ([#16]https://github.com/rolldown/notify/pull/16)

## [8.2.2]https://github.com/rolldown/notify/compare/rolldown-notify-v8.2.1...rolldown-notify-v8.2.2 - 2025-11-21

### Fixed

- remove watch handles after file deletion for inotify ([#15]https://github.com/rolldown/notify/pull/15)
- avoid watching file under a directory that is watched for inotify backend ([#14]https://github.com/rolldown/notify/pull/14)

### Other

- verify watch handles for kqueue ([#13]https://github.com/rolldown/notify/pull/13)
- verify watch handles for Windows backend ([#12]https://github.com/rolldown/notify/pull/12)
- verify watch handles for inotify ([#11]https://github.com/rolldown/notify/pull/11)
- separate watch_handles from watchers for inotify backend ([#9]https://github.com/rolldown/notify/pull/9)

## [8.2.1]https://github.com/rolldown/notify/compare/rolldown-notify-v8.2.0...rolldown-notify-v8.2.1 - 2025-11-16

### Fixed

- emit `remove` event if add watch fails due to non-existing path for kqueue watcher ([#6]https://github.com/rolldown/notify/pull/6)
- throw fsevents stream start error properly ([#4]https://github.com/rolldown/notify/pull/4)

### Other

- add kqueue tests ([#5]https://github.com/rolldown/notify/pull/5)
- reuse the same `ReadDirectoryChangesW` handle for watching a file in the same directory ([#3]https://github.com/rolldown/notify/pull/3)
- migrate to rust edition 2024 ([#2]https://github.com/rolldown/notify/pull/2)
- add benchmark for .paths_mut ([#1]https://github.com/rolldown/notify/pull/1)
- fix test failure with macOS kqueue
- add test helpers and tests ([#728]https://github.com/rolldown/notify/pull/728)
- `FsEventWatcher` crashes when dealing with empty path ([#718]https://github.com/rolldown/notify/pull/718)
- update rust toolchain to 1.90.0