Skip to content

Releases: brightdigit/SundialKitStream

1.0.0-alpha.2

10 Apr 16:06

Choose a tag to compare

1.0.0-alpha.2 Pre-release
Pre-release

What's Changed

Full Changelog: 1.0.0-alpha.1...1.0.0-alpha.2

1.0.0-alpha.1

25 Nov 16:21
1837720

Choose a tag to compare

1.0.0-alpha.1 Pre-release
Pre-release

What's Changed

New Features

  • Initial release of SundialKitStream - Modern async/await observation plugin for SundialKit
  • Actor-based NetworkObserver for network connectivity monitoring with AsyncStream APIs
  • Actor-based ConnectivityObserver for WatchConnectivity communication with AsyncStream APIs
  • Type-safe messaging support with Messagable protocol and MessageDecoder
  • Comprehensive OSLog logging infrastructure with platform guards for cross-platform support
  • Swift 6.1 strict concurrency compliance with zero @unchecked Sendable conformances

Architecture & Components

  • StreamContinuationManager - Centralized AsyncStream continuation management with defensive assertions
  • ConnectivityStateManager - Coordinated state updates with activation, reachability, and pairing tracking
  • MessageRouter - Automatic transport selection for WatchConnectivity messages
  • MessageDistributor - Fan-out distribution of received messages to all active subscribers
  • Structured concurrency support with proper Task lifecycle management

Documentation & Developer Experience

  • Full DocC documentation with articles and examples by @leogdion in #70, #66
  • Enhanced project logo and plugin documentation
  • Comprehensive README with usage examples and architecture overview
  • CLAUDE.md with development guidelines and project structure documentation
  • Test utilities including MockPathMonitor, MockNetworkPing, MockConnectivitySession, and TestValueCapture

Testing & Quality

  • Extensive unit and integration test coverage for both observers
  • Comprehensive NetworkObserver tests with stream validation
  • Fixed hanging tests by migrating from Task.detached to structured concurrency
  • Resolved Swift 6.1 strict concurrency issues in test suite

Infrastructure & Tooling

  • Complete CI/CD setup with GitHub Actions workflows
  • SwiftLint, swift-format, and periphery (dead code detection) integration
  • Comprehensive linting configuration with strict file/function length limits
  • Devcontainer support with mise-based tooling
  • Dependency management scripts with ensure-remote-deps.sh
  • Helper scripts for linting, documentation preview, and header validation

Code Quality & Refactoring

  • Extract ConnectivityObserver into focused extensions for improved maintainability
  • Extract manager components from ConnectivityObserver for separation of concerns
  • Split WatchConnectivitySession into focused extensions
  • Lifecycle observer setup moved to activate() for type safety
  • Defensive assertions and OSLog error handling throughout
  • Resolved all linting violations across the package

Bug Fixes

  • fixing notifications and logging by @leogdion in #2
  • fix: address selected CodeRabbit PR review comments by @leogdion in #4
  • Automatic processing of pending applicationContext updates
  • Capture full session state snapshot during activation
  • Platform guards for OSLog imports to support Linux builds
  • watchOS test timing issues resolved
  • Final fixes before merge by @leogdion in #5

Dependencies

  • SundialKit v2.0.0-alpha.1+ (provides SundialKitCore, SundialKitNetwork, SundialKitConnectivity)

Platform Support

  • iOS 16+
  • watchOS 9+
  • tvOS 16+
  • macOS 13+
  • Swift 6.1+
  • Xcode 16.0+

Full Changelog: https://github.com/brightdigit/SundialKitStream/commits/1.0.0