denoland/celldPublic

self-hosted, distributed Durable Objects

celld dev watcher is missing Access-event filter

DE

I tried the celld dev command, but kept getting endless repeating:

```sh ● change detected; rebuilding the application ● restarting the application ready http://127.0.0.1:8787 ```

I'm running CachyOS linux.

I let gpt-5.6-sol have a go at it, to check whether it's caused by `notify 8.2`. It came up with a Linux-specific fix:

## gpt-5.6-sol

Instrumenting ProjectWatcher showed that notify emits Access(Open(Any)) events while celld/esbuild reads project files:

```text Access(Open(Any)) package.json Access(Open(Any)) tsconfig.json Access(Open(Any)) dist/index.js Access(Open(Any)) assets/index.html ```

next_relevant_change() treats every non-ignored event as a change. Rebuilding reads these files again, creating the loop. The .celld directory ignore works correctly and is unrelated.

Filtering access events fixes the issue:

```rust if !matches!(event.kind, notify::EventKind::Access(_)) && event.paths.iter().any(|path| { !ignored_project_path(&self.project, path) }) ```

## Result After applying this filter, celld remains stable.

Thanks for building celld. It's awesome.

  1. bartlomiejuclosed2 months ago on GitHub

  2. BA

    Thanks for the report. This is now fixed and will be released in the next version.

  3. bartlomiejureferenced fd7b96b993f52 months ago on GitHub

  4. bartlomiejureferenced b61356b29deb2 months ago on GitHub

  5. bartlomiejureferenced 7ac68e0bd2a72 months ago on GitHub

  6. bartlomiejureferenced 10cb1303dac72 months ago on GitHub