0.2.0 (2026-08-12)
- docs: add DOCS_NOINDEX to keep non-canonical builds out of search (4ec28f2)
- docs: escape generics in prose copied into api/_media (66b1320)
- docs: rename the docs workspace to website (5428667)
0.1.1 (2026-08-11)
- android: strip ICY metadata on radio livestreams to fix audio chirping (a6e5360)
- ios: do not automaticaly play completed content (9c18944)
0.1.0 (2026-03-20)
- ios: isIosOutputExternal() replaced with getIosOutput(), useIosOutputExternal() replaced with useIosOutput()
- metadata callback names and parameter types changed
- capabilities API changed from array to object
- ts: useDebug signature changed from (enabled: boolean) to (options: DebugOptions) and now returns { state, logs, clear }. useDebugMetadata is removed - use useDebug({ metadata: true }) instead.
playproperty renamed tosingleTrackwith inverted boolean semantics (play:'single' -> singleTrack:true)- android: android.notificationCapabilities replaced with android.notificationButtons
set-ratingcapability renamed tofavoritehandleRemoteSetRatinghandler removed, useonRemoteSetRatinglistener instead- Removed the
playableoptional boolean field from Track and ResolvedTrack interfaces. Playability is now determined solely by the presence of thesrcfield.
Changes:
- Remove
playable?: booleanfrom TypeScript Track and ResolvedTrack interfaces - Simplify playability logic: tracks are playable if and only if
src != null - Update Media3 metadata flags to use
src == nullfor browsability checks - Remove helper functions
isBrowsable()andisPlayable()from TrackFactory - Update error messages to reflect new validation rules
- Regenerate all Nitro bridge code (C++, Swift, Kotlin)
Migration: Replace playable: true with an actual src value pointing to the media resource.
- implement navigatePath/navigateTrack split and ResolvedTrack model
- RequestConfig query and headers now only accept string values, HttpMethod enum replaces method strings
- acquireWakeLock() and abandonWakeLock() functions removed, NitroUpdateOptions renamed to NativeUpdateOptions
- add artwork configuration with SVG and size-aware support (a2fe9d9)
- add artworkCarPlayTinted property for iOS CarPlay tinting (7837fe6)
- add browser navigation API and separate player concerns (7d70e31)
- add childrenStyle property for Android Auto folder content styling (93f0a4d)
- add cross-platform retry support with configurable max duration (2d0082f)
- add customizable navigation error formatting (ab1447d)
- add favorites support with heart button in media controllers (91962cb)
- add groupTitle property for Android Auto section headers (95dd516)
- add HTTP client infrastructure and HttpMethod enum (1d4564c)
- add imageRow support to Track for horizontal thumbnail rows (348bfcc)
- add live stream indicator support (f65ba08)
- add navigation error handling with retry support (6bd19a3)
- add none option to RatingType (06e25c5)
- add now playing metadata override API (a655de2)
- add onPlaybackQueueChanged event and useQueue hook (f479051)
- add route parameter support to browser callbacks (d11e551)
- add setFavorites API for syncing app-managed favorites (213ce71)
- add shuffle mode support (ef3b3d5)
- add structured search parameters for voice commands (2dedf65)
- add system volume monitoring and control (def8451)
- add toggleActiveTrackFavorited and async callback delivery (9e1a0eb)
- android, ios, web: add handleTrackLoad callback (03b6bcd)
- android: add automatic buffer management for rebuffer threshold (d356781)
- android: add browse-time artwork URL transformation (f6947cc)
- android: add caching and contextual URLs for Media3 integration (44a1186)
- android: add client-side route matching with parameter extraction (734cef5)
- android: add Coil-based artwork loading with custom header support (3e9a8ef)
- android: add configurable retry policy for load errors (ea840b3)
- android: add debounced loading state for browser navigation (912b53c)
- android: add equalizer with presets and custom band levels (4442caa)
- android: add getTabs() method for tab navigation support (8a10afa)
- android: add media URL transformation through request config integration (2384e8e)
- android: add Media3 session service support (5a35dbc)
- android: add notifyContentChanged API for external controllers (7e79946)
- android: add offline error handling for external controllers (c6c84e9)
- android: add playback resumption stub to prevent crashes (c4415f3)
- android: add playback resumption via MediaButtonReceiver (59b9d3a)
- android: add sleep timer with time and end-of-track modes (c0fecb2)
- android: add slot-based notification button layout API (89a3a4a)
- android: add startIndex and startPositionMs params to setQueue (913550f)
- android: await browser registration for Android Auto cold starts (42208ee)
- android: complete Nitro module integration with callback system (3a3643f)
- android: enable queue expansion for JS track navigation (592584a)
- android: implement Android Auto queue expansion (302ada5)
- android: implement AudioBrowser module with TrackPlayer integration (1814aff)
- android: implement HTTP API request execution for browser (214075c)
- android: implement Media3 search integration with queue expansion (db3c9fc)
- android: implement now playing metadata override (8a051ee)
- android: implement null sentinel system for updateOptions API (f816dc5)
- android: implement PlayConfigurationBehavior for queue expansion (b4bce8f)
- android: implement voice search with intelligent result handling (f9c0774)
- android: integrate BrowserManager into AudioBrowser navigation (064e60b)
- android: move routing to browser package and add route parameter support (70ea312)
- android: persist and restore playback settings on resumption (a63b4b6)
- build: migrate to ESLint v9 flat config format (71817ad)
- example: add Android Auto support configuration (788a997)
- example: add Archive.org source, full-screen player, and extract modules (578ca53)
- example: add DebugPanel component (be53e16)
- example: add DebugPanel to BrowserScreen in dev mode (ea3f7a9)
- example: add equalizer and sleep timer modals (a97edd7)
- example: add radio icon drawable for Android (c727c40)
- example: add repeat mode toggle and reorganize MiniPlayer controls (0c209f1)
- example: add search screen and extract TrackListItem component (75c773c)
- example: add SF Symbol artwork icons to radio station entries (935c794)
- example: add SF Symbol artwork to iOS tabs (81c971f)
- example: configure play behavior to queue mode (20dbb1d)
- example: enable skip-to-next and skip-to-previous capabilities (e889d27)
- example: enable updateOptions and improve player setup (3f3b531)
- example: expand example app with favorites, metadata, and test server (54845fd)
- example: mark radio stations as live streams (483eb67)
- example: use useNowPlaying hook in MiniPlayer (fd2363f)
- expose network connectivity state to JavaScript (95aa4b1)
- implement navigatePath/navigateTrack split and ResolvedTrack model (b471d68)
- ios: add artwork URL resolution for browsing (a20ab1b)
- ios: add CarPlay playing indicators and playback state (796f831)
- ios: add CarPlay Siri voice search and assistant cell support (43ed6e4)
- ios: add CarPlay support (4854e5a)
- ios: add CarPlay Up Next queue and respect template limits (657b3fe)
- ios: add CarPlay/lock screen repeat, shuffle, and playback rate controls (65a163c)
- ios: add configurable CarPlay playback rates (a996825)
- ios: add CPActionSheetTemplate for CarPlay navigation errors (007b232)
- ios: add custom CarPlay Now Playing buttons (0f9e2f2)
- ios: add external audio output detection and picker (fe9bfeb)
- ios: add image caching for CarPlay using Kingfisher (4910be5)
- ios: add initialIndex parameter to TrackPlayer.add() (b289e84)
- ios: add media URL resolution for playback (7bc7368)
- ios: add MPNowPlayingSession for automatic Now Playing publishing on iOS 16+ (23126a9)
- ios: add setQueue method for atomic queue replacement (433c511)
- ios: add SFSymbolRenderer for sf: artwork with color support (95f0a6e), closes #fff
- ios: expand output API with type and device name (0147811)
- ios: implement browser navigation and route resolution (f3d0f87)
- ios: implement network connectivity monitoring (4358cbb)
- ios: implement now playing metadata override (88e617c)
- ios: implement remote commands and player options (28aaf91)
- ios: implement sleep timer functionality (3adc883)
- ios: implement TrackPlayer and HybridAudioBrowser (81bb7e3)
- ios: refresh CarPlay templates on notifyContentChanged (d5b38e3)
- ios: support CarPlay cold start (3c84d94)
- ios: update CarPlay Up Next list when queue changes (98ace3f)
- move buffer options to platform namespaces and add iOS buffer support (7f901ef)
- port TrackPlayer example app (ec83fb5)
- support null for rebufferBuffer to enable automatic mode (8702b7d)
- ts,android: add battery warning for foreground service restrictions (e40e747)
- ts,android: add ImageSource type for artwork with headers support (b5fc817)
- ts: add MediaRequestConfig and PlayConfigurationBehavior types (d7b69a5)
- ts: add useDebug hook for logging state changes (78f235e)
- ts: enhance useDebug and add useDebugMetadata hook (cc16c04)
- ts: improve sleep timer hooks and fix cleanup bug (15f0e89)
- web, example-nextjs: add an initial web implementation (bbad106)
- web: add 30s request timeout to HttpClient (f163ad8)
- web: defer seek events during load until after load has completed (b4ec7d1)
- android, ios: prevent progress events from being emitted at startup (cd69a57)
- android: add missing style parameter to Track models (1190a19)
- android: add required LoadControl interface methods (cbc3330)
- android: add timeout to awaitBrowser and use in playFromSearch (0546fc3)
- android: always regenerate contextual URLs for playable tracks (4b1e039)
- android: cancel pending navigation when new navigation starts (b44bd95)
- android: correct return type for filtered search results (18c2970)
- android: correct variable name in buffer calculation (2049633)
- android: defer equalizer init until valid audio session ID (49ee514)
- android: export MediaLibraryService for Android Auto support (3043a77)
- android: filter non-playable tracks from search results (4bd0189)
- android: fix ANR deadlock when calling seekTo immediately after load (e8a6cb4)
- android: fix issues that can arise from useing multiple libraries that depend on media3 (6f7bb0d)
- android: improve URL handling and media request transformation (40cd16d)
- android: move HybridReactNativeAudioBrowser to correct Nitro package (592cfd9)
- android: preserve URL structure in ContextualUrlHelper.stripTrackId (ed602b9)
- android: prevent navigation race conditions (3aadb16)
- android: recover from live window errors during streaming (a4060fc)
- android: refresh browser content when notifyContentChanged matches current path (666dfa9)
- android: remove exitProcess(0) from onTaskRemoved (2123f1d)
- android: reserve skip button slots in media notification (501f284)
- android: resolve multiple compilation errors (2dd2496)
- android: resolve rating type mismatch with RatingFactory (2f5e52a)
- android: return success result for handled custom commands (260a685)
- android: run lifecycle observer registration on main thread (5844295)
- android: skip queue re-expansion when selecting from same source (b04db4a)
- android: unbind HeadlessTaskService on destroy to prevent leak (99ecb44)
- android: update Track browsable/playable logic for Media3 (429077a)
- android: use thread-safe cache for playWhenReady in retry policy (c949174)
- build: add prepare script and apply Android package path fix (aa4b0ce)
- ci: cap breaking changes to minor while pre-1.0 (d82b79c)
- ci: enable corepack before setup-node in release workflow (6bf87bf)
- ci: upgrade iOS build to macOS 26 with Xcode 26.2 (3c3fe3e)
- ci: use generic iOS Simulator destination for Xcode builds (de89602)
- ci: use generic simulator destination for macOS 26 runner (f752bb5)
- correct function name reference in usePlayback hook (334ac4f)
- default jumpForward and jumpBackward capabilities to false (8be64c2)
- docs: add file extension to ESM import (b8edb0d)
- example-native: allow for cold start from Android Auto (71fa3a6)
- example: add copy button to DebugPanel logs tab (b1c4fbd)
- example: add missing eslint dependency to enable yarn lint (8445927)
- example: align repeat mode cycle order with now playing screen (ef1f263)
- example: auto-configure NODE_BINARY for Gradle builds (2c70247)
- example: correct Android package name in npm scripts (087df8c)
- example: correct import path for configurePlayer (83df6b1)
- example: force single resolution for react-native-nitro-modules (b056dfa)
- example: handle multi-word queries in voice search script (6636d22)
- example: hide equalizer button when unsupported (fff233d)
- example: improve equalizer toggle UX and preset state visibility (7d41c10)
- example: improve safe area handling and header layout (7c979ea)
- ios: add @preconcurrency to Intents import for Swift 6 sendability (051895a)
- ios: add @MainActor to PlayingStateManager (6996955)
- ios: add generation counter to prevent stale retries after reset (37bff32)
- ios: add missing artworkCarPlayTinted parameter to constructors (2a162ca)
- ios: add missing thread safety assertions to TrackPlayer (c5dbf56)
- ios: add query params and fix route config priority in BrowserManager (782e4b9)
- ios: add Swift 6 Sendable conformance annotations (d9bfa8a)
- ios: auto-play when selecting track from CarPlay Up Next list (31a72f6)
- ios: deduplicate CarPlay item selection and prevent nowPlaying crash (1aa3689), closes #36
- ios: defer play/pause during async track loading (3019680), closes #33
- ios: disable BUILD_LIBRARY_FOR_DISTRIBUTION for Kingfisher (1efe7ed)
- ios: disambiguate PlaybackState.none from Optional.none in state machine (c242e9b)
- ios: dispatch Nitro bridge callbacks to MainActor to prevent noexcept crashes (6b4fe31)
- ios: enable content cache on navigate to match Android behavior (2b746b4)
- ios: ensure CarPlay tabs always display with images (eb4cb96)
- ios: ensure CarPlay UI updates run on MainActor (b1e8de0)
- ios: fire onPlaybackActiveTrackChanged when toggling favorite (60c436e)
- ios: fix an issue preventing progress update events from being sent (b4095e9)
- ios: fix an issue with iOS where playback rate wasn't persisted between play/pause (3e4ae37)
- ios: fix seekTo race condition during track loading (8f594e8)
- ios: fix Track.copying() compilation and expand to all fields (80e71d9)
- ios: improve CarPlay Now Playing button state management (b0a7795)
- ios: only increment attemptCount when retry actually fires (5a2c30d)
- ios: present AVRoutePickerView on topmost view controller (f1cd396)
- ios: prevent navigation race conditions and hydrate search favorites (84cdc56)
- ios: prevent Nitro bridge memory corruption in URL transforms (8788e86)
- ios: prevent out-of-order NetworkMonitor dispatch (5595ef1)
- ios: prevent stale errors and deadlock when switching tracks (8670441)
- ios: propagate skipTo errors in navigateTrack instead of swallowing them (37e6363)
- ios: remove MainActor.run wrapper causing media transform deadlock (bfbc86b)
- ios: replace withCheckedContinuation with cancellable polling in RetryManager (03c9911)
- ios: resize CarPlay favorite button image to max allowed size (0936000)
- ios: resolve MainActor isolation in SVGProcessor (108b4dd)
- ios: resolve SF Symbol artwork before passing to JS and Kingfisher (456d710)
- ios: resolve Swift 6 Sendable and MainActor concurrency warnings (d6466cc)
- ios: send variant null instead of nil for sleep timer cleared state (3773c9d)
- ios: skip queue re-expansion when selecting from same source (b1476e2)
- ios: start playback when AVPlayerItem becomes ready (c96b5ab)
- ios: stop old player on JS runtime reload to prevent dual audio (0710483)
- ios: update isPlaying for CarPlay Up Next list items (40d9c5b)
- ios: update track in player queue when favorite changes (e8da8a3)
- ios: use initialIndex in CarPlay track selection (ea2baf2)
- ios: use non-deprecated allowBluetoothHFP audio session option (a776fb6)
- ios: use raw ID3 frame keys instead of non-existent AVMetadataIdentifier properties (ffd6ff2)
- ios: widen playbackError setter access for extension files (10cd7ef)
- sync nitrogen and nitro-modules to 0.34.1 (e7ddb89)
- ts: correct event subscription API usage (64e5375)
- ts: handle eventKey in useNativeUpdatedValue effect (7fd4882)
- use updateSegmentCounts return value in tail wildcard branch (e985fe2), closes #27
- web: adjust currentIndex when removing tracks from playlist (32e7282)
- web: align PlayingState, progress updates, load(), and setQueue() with Android (d770860)
- web: await response.json() so parse errors are caught by try/catch (2b4aa6d)
- web: compare error state by code and message instead of reference (89aeaa7)
- web: fix NullSentinel typo in OptionsManager error message (73a5b4f)
- web: fix PlaylistPlayer index management and allow moving current track (3a43dc1)
- web: include description, mediaId, and genre in now playing metadata (6cdff45)
- web: keep current track on stop so play() can resume (eeb5b1b)
- web: remove duplicate play() call when loading via goToIndex() (f6efa23)
- web: report actual buffered progress instead of hardcoded zero (ccd0ae9)
- web: route load errors through state setter for consistency (0439289)
- web: use handleNavigationError in navigate() catch block (ccd4085)
- web: use resolveSearchContent for search query expansion in playback (2770573)
- android: cache resolved content for faster tab switching and back navigation (178ebd5)
- ios: cancel in-flight artwork loads on track change (cdd123f)
- ios: fix UI freeze when switching tracks (d62cf36)
- ios: lazy load CarPlay tab content for faster UI display (8cf6cf1)
- ios: remove hot-path debug logging from NowPlayingInfoController.performUpdate() (956ac95)
- ios: use O(1) doubly-linked list for LRUCache (8fe496e)
- android: add default artwork size for notifications (7d231e4)
- android: adopt PlayerCapabilities struct for capability checks (28bd8f6)
- android: consolidate path utilities in BrowserPathHelper (50225a1)
- android: eliminate custom Track model in favor of direct Nitro types (23c3585)
- android: extract MediaSession callback and playing state logic (570126d)
- android: improve callback clarity in AudioBrowser (8375821)
- android: improve playback state persistence and caching (ffb56ef)
- android: improve rating system with bidirectional conversion (136e208)
- android: inline audio attributes setup and add clarity comment (cbe70b9)
- android: inline audio offload configuration in setup method (21e9eea)
- android: inline cache initialization into Player class (7e91ac8)
- android: inline isBrowsable check in searchPlayable (9fae228)
- android: inline SearchParams construction (6595491)
- android: migrate from TrackPlayer to AudioBrowser package structure (1e308bb)
- android: move Player class to dedicated player package (2bf6048)
- android: remove intermediate AudioContentType enum wrapper (3b569bd)
- android: remove NullSentinel in favor of Nitro's NullType (989ee87)
- android: remove redundant AudioBrowser prefixes from class names (c365b6e)
- android: remove SVG tinting from artwork loading (e16b1e7)
- android: remove unused CacheConfig data class (b1c7db8)
- android: remove unused HeadlessJsMediaService abstract class (1f94579)
- android: remove unused toNitro method from AudioContentType enum (b5e5f68)
- android: rename and move MediaSessionManager to player package (6f95b1a)
- android: rename ContextualUrlHelper.normalize to stripTrackId (d1ecac8)
- android: rename TrackFactory methods and clean up imports (2d97c4c)
- android: replace custom events with direct Nitro types (dbbea41)
- android: replace custom model classes with direct Nitro types (9d8e36d)
- android: simplify DynamicLoadControl and reduce log noise (ad9d56d)
- android: simplify MediaFactory to use automatic media source detection (0374c09)
- android: simplify notification URI scheme to audiobrowser://notification (0a3b6eb)
- android: unify content sources into route-based system (1ae5974)
- android: update playback state API implementation (574487d)
- android: update PlayerUpdateOptions to use NullSentinel types (b6a659e)
- android: update TrackFactory to use browser track format (357833a)
- android: use DefaultMediaSourceFactory for automatic format detection (03761f9)
- android: use ExoPlayer listener for repeat mode change events (14cad8e)
- bring back isLiveStream (70de21e)
- consolidate ESLint config and disable annoying rules (c26edb5)
- delete types (8a49c3e)
- docs: extract shared base-name logic and convert plugin to TypeScript (9ac31c2)
- docs: share prefix regex between sidebar scripts (55aaa36)
- example: adapt to browser track types and clean up structure (f855aab)
- example: clean up component code and simplify handlers (78ca34d)
- example: extract browser history into useBrowserHistory hook (533bb4b)
- example: extract MiniPlayer component from BrowserScreen (8633656)
- example: improve TrackListItem conditional rendering (2be892f)
- example: inline track data and remove external JSON file (35753fa)
- example: move track artwork to left side with placeholder (4aef21b)
- example: refactor structure of the example app to allow for more examples (6a67c16)
- example: remove redundant capabilities from updateOptions (ef5f7ea)
- example: remove unnecessary void operators from navigate calls (8dc38d2)
- example: remove unused equalizer state and UI (2883ed0)
- example: replace player example with browser-focused UI (8e04dd7)
- example: simplify package identifiers to com.example.audiobrowser (157c640)
- example: use artworkSource for track list images (a79b6ce)
- example: use useFormattedNavigationError for error display (f5d5442)
- improve playback state API naming clarity (51161c8)
- improve repeat mode event callback typing and assignment (c629d02)
- introduce NativeUpdatedValue and LazyNativeEmitter for event handling (2446e15)
- ios: add Track.copying() to replace fragile 18-field copy pattern (3fe9c4e)
- ios: adopt MainActor isolation for concurrency safety (3c20f61)
- ios: change CarPlay playback rate button to cycle through rates (6472ddd)
- ios: consolidate artwork image loading into ArtworkImageFetcher (514c7e3)
- ios: derive Now Playing artwork size from screen dimensions (36ca833)
- ios: extract CarPlayImageLoader, CarPlayNowPlayingManager, and CarPlayArtworkResolver from CarPlayController (4332d55)
- ios: extract CarPlayListItemFactory and improve listener cleanup (76bd7ff)
- ios: extract MediaLoader, NowPlayingUpdater, and LoadSeekCoordinator from TrackPlayer (8c597b0)
- ios: extract PlaybackCoordinator from TrackPlayer (c37d870)
- ios: extract QueueManager from TrackPlayer (d01ce51)
- ios: extract TrackSelector with protocol-based testability (b69e695)
- ios: extract URL resolution from BrowserManager and deduplicate (f828d7a)
- ios: let Kingfisher handle local file artwork loading (41ecc78)
- ios: make all four observers @MainActor and fix seekTo completion threading (a82214a)
- ios: make BrowserManager @MainActor instead of @unchecked Sendable (79b5d14)
- ios: make NowPlayingInfoController @MainActor (f2621fa)
- ios: make SleepTimerManager and PlaybackProgressUpdateManager @MainActor (2bb187a)
- ios: migrate observers to block-based KVO (356eb52)
- ios: move MainActor dispatch from TrackPlayer into observers (1cfeaa7)
- ios: remove debug logging for artwork size requests (b955b97)
- ios: remove nonisolated(unsafe) from browserManager (d1955f8)
- ios: remove unused icon field from JsonTrack models (4fc71ef)
- ios: remove unused onExternalContentChanged callback (58900b5)
- ios: rename setTrack to replace and remove silent guard (89d3d60)
- ios: replace callback hijacking with multi-listener emitter system (7fd3d7b)
- ios: replace debug prints with os.log in HybridAudioBrowser (e1b4227)
- ios: replace didSet state management with explicit state machine (42bb2a7)
- ios: simplify NowPlayingInfoController to serial dispatch queue (10e2dc1)
- ios: switch from Kingfisher to SDWebImage for CarPlay images (26a5601)
- ios: use Kingfisher for artwork loading with async/await (bc97e6a)
- ios: use modern CMTime initializer syntax (a7f9307)
- ios: use OnceValue async primitive for CarPlay initialization (2d7cc72)
- merge AudioPlayer into AudioBrowser (e8697fe)
- remove intermediate PlayerCapability enum wrapper and extend Nitro Capability (23f4307)
- remove legacy Android Auto media provider (2531a1f)
- remove metadata helpers and update functions (49dd1db)
- remove playable field from Track types (e45756c)
- remove unused dislike and bookmark remote commands (09e0f44)
- remove unused PlaybackActiveTrackEvent interface (eda0622)
- rename native module export to nativeAudioBrowser (d0ba4f3)
- rename project from ReactNativeAudioBrowser to AudioBrowser (e42e1c0)
- replace capabilities array with PlayerCapabilities struct (d573391)
- replace play enum with singleTrack boolean (5985169)
- simplify metadata event API with direct types (ca09728)
- ts: extract exports to AudioBrowser module file (985bb12)
- ts: move favorite event types to favorites feature (2c8a37e)
- ts: move native types to internal module (697b0a7)
- ts: remove NullSentinel workaround from updateOptions (44b70a5)
- ts: remove unused Browser type (c2387c8)
- ts: remove unused BrowserItem import (d05b89c)
- ts: reorder Track interface fields (6691184)
- ts: reorganize features into playback, player, and queue subdirectories (e7256a0)
- ts: start moving to browser track types (398d570)
- ts: unify useDebug and useDebugMetadata into single hook (621a1d5)
- ts: update useDebug to use simplified metadata event API (72301fe)
- use params object for formatNavigationError callback (5b29269)
- web: remove as const assertions from State values (7f0b8df)
- web: replace non-null assertions with runtime checks (050f39f)
- add alpha notice to README (3c62871)
- add API reference landing page (af840cf)
- add future ideas for animated artwork and extensible Now Playing buttons (a3738f2)
- add future ideas for CarPlay and localization (3648a0b)
- add mermaid diagrams and Basic Usage guide (07648a5)
- add TODO file for future improvements (8ffccd4)
- add TODO for Android Auto cold start issue (8e7c01c)
- add TODO for MediaSession search implementation (a1265ea)
- add TypeDoc API generation and new guide pages (69756d8)
- add TypeDoc configuration file (5883b83)
- add VitePress documentation site (74185e2)
- ai: add Android build command (9bdb836)
- ai: add breaking changes policy for alpha product (05ab655)
- ai: add codegen build instructions (c5e2bdd)
- ai: add comprehensive Nitro documentation for AI assistance (b027fcf)
- ai: add Kotlin import style guidelines (baee46d)
- ai: add todo commit type to commit command (a377d64)
- ai: update android architecture documentation (f0c52a9)
- ai: update iOS architecture diagram and documentation (5e09881)
- android: add architecture overview and system diagram (18a719b)
- android: add TODO for proper cache implementation (c09b8f7)
- android: update architecture diagram to reflect current codebase (43d7e49)
- android: update architecture diagram with caching system (e6f69e0)
- example: add troubleshooting hint to android:dhu script (501ccc5)
- ios: add iOS development guide with architecture diagram (645fb15)
- ios: clarify equalizer methods are unsupported no-ops (e60d8bc)
- ios: move architecture diagram to separate ARCHITECTURE.md file (d71c5c1)
- ios: update architecture diagram and file tree (53cbcc9)
- ios: update architecture diagram for QueueManager and state machine (8484788)
- mark CarPlay as available (df7ba58)
- remove dual browsable/playable item note (a56fa13)
- remove implemented items from FUTURE.md (891e9cf)
- remove outdated README content for alpha phase (43acec8)
- simplify API landing page (bd76a15)
- ts: add @see links to search and retry functions (3c40df5)
- ts: add documentation for browser configuration types (0b3fe46)
- ts: add JSDoc to RequestConfig.path property (62b5134)
- ts: clarify CarPlay Now Playing buttons configuration (9a47539)
- ts: document sf: artwork format for iOS SF Symbols (5490f5f)
- ts: fix typo in Track.artworkSource example (0925afb)
- ts: improve Track interface field documentation (1df59d7)
- update TODO with completed search features and refactoring tasks (2012cff)
-
add mise configuration for Node.js version management (77a342c)
-
add VS Code workspace settings for oxfmt (75dad59)
-
ai: add Claude Code configuration and commands (4a54eec)
-
ai: add slash command for idiomatic Kotlin refactoring (c2c9c92)
-
ai: add slash command for referencing staged changes (e9715ec)
-
ai: remove types over interfaces guideline (2ee38dc)
-
ai: reorganize slash commands with platform prefix naming (cb06162)
-
android: add TODOs for search support in MediaSession (00328e3)
-
build: add Nitro generated files for cross-platform bindings (9771c1d)
-
build: standardize development workflow and tooling (b4477b5)
-
ci: add nightly schedule for next prereleases (8aca0bc)
-
ci: upgrade to Node 24, fix corepack ordering, drop NPM_TOKEN (fc2afc7)
-
codegen: update Nitro generated code (89e777c)
-
codegen: update Nitro generated code for playback state API refactoring (72c2088)
-
configure oxfmt import sorting rules (6c3f291)
-
delegate iOS scripts to example workspace (eea55a1)
-
disable Dependabot (8d89812)
-
disable require-await eslint rule (90bdf26)
-
docs: add docs to yarn workspaces (191a1f1)
-
example: add Android development and testing scripts (6a35fff)
-
example: add slider dependency (4e66bfc)
-
example: consolidate format and lint scripts (e288e36)
-
example: consolidate prettier configuration (3b6b39f)
-
example: disable HLS track with Android TODO (5f1a825)
-
example: set default repeat mode to queue in example app (691a7ab)
-
example: update Podfile.lock checksums (5054914)
-
example: update yarn.lock after removing dependencies (f39ee93)
-
example: use wildcard for audio-browser peer dependency (7270418)
-
example: use yarn instead of bun in ios:rebuild script (d0c7e7d)
-
exclude next-env.d.ts and .next from oxlint (daaaa09)
-
extract prettier config to dedicated files (895e2be)
-
fix workspace references after monorepo restructuring (1b477ea)
-
ios: add debug logging to NowPlayingInfo and RemoteCommand controllers (9c28c82)
-
ios: exclude test files from podspec (eb47be5)
-
ios: remove verbose CarPlay headless mode log (99aa966)
-
ios: update Podfile.lock for nitro-modules 0.34.1 (b702f11)
-
migrate from yarn to bun (9a5e3a0)
-
package.json: add ios:test script for SPM unit tests (59079da)
-
remove completed TODO items for error handling and search (ccfdd6a)
-
remove emojis from release notes section titles (299d4d0)
-
remove research directory (f4e9e72)
-
remove unused common-app package (341ff4a)
-
remove unused resolveAssetSource utilities (a440e5c)
-
replace eslint with oxlint (a6ec3d7)
-
replace prettier with oxfmt (c9f1db7)
-
ts: remove commented legacy player types (9f52b4e)
-
ts: remove redundant tsconfig options (34086c5)
-
update dependencies and add bunfig.toml (98c725b)
-
update Nitro Modules to 0.31.6 and fix null type handling (fbd3289)
-
update npm scripts for monorepo structure (b67b4dd)
-
update react-native-nitro-modules to 0.34.1 (d528bc2)
-
update repo URLs to radio-garden org and bump release deps (bebee0a)
-
update TrackPlayer references to AudioBrowser throughout codebase (d769da5)
-
update vendored nitrogen codegen to fix/cyclic-struct-references (PR #1232) (48fa421)
-
upgrade nitro (6011e2d)
-
upgrade nitro to 0.35.0 and regenerate specs (7f9afbc)
-
upgrade react-native to 0.83.0 (65289b2)
-
yarn: add yarn.lock and update package manager configuration (672fb29)
-
refactor!: simplify player options API and remove manual wake lock management (4324578)