Skip to content

2.0.0

@claude claude tagged this 31 Aug 09:23
Source-breaking release.

Removed from the public API — all were implementation details no
consumer could reach through a public entry point:

- MulticastAsyncStream
- StreamLifecycleEvent
- FileSystemEventStreamError (now FileSystemEventStream.Error, internal)

The public surface is FolderContentMonitor, FolderContentChangeEvent and
Change. Code that only used those needs no changes.

Behaviour:

- The static makeStream(url:)/makeStream(paths:) functions now create one
  FSEventStream per stream instead of bridging a shared multicast stream
  through an unstructured Task. This removes a Task hop from the event
  path, the one place Swift concurrency could reorder events that
  FSEvents delivered in order. Streams from these functions are
  independent; use a FolderContentMonitor instance for streams that
  share one FSEventStream.
- Both paths now end the stream when the FSEventStream fails to start.
  Previously the instance path logged and left consumers awaiting a
  stream that would never yield and never finish.

Teardown of the kernel FSEventStream is now covered by tests.
Assets 2
Loading