Commit Graph

  • 9b3ec65476 feat(android): swipe to change Library tabs bvandeusen 2026-06-02 10:04:38 -04:00
  • b83a6a4bdb revert(android): top-nav Library icon back to Lucide.LibraryBig bvandeusen 2026-06-02 10:03:15 -04:00
  • b64965b38d Merge pull request 'Discover artwork + Library icon + notification tap routing' (#73) from dev into main bvandeusen 2026-06-02 09:58:10 -04:00
  • 4cd38aa62f fix(android): keep BaseUrlInterceptor.intercept under detekt ReturnCount bvandeusen 2026-06-02 09:50:05 -04:00
  • 438e81a117 feat(android): media-notification tap opens NowPlaying bvandeusen 2026-06-02 09:43:45 -04:00
  • faf2cac0c9 feat(android): use Material Outlined LibraryMusic for top-nav Library bvandeusen 2026-06-02 09:40:49 -04:00
  • 22dc343b39 feat(android): swap top-nav Library icon to Lucide.SquareLibrary bvandeusen 2026-06-02 09:35:58 -04:00
  • aec10ce787 fix(android): scope BaseUrlInterceptor to placeholder host only bvandeusen 2026-06-02 09:16:36 -04:00
  • bf2f9f3811 Merge pull request 'Lock Android MainActivity to portrait' (#72) from dev into main bvandeusen 2026-06-02 08:19:07 -04:00
  • b9186937b3 chore(android): lock MainActivity to portrait bvandeusen 2026-06-02 08:12:58 -04:00
  • deb726a285 Merge pull request 'Keep onPostScroll under detekt ReturnCount limit' (#71) from dev into main bvandeusen 2026-06-02 08:10:12 -04:00
  • 1004b61159 fix(android): keep onPostScroll under detekt ReturnCount limit bvandeusen 2026-06-02 08:04:21 -04:00
  • 7ede83a586 Merge pull request 'Alphabet rail page-chasing + Songs Like fix + scrubber polish' (#70) from dev into main bvandeusen 2026-06-01 23:36:07 -04:00
  • 6ac36dd334 fix(web): user-playlist play omits third arg to satisfy contract test bvandeusen 2026-06-01 23:31:45 -04:00
  • 6a7d9afdbc fix(android): latch NowPlaying drag-dismiss to prevent back-stack underflow bvandeusen 2026-06-01 23:29:36 -04:00
  • 15a545a25c feat(web): two-pane now-playing on desktop with permanent queue panel bvandeusen 2026-06-01 23:24:06 -04:00
  • b77a7121ca feat(android): restyle NowPlaying scrubber thumb to match web client bvandeusen 2026-06-01 22:40:35 -04:00
  • 74bae74f9f fix(web): songs-like play overlay + scrubber smoothing bvandeusen 2026-06-01 22:39:24 -04:00
  • d4c6bb3f2d feat(web): alphabet rail chases pages on click for unloaded letters bvandeusen 2026-06-01 22:29:13 -04:00
  • 1d7b91333f Merge pull request 'Web Library: alphabet rail always shows #/A-Z/&' (#69) from dev into main v2026.06.01 bvandeusen 2026-06-01 21:55:49 -04:00
  • ad1a000ad5 feat(web): alphabet rail always shows #/A-Z/& with disabled empty buckets bvandeusen 2026-06-01 21:47:10 -04:00
  • 883d416d26 Merge pull request 'Web Library: continuous grid + sticky alphabet rail' (#68) from dev into main bvandeusen 2026-06-01 21:36:55 -04:00
  • 93aa37c7b6 feat(web): Library — continuous grid + sticky alphabet rail bvandeusen 2026-06-01 21:23:23 -04:00
  • 09471a8f5c Merge pull request 'Web: Most Played horizontal tiles + nav centering + Library link + Search refinements' (#67) from dev into main bvandeusen 2026-06-01 21:06:03 -04:00
  • 185b8fa9b5 test(web): Shell Library link asserts /library/artists bvandeusen 2026-06-01 21:00:07 -04:00
  • 27f1cefd55 fix(web): center nav in window + Library link + Search placeholder bvandeusen 2026-06-01 20:58:05 -04:00
  • c0d5d6aebf feat(web): Most Played horizontal compact tiles + revert Rediscover bvandeusen 2026-06-01 20:55:54 -04:00
  • 7de238e91e Merge pull request 'Web Home: drop hero row + compact Rediscover tiles' (#66) from dev into main bvandeusen 2026-06-01 20:43:53 -04:00
  • d43719516e feat(web): drop hero row + compact Rediscover tiles bvandeusen 2026-06-01 20:34:21 -04:00
  • 9440c5860b Merge pull request 'Android v1 polish + Web UI flavor pass' (#65) from dev into main bvandeusen 2026-06-01 20:17:49 -04:00
  • 682d7a5ec4 test(web): scope home For-You assertions to Playlists section bvandeusen 2026-06-01 20:12:59 -04:00
  • 17b276b5f5 feat(web): hero row at top of Home (For You + most recently added) bvandeusen 2026-06-01 20:10:47 -04:00
  • 5f297c4c21 feat(web): dominant-color accent strip on PlayerBar + bigger Home tiles bvandeusen 2026-06-01 20:03:48 -04:00
  • 5b25f89c01 test(web): update AlbumCard test for dropped year line bvandeusen 2026-06-01 19:59:40 -04:00
  • a92f2c0121 feat(web): radial gradient + playlist title overlay + tile-size hierarchy bvandeusen 2026-06-01 19:57:05 -04:00
  • c9afd4f584 feat(web): card hover-reveal + drop year + accent rule on section headers bvandeusen 2026-06-01 19:54:16 -04:00
  • d99de1af27 feat(android): Recently Added → single LazyHorizontalGrid (#77) bvandeusen 2026-06-01 19:30:17 -04:00
  • 8ecb2cf553 feat(android): MiniPlayer fill bar + slim NowPlaying scrubber + smooth playhead bvandeusen 2026-06-01 19:27:17 -04:00
  • c23df8d8af fix(android): stop Home Crossfade firing on every section emission (#1) bvandeusen 2026-06-01 19:17:11 -04:00
  • 3d52f271a0 fix(android): collapse onPostScroll branches (detekt ReturnCount) bvandeusen 2026-06-01 19:14:39 -04:00
  • 2b9b4c1db6 fix(android): NowPlaying drag-down dismiss via NestedScroll (#2) bvandeusen 2026-06-01 19:09:59 -04:00
  • 5366cd5634 fix(android): merge AudioPrefetcher continue guards (detekt LoopWithTooManyJumpStatements) bvandeusen 2026-06-01 19:07:43 -04:00
  • 8df41c3bed feat(android): AudioPrefetcher pre-downloads next-N tracks into SimpleCache bvandeusen 2026-06-01 19:02:27 -04:00
  • 082d31bfa9 Merge pull request 'ci: chain APK build → image build via needs (fix race, kill polling)' (#64) from dev into main bvandeusen 2026-06-01 18:31:12 -04:00
  • 31ad650329 ci: chain APK build → image build via needs (fix race) bvandeusen 2026-06-01 18:30:53 -04:00
  • 8847b43d9e Merge pull request 'ci(android): make APK attach failures visible (debug v2026.06.01 missing asset)' (#63) from dev into main bvandeusen 2026-06-01 18:13:43 -04:00
  • 734275f05b ci(android): make APK attach failures visible (set -euxo + HTTP code) bvandeusen 2026-06-01 18:13:25 -04:00
  • 09cc810e5a Merge pull request 'ci: pin upload-artifact to v3 (Gitea GHES-mode incompatible with v4)' (#62) from dev into main bvandeusen 2026-06-01 17:38:24 -04:00
  • be3436b931 ci: pin upload-artifact to v3 (Gitea GHES-mode incompatible with v4) bvandeusen 2026-06-01 17:34:09 -04:00
  • 2534384ed1 Merge pull request 'fix(android): remove WorkManager auto-initializer (lintVitalRelease)' (#61) from dev into main bvandeusen 2026-06-01 16:55:52 -04:00
  • f080afc38c fix(android): remove WorkManager auto-initializer (lintVitalRelease) bvandeusen 2026-06-01 16:55:29 -04:00
  • 9ff1b30e3f Merge pull request 'fix(docker): bump builder to go 1.25 to match go.mod' (#60) from dev into main bvandeusen 2026-06-01 16:13:43 -04:00
  • 3bcc7f3eb3 fix(docker): bump builder from go 1.23 to 1.25 (matches go.mod) bvandeusen 2026-06-01 16:13:20 -04:00
  • c01853577b Merge pull request 'Release: web UX overhaul + Android native port + server polish' (#59) from dev into main bvandeusen 2026-06-01 16:11:21 -04:00
  • 90bfcaa388 ci: drop pull_request triggers + add cancel-in-progress concurrency bvandeusen 2026-06-01 14:39:09 -04:00
  • 8db488b8ab ci: switch tag scheme to per-day mutable vYYYY.MM.DD bvandeusen 2026-06-01 14:35:02 -04:00
  • 906eb80ce5 ci: publish :latest from main + native APK as minstrel-<tag>.apk bvandeusen 2026-06-01 14:30:07 -04:00
  • c466e6c317 feat(web): crossfade between tracks (Tier C11) bvandeusen 2026-06-01 14:22:30 -04:00
  • 9fc21d217a feat(web): keyboard reorder on playlist tracks (Tier C10) bvandeusen 2026-06-01 14:16:27 -04:00
  • cc81e0f183 feat(web): copy-link button on owned public playlists (Tier C12) bvandeusen 2026-06-01 14:13:05 -04:00
  • 859aff8d30 feat(web): smart empty-states with action affordances (Tier B6) bvandeusen 2026-06-01 13:53:38 -04:00
  • be7be6f617 feat(web): quick-filter on Library tabs (Tier B5) bvandeusen 2026-06-01 13:48:05 -04:00
  • fd12a145c8 feat(web): multi-select + bulk actions on track lists (Tier A3) bvandeusen 2026-06-01 11:41:29 -04:00
  • bbc1036f77 fix(web): update PlayerBar test for /now-playing cover link bvandeusen 2026-06-01 11:32:46 -04:00
  • a2466b7d9a feat(web): full-screen NowPlaying view bvandeusen 2026-06-01 11:30:07 -04:00
  • 5393174a27 feat(web): surface secondary system playlists on Home bvandeusen 2026-06-01 11:25:25 -04:00
  • e5c82c56c6 fix(web): align shortcut tests with the actual playQueue state bvandeusen 2026-06-01 11:21:35 -04:00
  • 4362233d7c feat(web): global keyboard shortcuts (Space/J/L/M/Arrows//) bvandeusen 2026-06-01 11:17:59 -04:00
  • 6e6fbc7856 feat(web): top-bar centered nav + Library tab page (replace sidebar) bvandeusen 2026-06-01 10:07:02 -04:00
  • 9dc707f1c8 fix(web): pagehide reads player.position directly + drop brittle duration assertion bvandeusen 2026-06-01 08:46:07 -04:00
  • ad8b0407c6 fix(web): use FileReader to decode beacon Blob in events test bvandeusen 2026-06-01 08:41:45 -04:00
  • d0265dff6a feat(web): backflow play-event server-side classification bvandeusen 2026-06-01 08:38:54 -04:00
  • d82e744d87 feat(android): move skip classification from client to server bvandeusen 2026-06-01 08:32:05 -04:00
  • eb4537c013 fix(android): drop unused navController from ShellScaffold bvandeusen 2026-06-01 08:17:24 -04:00
  • 487400fab6 fix(android): share playlist play conversion + filter unplayable rows bvandeusen 2026-06-01 08:15:29 -04:00
  • 5c2011e6f4 fix(android): remove kebab from MiniPlayer to free space for artist line bvandeusen 2026-06-01 08:07:48 -04:00
  • ef8374753a feat(android): denser Most Played tiles - horizontal row matching Flutter bvandeusen 2026-06-01 08:00:47 -04:00
  • 7b619152ab fix(android): periodic position polling for smooth seek bar bvandeusen 2026-06-01 02:21:52 -04:00
  • 5b050022f1 feat(android): filled heart for liked state, outlined for unliked bvandeusen 2026-06-01 02:10:21 -04:00
  • 25c5b80add fix(android): populate streamUrl in CachedTrackEntity to domain mapper bvandeusen 2026-06-01 01:55:18 -04:00
  • 1fdc5b0a1f fix(android): import Arrangement in HomeScreen for Most Played grid bvandeusen 2026-06-01 01:43:32 -04:00
  • 582137790d feat(android): Most Played to 3-row dense layout matching web bvandeusen 2026-06-01 01:38:10 -04:00
  • 54903c4760 fix(recommendation): drop user_id from Rediscover daily hash to preserve sqlc type inference bvandeusen 2026-06-01 01:03:45 -04:00
  • 8b586c2e50 feat(recommendation): rework Rediscover - track-derived eligibility + daily rotation + caps bvandeusen 2026-06-01 00:57:40 -04:00
  • bf61d6cfa3 feat(android): surface secondary system playlists on Home + drop dead todays_mix label bvandeusen 2026-06-01 00:39:51 -04:00
  • 741ce1fa07 fix(android): extract PlaylistCardCover to clear detekt LongMethod bvandeusen 2026-05-31 23:51:59 -04:00
  • f17610ecd5 feat(android): port play-button overlay to Home tiles bvandeusen 2026-05-31 23:45:48 -04:00
  • 5a502c12c9 chore: untrack CLAUDE.md, gitignore AI-tool instruction files bvandeusen 2026-05-31 23:31:48 -04:00
  • f482d0d2fa ci(android): switch upload-artifact to actions/v4 + retire flutter.yml bvandeusen 2026-05-31 23:18:31 -04:00
  • 3cf829752b chore(ci): migrate workflows to gitea + consolidate keystore secret bvandeusen 2026-05-31 23:05:03 -04:00
  • 96caac2f06 fix(android): suppress MatchingDeclarationName on PlaylistsListScreen (VM colocated) bvandeusen 2026-05-30 22:59:50 -04:00
  • fa90d6d6c5 refactor(android): extract asCacheFirstStateFlow helper (DRY 3d) bvandeusen 2026-05-30 22:56:22 -04:00
  • 453f8a387b fix(android): remove duplicate TrackActions snackbar wiring (DRY 3c) bvandeusen 2026-05-30 22:38:48 -04:00
  • 02a6c45958 refactor(android): extract MinstrelTopAppBar (DRY 3b) bvandeusen 2026-05-30 16:00:21 -04:00
  • 2b17a4ed69 fix(android): AddToPlaylist routes empty list through UiState.Empty bvandeusen 2026-05-30 14:29:50 -04:00
  • a52fdc7d5d fix(android): rename LibraryUiState.kt to LibraryData.kt (detekt MatchingDeclarationName) bvandeusen 2026-05-30 14:06:21 -04:00
  • 810e3126c2 refactor(android): migrate 8 per-screen UiStates to shared UiState<T> bvandeusen 2026-05-30 14:03:39 -04:00
  • 587baf4a79 refactor(android): add generic shared/UiState<T> sealed type bvandeusen 2026-05-30 11:33:42 -04:00
  • 730176b1ed fix(android): restore Alignment import in ArtistCard (Column horizontalAlignment) bvandeusen 2026-05-30 10:50:52 -04:00
  • b71f9c239e fix(android): NowPlaying action row above the scrubber for Flutter parity bvandeusenandClaude Opus 4.7 2026-05-30 02:32:25 -04:00