Skip to content

feat(watch): enable full functional fs watcher in wasm#8575

Merged
graphite-app[bot] merged 1 commit intomainfrom
03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm
Mar 8, 2026
Merged

feat(watch): enable full functional fs watcher in wasm#8575
graphite-app[bot] merged 1 commit intomainfrom
03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm

Conversation

@hyf0
Copy link
Member

@hyf0 hyf0 commented Mar 7, 2026

Not if this helps #8563 but might be related.

Copy link
Member Author

hyf0 commented Mar 7, 2026


How to use the Graphite Merge Queue

Add the label graphite: merge-when-ready to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@hyf0 hyf0 force-pushed the 03-07-feat_watch_expose_debounce_related_options branch from e6a3fcc to ee41cb9 Compare March 7, 2026 06:25
@hyf0 hyf0 force-pushed the 03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm branch from 7d38817 to 788cab4 Compare March 7, 2026 06:25
@hyf0 hyf0 marked this pull request as ready for review March 7, 2026 06:26
@hyf0 hyf0 requested review from Copilot, sapphi-red and shulaoda and removed request for Copilot March 7, 2026 06:26
@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2026

Benchmarks Rust

  • target: 03-07-feat_watch_expose_debounce_related_options(461527b)
  • pr: 03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm(6c50eac)
group                                                        pr                                     target
-----                                                        --                                     ------
bundle/bundle@multi-duplicated-top-level-symbol              1.00     77.6±1.59ms        ? ?/sec    1.01     78.3±1.87ms        ? ?/sec
bundle/bundle@multi-duplicated-top-level-symbol-sourcemap    1.00     86.2±3.61ms        ? ?/sec    1.00     86.0±2.05ms        ? ?/sec
bundle/bundle@rome_ts                                        1.00    159.9±3.65ms        ? ?/sec    1.00    160.2±3.18ms        ? ?/sec
bundle/bundle@rome_ts-sourcemap                              1.00    176.5±2.69ms        ? ?/sec    1.00    177.1±3.35ms        ? ?/sec
bundle/bundle@threejs                                        1.00     71.7±0.93ms        ? ?/sec    1.02     73.2±3.43ms        ? ?/sec
bundle/bundle@threejs-sourcemap                              1.00     78.2±1.21ms        ? ?/sec    1.00     78.3±1.46ms        ? ?/sec
bundle/bundle@threejs10x                                     1.00    769.3±8.58ms        ? ?/sec    1.00    771.5±8.17ms        ? ?/sec
bundle/bundle@threejs10x-sourcemap                           1.00    879.0±6.63ms        ? ?/sec    1.02   898.8±11.23ms        ? ?/sec
scan/scan@rome_ts                                            1.01     77.4±1.51ms        ? ?/sec    1.00     76.5±1.31ms        ? ?/sec
scan/scan@threejs                                            1.00     27.4±1.71ms        ? ?/sec    1.00     27.5±1.78ms        ? ?/sec
scan/scan@threejs10x                                         1.00    263.0±2.59ms        ? ?/sec    1.01    265.7±2.77ms        ? ?/sec

Copilot AI review requested due to automatic review settings March 7, 2026 06:45
@hyf0 hyf0 force-pushed the 03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm branch from 788cab4 to 6fd8418 Compare March 7, 2026 06:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables using the real filesystem watcher implementation in WASM/WASI builds (instead of falling back to a noop watcher), primarily by removing wasm-specific gating in the watcher factory and its supporting utilities, and updating the underlying rolldown-notify* dependencies.

Changes:

  • Switch rolldown_watcher to always construct an FS watcher via create_fs_watcher (removing the wasm noop fallback).
  • Make debouncer adapter utilities and watcher implementations build on wasm targets by removing cfg(not(target_family = "wasm")) gating.
  • Bump rolldown-notify / rolldown-notify-debouncer-full dependency versions and refresh the lockfile.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
crates/rolldown_watcher/src/watcher.rs Removes wasm-only noop watcher path; always uses create_fs_watcher for task watchers.
crates/rolldown_fs_watcher/src/utils.rs Makes debouncer adapter available unconditionally (incl. wasm).
crates/rolldown_fs_watcher/src/lib.rs Removes wasm gating; exposes polling/debounced watcher selection for wasm as well.
crates/rolldown_fs_watcher/Cargo.toml Makes debouncer dependency unconditional (not target-gated).
Cargo.toml Bumps rolldown-notify and rolldown-notify-debouncer-full versions.
Cargo.lock Updates resolved dependency graph accordingly (incl. transitive bumps).

