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.