This website requires JavaScript.
5613fec5ef
fix(flutter): PlaylistsApi.list parses {owned, public} envelope
bvandeusen and Claude Opus 4.7
2026-05-09 11:35:34 -04:00
28b07c7ef4
fix(flutter/android): permit cleartext to 127.0.0.1 for just_audio loopback proxy
bvandeusen and Claude Opus 4.7
2026-05-08 23:24:47 -04:00
83df3773ae
fix(flutter): cover URLs send Bearer auth + audio handler diag logging
bvandeusen and Claude Opus 4.7
2026-05-08 23:15:56 -04:00
088e8f4bf8
test(web/admin): align Lidarr bootstrap tests with file conventions
bvandeusen and Claude Opus 4.7
2026-05-08 23:11:35 -04:00
c47ec6093f
test(web/admin): cover Test-then-Save flow on /admin/integrations
bvandeusen and Claude Opus 4.7
2026-05-08 23:10:37 -04:00
bca8622640
feat(web/admin): Save runs Test first, dropdowns honor test response
bvandeusen and Claude Opus 4.7
2026-05-08 23:08:58 -04:00
abb384f479
feat(web/admin): LidarrTestResult success branch carries profile + folder lists
bvandeusen and Claude Opus 4.7
2026-05-08 23:08:02 -04:00
22f03a5fe8
test(server/admin): cover new test endpoint response shape
bvandeusen and Claude Opus 4.7
2026-05-08 23:07:47 -04:00
0bc17a85fb
feat(server/admin): test endpoint returns profiles + folders on success
bvandeusen and Claude Opus 4.7
2026-05-08 23:07:15 -04:00
602ef3bfdf
fix(flutter): cover URLs resolve against server baseUrl + audio stream URL guard
bvandeusen and Claude Opus 4.7
2026-05-08 22:47:25 -04:00
751c2878f7
fix(flutter/android): production manifest + AudioServiceActivity
bvandeusen and Claude Opus 4.7
2026-05-08 22:33:30 -04:00
626fc7502c
Merge pull request 'refactor(server): remove bootstrap admin path' (#34 ) from dev into main
v2026.05.08.4
bvandeusen
2026-05-09 02:19:40 +00:00
c4cccea775
refactor(server): remove bootstrap admin path
bvandeusen and Claude Opus 4.7
2026-05-08 22:14:33 -04:00
9bf3b8a2f2
Merge pull request 'feat(flutter): admin parity slice — requests, quarantine, users, invites' (#33 ) from dev into main
v2026.05.08.3
bvandeusen
2026-05-09 02:07:59 +00:00
d5c8d316c5
fix(flutter): clear analyze --fatal-infos errors from admin parity slice
bvandeusen and Claude Opus 4.7
2026-05-08 22:02:14 -04:00
9f6ceb1731
feat(flutter/admin): users screen with users + invites sections
bvandeusen and Claude Opus 4.7
2026-05-08 21:57:53 -04:00
afcaf56b9c
feat(flutter/admin): user row + edit sheet (toggles, reset, delete)
bvandeusen and Claude Opus 4.7
2026-05-08 21:57:10 -04:00
7d207e56f5
feat(flutter/admin): users + invites mutations
bvandeusen and Claude Opus 4.7
2026-05-08 21:56:34 -04:00
3e905db906
feat(flutter/admin): quarantine screen + typed-confirm sheet
bvandeusen and Claude Opus 4.7
2026-05-08 21:56:00 -04:00
bd1bcab12b
feat(flutter/admin): requests screen with approve/reject
bvandeusen and Claude Opus 4.7
2026-05-08 21:54:58 -04:00
8bb192fe54
feat(flutter/admin): adminRequestsProvider with optimistic approve/reject
bvandeusen and Claude Opus 4.7
2026-05-08 21:54:05 -04:00
408eed1f3d
feat(flutter/settings): admin card visible to admins
bvandeusen and Claude Opus 4.7
2026-05-08 21:53:35 -04:00
6b5d12f3a1
feat(flutter/admin): landing screen with section cards + counts
bvandeusen and Claude Opus 4.7
2026-05-08 21:53:03 -04:00
372e7eca86
feat(flutter/admin): API providers + adminCountsProvider
bvandeusen and Claude Opus 4.7
2026-05-08 21:52:12 -04:00
79d00ba001
feat(flutter/api): admin endpoint clients
bvandeusen and Claude Opus 4.7
2026-05-08 21:52:00 -04:00
2b595c40cd
feat(flutter): admin DTOs (request, quarantine item, user, invite)
bvandeusen and Claude Opus 4.7
2026-05-08 21:51:33 -04:00
dfc08650e7
feat(flutter): wire admin routes + isAdmin gate
bvandeusen and Claude Opus 4.7
2026-05-08 21:50:53 -04:00
fc0350cb96
feat(flutter): adopt MainAppBarActions in Search, Discover, Playlists, Settings
bvandeusen and Claude Opus 4.7
2026-05-08 21:50:29 -04:00
5546787f78
feat(flutter): adopt MainAppBarActions in Home + Library
bvandeusen and Claude Opus 4.7
2026-05-08 21:49:30 -04:00
6564d37a2a
feat(flutter): MainAppBarActions widget with admin-gated overflow
bvandeusen and Claude Opus 4.7
2026-05-08 21:48:52 -04:00
492460cf4a
Merge pull request 'fix(web): /register reachable for bootstrap admin (closes #376 )' (#32 ) from dev into main
v2026.05.08.2
bvandeusen
2026-05-08 22:01:37 +00:00
c5dc3bd256
fix(web): exempt /register from auth guard so bootstrap admin can self-register
bvandeusen and Claude Opus 4.7
2026-05-08 17:59:43 -04:00
3f2822dfc6
feat(flutter): discover screen — search Lidarr + create requests
bvandeusen
2026-05-08 14:53:06 -04:00
dfbeed01a6
feat(flutter): settings screen + 4-icon home AppBar
bvandeusen
2026-05-08 14:51:04 -04:00
1ad67dbe59
fix(flutter/test): tolerate Riverpod 3's ProviderException wrapper
bvandeusen
2026-05-08 14:43:31 -04:00
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 and Claude Opus 4.7
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 and Claude Opus 4.7
2026-05-07 20:10:18 -04:00
1cc7eb6cad
refactor(server/api): writeErr accepts error; migrate admin handlers (1/3)
bvandeusen and Claude Opus 4.7
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
2026-05-07 12:49:30 -04:00
aa67a09b80
feat(server/m7-user-mgmt): mailer package + SMTP config endpoints (U3)
bvandeusen and Claude Sonnet 4.6
2026-05-07 12:43:44 -04:00
aa73c93f85
feat(server/m7-user-mgmt): self-service /me endpoints (U3)
bvandeusen and Claude Sonnet 4.6
2026-05-07 12:38:48 -04:00
a509ec538b
feat(db/m7-user-mgmt): migration 0024 + self-service + SMTP queries (U3)
bvandeusen and Claude Sonnet 4.6
2026-05-07 12:34:44 -04:00
777e32ca24
feat(web/m7-user-mgmt): /admin/users CRUD actions (U2)
bvandeusen and Claude Sonnet 4.6
2026-05-07 12:21:23 -04:00
46d38afe2d
feat(server/m7-user-mgmt): admin user CRUD endpoints (U2)
bvandeusen and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
2026-05-07 12:06:08 -04:00
6b23532a61
feat(web/m7-user-mgmt): /register page + login link
bvandeusen and Claude Sonnet 4.6
2026-05-07 12:04:06 -04:00
bd362ab384
feat(server/m7-user-mgmt): admin endpoints (invites, users, promote/demote)
bvandeusen and Claude Sonnet 4.6
2026-05-07 12:01:16 -04:00
a449398906
feat(server/m7-user-mgmt): self-registration handler
bvandeusen and Claude Sonnet 4.6
2026-05-07 11:56:19 -04:00