@graphite-app graphite-app bot force-pushed the 03-07-feat_watch_expose_debounce_related_options branch 2 times, most recently from 3634b05 to 461527b Compare March 7, 2026 10:32
@graphite-app graphite-app bot force-pushed the 03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm branch from 6fd8418 to 6c50eac Compare March 7, 2026 10:32
@graphite-app
Copy link
Contributor

graphite-app bot commented Mar 8, 2026

Merge activity

@graphite-app graphite-app bot force-pushed the 03-07-feat_watch_expose_debounce_related_options branch from 461527b to 83ad228 Compare March 8, 2026 05:07
graphite-app bot pushed a commit that referenced this pull request Mar 8, 2026
@graphite-app graphite-app bot force-pushed the 03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm branch from 6c50eac to ce2243e Compare March 8, 2026 05:08
@graphite-app graphite-app bot force-pushed the 03-07-feat_watch_expose_debounce_related_options branch from 83ad228 to ea76147 Compare March 8, 2026 05:15
@graphite-app graphite-app bot force-pushed the 03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm branch from ce2243e to 19b8db0 Compare March 8, 2026 05:16
Base automatically changed from 03-07-feat_watch_expose_debounce_related_options to main March 8, 2026 05:22
@graphite-app graphite-app bot merged commit 19b8db0 into main Mar 8, 2026
32 checks passed
@graphite-app graphite-app bot deleted the 03-07-feat_watch_enable_full_functional_fs_watcher_in_wasm branch March 8, 2026 05:24
@github-actions github-actions bot mentioned this pull request Mar 9, 2026
shulaoda added a commit that referenced this pull request Mar 9, 2026
## [1.0.0-rc.8] - 2026-03-09

### 🚀 Features

- watch: enable full functional fs watcher in wasm (#8575) by @hyf0
- watch: expose debounce related options (#8572) by @hyf0

### 🐛 Bug Fixes

- detect new URL(…, import.meta.url) with no-sub template literal (#8565) by @char
- devtools: trace dynamic imports in devtools (#8581) by @cal-gooo
- watch: rebuild when a previously missing file is created (#8562) by @hyf0-agent
- watch: filter out Access events to prevent infinite rebuild loop on Linux (#8557) by @hyf0-agent

### 🚜 Refactor

- watch: remove auto watch for fail imports (#8585) by @hyf0
- fs_watcher: unify the way of constructing watcher (#8571) by @hyf0
- cli: migrate CLI to CAC (#8551) by @h-a-n-a
- switch asset module support from hard-code to builtin plugin (#8546) by @hyf0

### 📚 Documentation

- fix subject-verb agreement in why-bundlers.md (#8591) by @brandonzylstra
- maintenance: align release and canary workflow guide (#8538) by @minsoo-web
- add `format` option to directives example config (#8590) by @shulaoda
- fix: change twitter to x logo in team (#8552) by @mdong1909
- correct composable filter support explanation (#8550) by @sapphi-red

### ⚡ Performance

- testing: share tokio runtime across fixture tests (#8567) by @Boshen

### 🧪 Testing

- hmr: fix infinite loop in dev server test retry logic (#8576) by @hyf0-agent
- cli: add more cli-e2e test cases (#8548) by @h-a-n-a

### ⚙️ Miscellaneous Tasks

- docs: update in-depth/directives for `output.strict` option (#8535) by @minsoo-web
- add PNPM_HOME Dev Drive mapping to Windows CI workflows (#8589) by @Boshen
- deps: update github-actions (#8588) by @renovate[bot]
- move Windows cargo target dir to Dev Drive (#8586) by @Boshen
- optimize cache keys to fix race conditions and reduce usage (#8578) by @Boshen
- remove WASI build & test pipeline (#8580) by @Boshen
- remove unnecessary submodule checkouts (#8577) by @Boshen
- use Dev Drive for Windows CI jobs (#8574) by @Boshen
- skip redundant native binding build for browser and remove standalone job (#8573) by @Boshen
- parallelize Node tests on ubuntu, single Node 24 on macOS/windows (#8570) by @Boshen
- docs: bump @voidzero-dev/vitepress-theme to 4.8.0 (#8558) by @crusty-voidzero
- dedupe type-check from dev server workflow (#8554) by @Boshen

### ❤️ New Contributors

* @brandonzylstra made their first contribution in [#8591](#8591)
* @char made their first contribution in [#8565](#8565)
* @cal-gooo made their first contribution in [#8581](#8581)
* @hyf0-agent made their first contribution in [#8562](#8562)
* @h-a-n-a made their first contribution in [#8551](#8551)

Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants