Commit Graph

  • 5f3905f2c7 feat(android): UPnP picker foundation (UPnP slice 3/6) bvandeusenandClaude Opus 4.7 2026-06-03 11:51:11 -04:00
  • e774097fd8 feat(server): POST /api/cast/stream-token + secret bootstrap (UPnP slice 2/6) bvandeusenandClaude Opus 4.7 2026-06-03 11:46:57 -04:00
  • 236637fcd3 feat(server): HMAC stream token auth path (UPnP slice 1/6) bvandeusen 2026-06-03 11:34:02 -04:00
  • d7fe515940 fix(android): output picker CI - passive discovery + LongMethod bvandeusen 2026-06-03 10:49:32 -04:00
  • 8258b6c29f feat(android): NowPlaying output-picker integration bvandeusen 2026-06-03 10:42:30 -04:00
  • d10113db54 fix(android): output picker - add Settings icon to permission hint bvandeusen 2026-06-03 10:39:05 -04:00
  • a319e3f66d feat(android): output picker Compose UI - chip + sheet bvandeusen 2026-06-03 10:35:48 -04:00
  • 692d9dab60 feat(android): OutputPickerViewModel - sheet lifecycle + selection bvandeusen 2026-06-03 10:33:06 -04:00
  • 087486d253 feat(android): OutputPickerController - MediaRouter facade bvandeusen 2026-06-03 10:30:23 -04:00
  • 0662c9d5cc feat(android): output picker foundation - mediarouter + OutputRoute bvandeusen 2026-06-03 10:27:02 -04:00
  • e69a5204db fix(android): PlayerController.setQueue dispatches to controller thread bvandeusen 2026-06-03 09:48:38 -04:00
  • 4be7e47584 chore(android): drop redundant !! on PlaylistRef.systemVariant bvandeusen 2026-06-03 09:38:24 -04:00
  • 551bbf83c2 feat(android): wire MediaSession like button + reactive state bvandeusen 2026-06-03 09:28:37 -04:00
  • 43754d03c4 revert(android): drop LikeMediaCallback JVM tests + testOptions flag bvandeusen 2026-06-03 09:19:37 -04:00
  • 7807e31b22 fix(android): testOptions isReturnDefaultValues = true bvandeusen 2026-06-03 09:11:59 -04:00
  • 9a7cfac7f8 fix(android): LikeMediaCallback ReturnCount — extract toggle helper bvandeusen 2026-06-03 07:40:33 -04:00
  • d37ef56bb1 feat(android): LikeMediaCallback for media-session like button bvandeusen 2026-06-02 23:48:25 -04:00
  • ad7e57fe66 feat(android): scrubber thumb pill — fixes off-center perception bvandeusen 2026-06-02 22:48:40 -04:00
  • d9b2dd957c Merge pull request 'fix(android): interceptor order — auth before baseUrl (hotfix for v2026.06.02)' (#76) from dev into main v2026.06.02 bvandeusen 2026-06-02 22:07:32 -04:00
  • 94b3b87785 fix(android): interceptor order — auth before baseUrl bvandeusen 2026-06-02 21:47:53 -04:00
  • 46dcd38fd8 Merge pull request 'Drift audit 2026-06-02 — 26 findings shipped' (#75) from dev into main bvandeusen 2026-06-02 19:21:53 -04:00
  • cb2f9a2ea2 fix(server): GC test seeds tracks with file_size + file_format bvandeusen 2026-06-02 19:04:00 -04:00
  • 305d4780ac fix(server): TestGcCloseStalePlayEvents seeds artist with sort_name bvandeusen 2026-06-02 18:47:31 -04:00
  • dbcadf0f93 fix(android): drift #576 — LikesRepository uses real userId, clears on switch bvandeusen 2026-06-02 18:35:54 -04:00
  • 258bc1f75c feat(server): drift audit batch 7 — periodic GC worker for 5 lifecycle gaps bvandeusen 2026-06-02 18:32:22 -04:00
  • bda0896d82 docs(server): drift #572 — delete.go honest about missing reconcile bvandeusen 2026-06-02 18:26:45 -04:00
  • 413d729711 fix(web): drift audit batch 5 — SSR redirect + radio exclude cap bvandeusen 2026-06-02 18:25:52 -04:00
  • b970b87343 fix(server): drift #578 — /api/me returns profile shape with display_name + email bvandeusen 2026-06-02 18:24:23 -04:00
  • 5014f7548e fix: drift audit batch 3b — cold-boot resume correctness bvandeusen 2026-06-02 18:21:39 -04:00
  • b19c621743 fix: drift audit batch 3a — Android offline correctness bvandeusen 2026-06-02 18:18:59 -04:00
  • fb3116d640 fix: drift audit batch 2 — patterned fixes mirroring prior work bvandeusen 2026-06-02 18:16:29 -04:00
  • 47d2f61161 fix: drift audit batch 1 — six small mechanical wins bvandeusen 2026-06-02 18:11:25 -04:00
  • 7838038047 Merge pull request 'Playback errors slice + scrubber polish + various polish' (#74) from dev into main bvandeusen 2026-06-02 14:14:11 -04:00
  • 9f0af9c24b feat(android): CI-injected versionName with commit-count iteration bvandeusen 2026-06-02 14:07:57 -04:00
  • 76e64fd022 fix(android): close PlaybackErrorsApi kdoc — Kotlin nested-comment trap bvandeusen 2026-06-02 11:51:19 -04:00
  • 337fce83a1 fix(android): satisfy detekt — ReturnCount + LongMethod refactors bvandeusen 2026-06-02 11:45:45 -04:00
  • de61305fde feat(web): admin playback-errors inbox bvandeusen 2026-06-02 11:34:46 -04:00
  • 99e1df4920 feat(android): detect zero-duration tracks, fail fast, report to server bvandeusen 2026-06-02 11:30:35 -04:00
  • 15b59a214d feat(server): playback_errors table + admin inbox endpoints bvandeusen 2026-06-02 11:25:50 -04:00
  • 6a54d074fd revert(android): drop NowPlaying scrubber height clamp bvandeusen 2026-06-02 10:28:27 -04:00
  • d9c7aae268 feat(android): slim NowPlaying scrubber — 4dp track + tight slider bvandeusen 2026-06-02 10:24:31 -04:00
  • 5fd1a5724a fix(android): always use dominant swatch for NowPlaying background bvandeusen 2026-06-02 10:24:19 -04:00
  • 516d22fc73 feat(android): Start Radio preserves current playback, queues after bvandeusen 2026-06-02 10:09:00 -04:00
  • 1fdd785ee5 fix(android): key UiState Crossfades on state::class to stop refresh flicker bvandeusen 2026-06-02 10:07:10 -04:00
  • 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