| Age | Commit message (Expand) | Author |
| 2026-05-22 | Implement API token management screen in Settings (task hb) | Paul Buetow |
| 2026-05-22 | Remove dead index parameter from _restore and _hardDelete in admin_trash_screen | Paul Buetow |
| 2026-05-22 | Fix review issues and add widget tests for admin screens (eb) | Paul Buetow |
| 2026-05-22 | Implement AdminPermissionsScreen, RescanScreen, and TrashScreen (eb) | Paul Buetow |
| 2026-05-22 | Fix final review issues for AdminUsersScreen (task db) | Paul Buetow |
| 2026-05-22 | Fix review issues in AdminUsersScreen and related files (task db) | Paul Buetow |
| 2026-05-22 | Implement AdminUsersScreen with create/delete user and admin gating (db) | Paul Buetow |
| 2026-05-22 | Fix gb final review: SizedBox.shrink footer and shares_no_more test | Paul Buetow |
| 2026-05-22 | Fix gb review issues: _isLoadingMore stuck on refresh, empty footer space, pa... | Paul Buetow |
| 2026-05-22 | Implement infinite-scroll pagination on MediaGridScreen, episode list, and my... | Paul Buetow |
| 2026-05-22 | Add widget test for double-tap download guard in PodcastEpisodesScreen | Paul Buetow |
| 2026-05-22 | Fix bb review issues: stale snapshot, double-tap guard, button dedup, comments | Paul Buetow |
| 2026-05-22 | Add play and download buttons to PodcastEpisodesScreen (bb) | Paul Buetow |
| 2026-05-22 | Fix final review nits for Material 3 theming (task fb) | Paul Buetow |
| 2026-05-22 | Fix Material 3 theming review issues (task fb) | Paul Buetow |
| 2026-05-22 | Implement Material 3 theming with light + dark mode toggle (fb) | Paul Buetow |
| 2026-05-22 | Implement public ShareViewerScreen with Android deep-link intent-filter (9b) | Paul Buetow |
| 2026-05-21 | Implement offline progress queue with sqflite and connectivity_plus (3b) | Paul Buetow |
| 2026-05-21 | Implement podcast episode played/unplayed toggle with progress bar (cb) | Paul Buetow |
| 2026-05-21 | Implement FolderBrowserScreen with browseSet endpoint and breadcrumb navigati... | Paul Buetow |
| 2026-05-21 | Implement MySharesScreen with revoke/copy-link actions reachable from Setting... | Paul Buetow |
| 2026-05-21 | Implement all remaining PlayerApiClient stubs and add unit tests | Paul Buetow |
| 2026-05-21 | Implement NotesEditorScreen with auto-save debounce and clear confirmation (6b) | Paul Buetow |
| 2026-05-21 | Implement Tag picker with optimistic UI, autocomplete, and delete chips on Me... | Paul Buetow |
| 2026-05-21 | Wrap AudioPlayerScreen in audio_service for background playback (1b) | Paul Buetow |
| 2026-05-21 | Implement ContinueWatchingScreen with resume cards and progress routing (2b) | Paul Buetow |
| 2026-05-21 | Implement favorites toggle with optimistic UI in MediaDetailScreen and MediaG... | Paul Buetow |
| 2026-05-21 | Implement SearchFilterBar with debounce, type/favorites/sort filters for Medi... | Paul Buetow |
| 2026-05-21 | Implement PodcastListScreen and SubscribeDialog with podcast feed management ... | Paul Buetow |
| 2026-05-21 | Implement CreateShareDialog with expiry/max-uses, shareUrl abstraction (7b) | Paul Buetow |
| 2026-05-21 | Implement AudioPlayerScreen with just_audio, progress sync, and bearer auth (0b) | Paul Buetow |
| 2026-05-21 | Implement VideoPlayerScreen with chewie, progress sync, and bearer auth (za) | Paul Buetow |
| 2026-05-21 | Implement MediaDetailScreen with metadata, favorite toggle, player routing (ya) | Paul Buetow |
| 2026-05-21 | Add video/audio player packages, routes, and placeholder screens (task xa) | Paul Buetow |
| 2026-05-21 | Implement MediaGridScreen with grid, loading/empty/error states, and widget t... | Paul Buetow |
| 2026-05-21 | Implement SetsListScreen with Material 3 grid, pull-to-refresh, and widget te... | Paul Buetow |
| 2026-05-21 | Implement SettingsScreen with AuthGuard and settings persistence (sa) | Paul Buetow |
| 2026-05-21 | Add GET /api/v1/auth/count endpoint and first-run routing in Android app | Paul Buetow |
| 2026-05-21 | Implement BootstrapScreen with widget tests (qa) | Paul Buetow |
| 2026-05-20 | Implement DioPlayerApiClient with real HTTP bodies for core API methods (oa) | Paul Buetow |
| 2026-05-20 | Add go_router + Riverpod wiring and extract SOLID-clean screen/nav layers (na) | Paul Buetow |
| 2026-05-20 | Add DioClient with auth interceptors and refactor PlayerApiClient (ma) | Paul Buetow |
| 2026-05-20 | Fix PlayerApiClient const constructor and Media.tags deserialization (d9+e9) | Paul Buetow |
| 2026-05-20 | Guard dateTimeFromJson against malformed date strings (c9) | Paul Buetow |
| 2026-05-18 | Add named routes and widget smoke tests to player-android | Paul Buetow |
| 2026-05-18 | Add Android testing strategy proposal | Paul Buetow |
| 2026-05-18 | Add Dart unit tests for models and API client constructor | Paul Buetow |
| 2026-05-17 | Track player-android Flutter lockfile | Paul Buetow |
| 2026-05-17 | Complete player-android Flutter scaffold | Paul Buetow |
| 2026-05-17 | Add player-android/ Flutter skeleton | Paul Buetow |