Commit Graph

  • da1cb7b590 feat(flutter): queue screen + skipToQueueItem support bvandeusen 2026-05-08 14:42:10 -04:00
  • 66545bf8c3 feat(flutter): library screen with 5 tabs (Artists/Albums/History/Liked/Hidden) bvandeusen 2026-05-08 14:40:26 -04:00
  • 5541171e94 feat(flutter): playlists list + detail screens bvandeusen 2026-05-08 14:33:53 -04:00
  • 147d6e280e feat(flutter): bump deps to latest + Search screen slice bvandeusen 2026-05-08 14:30:01 -04:00
  • 1b3f2e254b docs(readme): use :latest in quickstart compose instead of pinned tag bvandeusen 2026-05-08 13:50:53 -04:00
  • 1c775905d7 Release v2026.05.08.1 — DRY pass + cover-art HTTP base (#31) v2026.05.08.1 bvandeusen 2026-05-08 17:45:41 +00:00
  • 4f669c26e9 fix(coverart/test): set MinInterval in rate-limit-serialization tests bvandeusen 2026-05-08 13:21:45 -04:00
  • b5a138bb27 fix(server): repair recursive withUser, gofmt 2 files (golangci-lint) bvandeusen 2026-05-08 12:05:35 -04:00
  • 6a444334ea fix(server/api/test): drop unused 'context' imports A3 sed left behind bvandeusen 2026-05-08 11:29:36 -04:00
  • 3e263657c6 refactor(web): hoist .play-overlay CSS to app.css; remove triplicated <style> blocks (C2) bvandeusen 2026-05-08 11:28:58 -04:00
  • efef9934d4 refactor(web): migrate 4 open-coded cover URL sites to coverUrl() helper (C1 small-win) bvandeusen 2026-05-08 11:26:26 -04:00
  • 47c316e211 fix(web/test): restore named-mock svelte-query overrides B3 stripped (integrations + requests) bvandeusen 2026-05-08 11:26:19 -04:00
  • 5a174c9ef0 refactor(web): converge PlaylistTrackRow drag-reorder onto @neodrag/svelte (B4) bvandeusen 2026-05-08 11:22:23 -04:00
  • 3e34f1f7b3 refactor(web/test): default svelte-query mock in vitest.setup; remove from 34 files (B3) bvandeusen 2026-05-08 11:08:41 -04:00
  • 923b8286ee fix(server/api/test): retype callRadio user param to dbq.User for withUser helper bvandeusen 2026-05-08 11:05:25 -04:00
  • 909b36d5ad refactor(web/auth): extract user state to break auth<->player cycle (B2) bvandeusen 2026-05-08 10:49:39 -04:00
  • 68af48bb37 refactor(web/theme): read meta-theme hex from tokens.json (B1) bvandeusen 2026-05-08 10:48:03 -04:00
  • 4ce7be4296 fix(server): repair go vet failures from A1+A2 cleanup (orphan imports + needle deref) bvandeusen 2026-05-08 10:46:43 -04:00
  • c81491164a refactor(server/api/test): withUser helper; migrate 51 context-value sites (A3) bvandeusen 2026-05-08 10:39:11 -04:00
  • bf90a3a868 refactor(server/api): migrate admin_smtp/admin_tracks + playlist refresh preludes (A2 6/N) bvandeusen 2026-05-08 10:18:35 -04:00
  • 9dd5da514c refactor(server/api): migrate me/* + events preludes (A2 5/N) bvandeusen 2026-05-08 08:44:50 -04:00
  • 79c3ec3659 refactor(server/api): migrate library/suggestions/radio/home preludes (A2 4/N) bvandeusen 2026-05-08 08:43:36 -04:00
  • dde3dd2804 refactor(server/api): migrate requests/quarantine/me_token/listenbrainz/admin_invites preludes (A2 3/N) bvandeusen 2026-05-08 08:26:43 -04:00
  • 8cd8825efc refactor(server/api): migrate likes.go + playlists.go preludes (A2 2/N) bvandeusen 2026-05-08 08:20:33 -04:00
  • c6f5706535 refactor(server/api): prelude helpers (requireUser/requireURLUUID/decodeBody); migrate admin_users.go (A2 1/N) bvandeusen 2026-05-08 08:17:35 -04:00
  • bffa397250 refactor(server/sql): unify *ForUser track queries via nullable user_id (A1) bvandeusen 2026-05-08 08:15:19 -04:00
  • b1ef3c3688 feat(web/flutter): expand error-copy map with auth + validation + 404 codes bvandeusen 2026-05-08 07:58:54 -04:00
  • 1ad966b7f3 fix(coverart/test): use newHTTPClient in provider test fixtures bvandeusen 2026-05-08 07:58:00 -04:00
  • 038d737ae7 refactor(coverart/theaudiodb): delegate HTTP plumbing to httpClient (C1 3/3) bvandeusen 2026-05-08 07:54:45 -04:00
  • 3d5e816c5f refactor(coverart/deezer): delegate HTTP plumbing to httpClient (C1 2/3) bvandeusen 2026-05-08 07:53:09 -04:00
  • 13680221de refactor(coverart/lastfm): delegate HTTP plumbing to httpClient (C1 1/3) bvandeusen 2026-05-08 07:52:28 -04:00
  • b4edda5518 feat(coverart): shared httpClient for provider HTTP plumbing (C1 prep) bvandeusen 2026-05-08 07:51:33 -04:00
  • 6d16aa2de4 refactor(web/api): offsetGetNextPageParam helper; paging sites migrated (W4) bvandeusen 2026-05-08 07:33:07 -04:00
  • c41bc5a99d fix(web/test): mount ToastHost in vitest setup so toast assertions resolve bvandeusen 2026-05-08 07:29:32 -04:00
  • 617477b702 refactor(web): pushToast store + ToastHost; 8 sites migrated (W3) bvandeusen 2026-05-08 05:45:34 -04:00
  • 970752a153 refactor(web): Modal component; admin + discover modals migrated (W2) bvandeusen 2026-05-08 05:37:58 -04:00
  • 92813ba1bb fix(server/api): silence unused-parameter lint in resolve_test fakes bvandeusen 2026-05-07 22:18:40 -04:00
  • 9c91a342e2 refactor(web/api): errCode + errMessage helpers; 41 sites migrated (W1) bvandeusen 2026-05-07 22:17:45 -04:00
  • 965df28127 refactor(server): audit.WriteOrLog wrapper; migrate 13 sites (T5) bvandeusen 2026-05-07 21:33:14 -04:00
  • 49218e5231 refactor(server/api): resolveByID helper for parseUUID->fetch->404 (T4) bvandeusen 2026-05-07 21:28:20 -04:00
  • 754a7955cc refactor(server): final writeErr migration + ErrNotFound aliases (T3c) bvandeusen 2026-05-07 21:19:35 -04:00
  • 91f4f5c18a refactor(server/api): migrate library/media handlers to writeErr(err) (T3b) bvandeusen 2026-05-07 20:48:20 -04:00
  • e382b0d718 refactor(server/api): migrate auth/me handlers to writeErr(err) (T3a) bvandeusen 2026-05-07 20:25:26 -04:00
  • 58766dbebe fix(server/api): preserve 500-class messages via apierror.InternalMsg bvandeusen 2026-05-07 20:10:18 -04:00
  • 1cc7eb6cad refactor(server/api): writeErr accepts error; migrate admin handlers (1/3) bvandeusen 2026-05-07 19:48:25 -04:00
  • c919650606 feat(server/apierror): typed Error + sentinels for /api/* envelope bvandeusen 2026-05-07 19:31:02 -04:00
  • 045ba6975f feat(server/m7-user-mgmt): U2.5 auto-approve handler wiring bvandeusen 2026-05-07 18:46:01 -04:00
  • 081b8e62d5 fix(web): a11y + reactivity warnings (paying down accumulated warnings) bvandeusen 2026-05-07 18:38:44 -04:00
  • 042f9919fe fix(server/playlists): redistributeSlots double-counting + tieBreakHash avalanche bvandeusen 2026-05-07 18:33:06 -04:00
  • e4ebc71162 fix(ci): mailer + audit lint + settings Save button collision bvandeusen 2026-05-07 18:15:22 -04:00
  • 444144038a fix(ci): library_test Mount arg + 4 web test selectors + forgot-pw catch bvandeusen 2026-05-07 18:05:30 -04:00
  • 9ed576a029 fix(ci): pgconn import path + reset-password token type + SMTP label bvandeusen 2026-05-07 17:48:44 -04:00
  • 5da2c85f70 feat(web/m7-user-mgmt): /reset-password page + admin SMTP card + tests (U3-T5b) bvandeusen 2026-05-07 17:43:47 -04:00
  • 72f46a885b feat(web/m7-user-mgmt): /settings expansion + /forgot-password (U3-T5a) bvandeusen 2026-05-07 17:33:48 -04:00
  • cbe838cbe3 feat(server/m7-user-mgmt): forgot + reset password endpoints (U3) bvandeusen 2026-05-07 12:49:30 -04:00
  • aa67a09b80 feat(server/m7-user-mgmt): mailer package + SMTP config endpoints (U3) bvandeusen 2026-05-07 12:43:44 -04:00
  • aa73c93f85 feat(server/m7-user-mgmt): self-service /me endpoints (U3) bvandeusen 2026-05-07 12:38:48 -04:00
  • a509ec538b feat(db/m7-user-mgmt): migration 0024 + self-service + SMTP queries (U3) bvandeusen 2026-05-07 12:34:44 -04:00
  • 777e32ca24 feat(web/m7-user-mgmt): /admin/users CRUD actions (U2) bvandeusen 2026-05-07 12:21:23 -04:00
  • 46d38afe2d feat(server/m7-user-mgmt): admin user CRUD endpoints (U2) bvandeusen 2026-05-07 12:17:14 -04:00
  • 6b07eaa44d feat(db/m7-user-mgmt): migration 0023 + admin-user CRUD queries bvandeusen 2026-05-07 12:12:18 -04:00
  • 97d4dce7ee feat(web/m7-user-mgmt): /admin/users page + AdminTabs entry bvandeusen 2026-05-07 12:06:08 -04:00
  • 6b23532a61 feat(web/m7-user-mgmt): /register page + login link bvandeusen 2026-05-07 12:04:06 -04:00
  • bd362ab384 feat(server/m7-user-mgmt): admin endpoints (invites, users, promote/demote) bvandeusen 2026-05-07 12:01:16 -04:00
  • a449398906 feat(server/m7-user-mgmt): self-registration handler bvandeusen 2026-05-07 11:56:19 -04:00
  • 4845628ae4 feat(db/m7-user-mgmt): migration 0022 + audit helper bvandeusen 2026-05-07 11:51:00 -04:00
  • e48d84cde1 feat(web/playlists): For-You tile play button refreshes and plays bvandeusen 2026-05-07 10:40:23 -04:00
  • 54c40c18be feat(server/playlists): manual For-You refresh endpoint bvandeusen 2026-05-07 10:37:12 -04:00
  • 0bfd51a149 feat(server/playlists): For-You head+tail + diversity caps bvandeusen 2026-05-07 10:34:39 -04:00
  • ac774f09fc fix(server/playlists): dedupe covers in playlist cover collage bvandeusen 2026-05-07 10:29:05 -04:00
  • b20738f925 feat(web/playlists): Discover refresh button (detail + home kebab) bvandeusen 2026-05-07 08:44:33 -04:00
  • 0ba31c7816 feat(server/playlists): manual Discover refresh endpoint bvandeusen 2026-05-07 08:39:26 -04:00
  • f77a0699ec feat(server/playlists): Discover system playlist bvandeusen 2026-05-07 08:35:54 -04:00
  • a98a106f6f feat(db/m7-discover): migration 0021 + bucket queries bvandeusen 2026-05-07 08:31:17 -04:00
  • 735383fb1d feat(server/playlists): generate cover collages for system playlists bvandeusen 2026-05-07 08:14:13 -04:00
  • e1d544f59f feat(server/coverart): embedded album art extraction bvandeusen 2026-05-07 08:05:56 -04:00
  • c53bcb6c99 feat(server/web/coverart): manual Re-search missing art button bvandeusen 2026-05-07 07:59:40 -04:00
  • 8f5ec4c304 feat(server/coverart): auto-bump version on registered-provider change bvandeusen 2026-05-07 07:55:07 -04:00
  • 238920540f feat(server/coverart): Last.fm artist + album provider bvandeusen 2026-05-07 07:51:56 -04:00
  • 8f8e88c8b9 feat(server/coverart): Deezer artist + album provider bvandeusen 2026-05-07 07:48:02 -04:00
  • 425f12db38 refactor(server/coverart): provider interface takes ArtistRef/AlbumRef bvandeusen 2026-05-07 07:44:34 -04:00
  • 9a705d0ba4 feat(db/m7-art-providers): migration 0020 + provider-hash queries bvandeusen 2026-05-07 07:39:02 -04:00
  • d57004b085 feat(web/admin): sticky tabs at top of admin scroll container bvandeusen 2026-05-07 06:53:06 -04:00
  • 126d4e53aa feat(server/coverart): batch summary log with category breakdown bvandeusen 2026-05-06 23:30:21 -04:00
  • bd4f5d3818 feat(server/coverart): album sidecar falls back to managed cache bvandeusen 2026-05-06 23:29:27 -04:00
  • 5207fae653 fix(deploy): writable data_dir in container + fatal-on-mkdir bvandeusen 2026-05-06 23:28:54 -04:00
  • 876f994904 fix(server/m7-recurring-scans): early-return in TryStartScan reap branch bvandeusen 2026-05-06 23:03:21 -04:00
  • 837db5c929 test(server/m7-recurring-scans): TZ-tolerant next-fire assertion bvandeusen 2026-05-06 22:59:23 -04:00
  • 6a2697518f feat(web/m7-recurring-scans): admin Scan schedule section bvandeusen 2026-05-06 22:31:11 -04:00
  • 0cc3d6255d feat(web/m7-recurring-scans): scan-schedule API client + query bvandeusen 2026-05-06 22:28:22 -04:00
  • b650a121b5 feat(server/m7-recurring-scans): admin schedule HTTP handlers bvandeusen 2026-05-06 22:26:16 -04:00
  • 4607ce6db4 feat(server/m7-recurring-scans): Scheduler goroutine + boot wiring bvandeusen 2026-05-06 22:20:56 -04:00
  • 8784e938bd feat(server/m7-recurring-scans): TryStartScan helper + reaper bvandeusen 2026-05-06 22:15:19 -04:00
  • e27d030e68 feat(db/m7-recurring-scans): migration 0019 + sqlc queries bvandeusen 2026-05-06 22:12:27 -04:00
  • 6e985cf532 fix(server/m7-scan-progress): forward-fix CI — ScanTrigger interface bvandeusen 2026-05-06 21:26:36 -04:00
  • 3b2d1009cd feat(web/m7-scan-progress): StageBadge + 4-card layout updates bvandeusen 2026-05-06 21:19:53 -04:00
  • a368c74a9a feat(web/m7-scan-progress): stageState inference + tests bvandeusen 2026-05-06 21:16:30 -04:00
  • 3e9e46f190 feat(server/m7-scan-progress): wire stagePublisher into 4 scan stages bvandeusen 2026-05-06 21:14:50 -04:00
  • 7b9ea131a2 feat(server/m7-scan-progress): stagePublisher helper bvandeusen 2026-05-06 21:10:33 -04:00
  • 34888c5181 fix(server/m7-cover-sources): forward-fix CI — last unused r bvandeusen 2026-05-06 18:30:46 -04:00