CoreWatcher implementation#1263
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Implements a scoped CoreWatcher on top of Superblock change events, while evolving the underlying event model to support multiple listeners and richer event metadata.
Changes:
- Replaced
Superblock.onchangewith achangesFanOutstream to support multiple listeners and unsubscribe semantics. - Extended filesystem events with
FsEventType.ATTRIBand addedlinktoFsEventso watchers can access both path/link and node information. - Added
CoreWatcher(plus tests) to re-emit subtree-scoped events with relativesteps, including move translation across watch boundaries.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/fs-node/src/tests/volume.events.test.ts | Updates volume event tests to subscribe via core.changes and validates ATTRIB for metadata ops. |
| packages/fs-core/src/watch/FsEvent.ts | Adds ATTRIB, enriches FsEvent with link, and expands event-type documentation. |
| packages/fs-core/src/watch/CoreWatcher.ts | Introduces CoreWatcher and CoreWatchEvent to scope and translate Superblock events to a watch root. |
| packages/fs-core/src/Superblock.ts | Switches to changes: FanOut<FsEvent>, emits link on events, and refines truncate/metadata emission semantics. |
| packages/fs-core/src/index.ts | Exports the new CoreWatcher API. |
| packages/fs-core/src/tests/Superblock.events.test.ts | Updates tests for changes fan-out, ATTRIB, link population, and truncation behavior. |
| packages/fs-core/src/tests/CoreWatcher.test.ts | Adds comprehensive CoreWatcher behavioral tests (scoping, moves, symlinks, close semantics). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.