-
65651510fb
feat(web): add chevron + aria affordances to user-menu button

bvandeusenandClaude Opus 4.7
2026-05-01 22:54:14 -04:00
-
7b1cd50cb9
fix(web): user-menu links navigate client-side, not via full reload

bvandeusenandClaude Opus 4.7
2026-05-01 22:51:05 -04:00
-
a5a6a10c7b
fix(web): give user-menu dropdown z-50 so clicks don't fall through

bvandeusenandClaude Opus 4.7
2026-05-01 22:36:03 -04:00
-
45793779df
feat(web): infinite scroll on /library/artists and /library/albums

bvandeusenandClaude Opus 4.7
2026-05-01 22:30:24 -04:00
-
22ac86f200
feat(web): trim main nav; pair Discover+Requests; move chrome to user menu

bvandeusenandClaude Opus 4.7
2026-05-01 22:23:56 -04:00
-
14c1895beb
feat(web): flatten admin shell — horizontal tabs, drop redundant banner

bvandeusenandClaude Opus 4.7
2026-05-01 22:14:39 -04:00
-
4b088e6b6f
feat(server): slog request log + log dropped Lidarr ping errors

bvandeusenandClaude Opus 4.7
2026-05-01 22:10:04 -04:00
-
0c5c10d00b
fix(server): drop duplicate /api/admin route mount that shadowed api.Mount endpoints

bvandeusenandClaude Opus 4.7
2026-05-01 22:05:15 -04:00
-
a598ea1418
feat(web): move Hidden tracks out of main nav, surface from Settings

bvandeusenandClaude Opus 4.7
2026-05-01 21:14:01 -04:00
-
4e47b2e7f5
feat(web): pair scroll arrows beside section title; bleed scroller to viewport edge
bvandeusen
2026-05-01 21:05:16 -04:00
-
4412a4af0c
feat(web): update nav (Home/Artists/Albums); retire ArtistRow

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:27:53 -04:00
-
3d0a42865e
feat(web): add /library/albums wrapping-grid page

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:26:02 -04:00
-
dae08cd71a
feat(web): add /library/artists wrapping-grid page

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:24:48 -04:00
-
7d09e605cc
feat(web): rewrite / as home page composing 4 horizontal-scroll sections

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:23:20 -04:00
-
cf18d51394
feat(web): add AlphabeticalGrid wrapper with letter dividers

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:21:34 -04:00
-
0586483a42
feat(web): add CompactTrackCard for Most played rows

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:19:16 -04:00
-
c7e7dd269b
feat(web): add ArtistCard (circular) with play-shuffle overlay

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:18:05 -04:00
-
b5741e59b7
feat(web): polish AlbumCard with FabledSword tokens + play overlay

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:16:43 -04:00
-
8f5eb21094
feat(web): add HorizontalScrollRow component

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:15:10 -04:00
-
e674869e06
feat(web): add home/albums/artists API clients for M6a

bvandeusenandClaude Sonnet 4.6
2026-05-01 20:13:49 -04:00
-
b1f2227d62
feat(web): extend ArtistRef/AlbumRef + add HomePayload + new query keys

bvandeusenandClaude Opus 4.7
2026-05-01 20:12:25 -04:00
-
c5e42ec8c2
feat(api): wire M6a routes; alpha artist list uses covers query

bvandeusenandClaude Sonnet 4.6
2026-05-01 18:10:04 -04:00
-
2aecbba2ef
feat(api): add GET /api/artists/{id}/tracks handler

bvandeusenandClaude Sonnet 4.6
2026-05-01 18:06:15 -04:00
-
fc12532dee
feat(api): add GET /api/library/albums handler

bvandeusenandClaude Sonnet 4.6
2026-05-01 18:00:59 -04:00
-
00804cb974
feat(api): add GET /api/home composite handler

bvandeusenandClaude Sonnet 4.6
2026-05-01 17:58:59 -04:00
-
1abaf15051
feat(api): extend ArtistRef/AlbumRef + add HomePayload for M6a
bvandeusen
2026-05-01 17:56:19 -04:00
-
302a15a209
test(recommendation): fix mislabeled compile-time assert in home tests

bvandeusenandClaude Opus 4.7
2026-05-01 17:54:40 -04:00
-
d25b1f9291
feat(recommendation): add HomeData composite service for /api/home

bvandeusenandClaude Sonnet 4.6
2026-05-01 09:06:43 -04:00
-
b31723c5e2
feat(db): add M6a library-list + artist-tracks queries

bvandeusenandClaude Sonnet 4.6
2026-05-01 09:03:10 -04:00
-
5ed3c20b74
feat(db): add M6a rediscover queries (albums + artists, with fallbacks)

bvandeusenandClaude Sonnet 4.6
2026-05-01 09:00:20 -04:00
-
10c84a536e
feat(db): add M6a home-section queries (recently added, most played, last played)

bvandeusenandClaude Sonnet 4.6
2026-05-01 08:56:53 -04:00
-
fd77217b7c
docs: add M6a home page implementation plan

bvandeusenandClaude Opus 4.7
2026-05-01 08:32:00 -04:00
-
fd053e76ca
docs: add M6a home page redesign + library relocation spec

bvandeusenandClaude Opus 4.7
2026-05-01 08:07:37 -04:00
-
cd2ff648d0
Merge pull request 'M5a frontend + M5b quarantine + M5c suggestions' (#30) from dev into main
bvandeusen
2026-05-01 11:14:18 +00:00
-
-
2f3326aee6
feat(web): suggestion feed on /discover (search-empty default)
bvandeusen
2026-05-01 06:51:41 -04:00
-
7f18a04161
feat(web): DiscoverResultCard attribution prop for M5c suggestions
bvandeusen
2026-05-01 06:25:42 -04:00
-
95b706836d
feat(web): API client for /api/discover/suggestions
bvandeusen
2026-05-01 06:24:21 -04:00
-
ae2d69d378
feat(api): /api/discover/suggestions handler
bvandeusen
2026-05-01 06:23:08 -04:00
-
277898a49a
feat(recommendation): SuggestArtists service for M5c

bvandeusenandClaude Opus 4.7
2026-05-01 06:20:02 -04:00
-
5e73f590a9
feat(similarity): persist unmatched similar-artist MBIDs for M5c
bvandeusen
2026-05-01 06:07:22 -04:00
-
be23ae488d
feat(listenbrainz): expose Name on SimilarArtist for M5c suggestions
bvandeusen
2026-05-01 05:51:29 -04:00
-
2ca09749d9
feat(db): add artist_similarity_unmatched schema (migration 0012)
bvandeusen
2026-05-01 05:50:22 -04:00
-
cf1b75ca12
docs(plan): add M5c suggested-additions implementation plan
bvandeusen
2026-04-30 23:02:41 -04:00
-
a0a9fb201b
docs(spec): add M5c suggested-additions design
bvandeusen
2026-04-30 22:48:55 -04:00
-
3e3ad89645
fix: T16 verification cleanups
bvandeusen
2026-04-30 20:49:11 -04:00
-
3bfec944c7
feat(web): /admin/quarantine aggregated queue with resolution actions

bvandeusenandClaude Opus 4.7
2026-04-30 20:40:34 -04:00
-
0d7a65cffb
feat(web): /library/hidden user-facing quarantine view

bvandeusenandClaude Opus 4.7
2026-04-30 20:35:11 -04:00
-
88ff997af7
feat(web): mount TrackMenu in TrackRow + PlayerBar
bvandeusen
2026-04-30 20:31:56 -04:00
-
8da4a3f9c0
feat(web): TrackMenu overflow + FlagPopover for the quarantine flow
bvandeusen
2026-04-30 20:29:07 -04:00
-
b653e83478
feat(web): API client modules for quarantine + admin quarantine
bvandeusen
2026-04-30 20:26:07 -04:00
-
b7f8136502
fix(server): wire real Lidarr clientFn for requests + quarantine services
bvandeusen
2026-04-30 20:23:07 -04:00
-
6fedd495be
feat(api): /api/quarantine user + admin endpoints + Service wiring
bvandeusen
2026-04-30 20:19:39 -04:00
-
ba81e4f2ac
feat(api): route track-list reads through user-context quarantine filter
bvandeusen
2026-04-30 20:09:04 -04:00
-
559fb5dd2c
feat(db): add user-context track query variants honoring quarantine
bvandeusen
2026-04-30 19:49:00 -04:00
-
ef3fffb3ea
fix(lidarrquarantine): keep LidarrAlbumMbid nil on Resolve/DeleteFile audit rows + cover idempotent Resolve
bvandeusen
2026-04-30 19:42:19 -04:00
-
782e72b595
feat(lidarrquarantine): admin actions Resolve/DeleteFile/DeleteViaLidarr
bvandeusen
2026-04-30 19:37:40 -04:00
-
7a0bc1f815
fix(lidarrquarantine): translate FK violation to ErrTrackNotFound + drop unneeded *string AlbumTitle
bvandeusen
2026-04-30 17:42:55 -04:00
-
b4fe224a67
feat(lidarrquarantine): Service Flag/Unflag/ListMine/ListAdminQueue
bvandeusen
2026-04-30 17:36:27 -04:00
-
e6e3f297d6
fix(dbtest,library): include quarantine tables in ResetDB; clarify DeleteTrackFile docstring
bvandeusen
2026-04-30 17:32:08 -04:00
-
d0523da520
feat(library): DeleteTrackFile (rm file + tracks row, album/artist preserved)
bvandeusen
2026-04-30 17:04:21 -04:00
-
dbe0e79f54
fix(lidarr): wrap MBID-lookup decode errors with ErrInvalidPayload + fill test gaps
bvandeusen
2026-04-30 17:01:50 -04:00
-
f2cdd23fd5
feat(lidarr): LookupArtistByMBID, LookupAlbumByMBID, DeleteAlbum
bvandeusen
2026-04-30 16:57:14 -04:00
-
71a9bd8dee
fix(db): drop redundant quarantine user index + tighten ListQuarantineForUser
bvandeusen
2026-04-30 16:54:03 -04:00
-
a8df73fe42
feat(db): add lidarr_quarantine + actions schema (migration 0011)
bvandeusen
2026-04-30 16:48:33 -04:00
-
0806a37a42
docs(plan): add M5b quarantine workflow implementation plan
bvandeusen
2026-04-30 15:15:53 -04:00
-
0b3919e4a1
docs(spec): add M5b quarantine workflow design
bvandeusen
2026-04-30 14:54:44 -04:00
-
db37deb6f8
test(lidarrrequests): expand coverage on Service.Approve + Reconciler
bvandeusen
2026-04-30 10:58:21 -04:00
-
ab9be40bb2
feat(web): add /admin/requests approval queue with override modal
bvandeusen
2026-04-29 23:31:18 -04:00
-
b895e9ef7e
feat(web): add /admin/requests approval queue with override modal

bvandeusenandClaude Opus 4.7
2026-04-29 23:24:34 -04:00
-
b1b50187b3
fix(web): integrations panel review fixes
bvandeusen
2026-04-29 23:11:32 -04:00
-
c281c8b5dd
feat(web): add /admin/integrations Lidarr connection panel

bvandeusenandClaude Opus 4.7
2026-04-29 23:06:19 -04:00
-
041e63744d
fix(web): promote bg-accent-tint to a real Tailwind utility
bvandeusen
2026-04-29 22:54:30 -04:00
-
bfd48f5a02
feat(web): add /admin layout with role-gated load + sidebar

bvandeusenandClaude Opus 4.7
2026-04-29 22:48:26 -04:00
-
dd86ffca94
fix(web): a11y on /requests aria-labels when titles are absent
bvandeusen
2026-04-29 22:29:07 -04:00
-
ad904afaf6
feat(web): add /requests user-facing request history

bvandeusenandClaude Opus 4.7
2026-04-29 22:24:17 -04:00
-
a7506d9413
fix(web): drop dead onkeydown stopPropagation on discover modal
bvandeusen
2026-04-29 22:20:35 -04:00
-
8a12b8c571
feat(web): add /discover route with search + request flow

bvandeusenandClaude Opus 4.7
2026-04-29 22:15:52 -04:00
-
d27b381250
feat(web): add StatusPill semantic-color status indicator
bvandeusen
2026-04-29 22:08:09 -04:00
-
dcb49e9687
fix(web): a11y on DiscoverResultCard + drop test-only inline styles

bvandeusenandClaude Opus 4.7
2026-04-29 21:05:27 -04:00
-
c8bd19d6f1
feat(web): add DiscoverResultCard with reserved badge slot + anchored button

bvandeusenandClaude Opus 4.7
2026-04-29 20:27:58 -04:00
-
ce7424219c
feat(web): adminRequests cache key + staleTime polish
bvandeusen
2026-04-29 20:04:51 -04:00
-
d7eaa189e2
feat(web): add API client modules for Lidarr, requests, admin

bvandeusenandClaude Opus 4.7
2026-04-29 19:53:04 -04:00
-
29968ae8da
feat(web): wire Tailwind fontFamily to FS font tokens
bvandeusen
2026-04-29 19:42:53 -04:00
-
a7090c3768
feat(web): introduce FabledSword design system tokens + Tailwind aliases

bvandeusenandClaude Opus 4.7
2026-04-29 18:48:20 -04:00
-
d1c1853d49
fix(auth): silence revive unused-parameter on stub test handlers
bvandeusen
2026-04-29 17:58:32 -04:00
-
1bde1787b9
feat(cmd): start Lidarr reconciler worker alongside HTTP server

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:57:42 -04:00
-
82ffb12f68
feat(api): add /api/admin/requests approval queue

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:56:25 -04:00
-
6fcae8dee4
feat(api): add /api/admin/lidarr/* config + profiles + folders + test

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:44:54 -04:00
-
03cbd4d0c1
feat(api): add /api/requests user-facing CRUD

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:40:49 -04:00
-
9192eb9f0a
fix(api): gofmt + revive cleanup on lidarr search handler
bvandeusen
2026-04-29 17:35:45 -04:00
-
905e27a988
feat(api): add /api/lidarr/search proxy with library/request enrichment

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:35:00 -04:00
-
4492826354
feat(auth): add RequireAdmin middleware for /api/admin/* routes

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:27:47 -04:00
-
f73a5ccef5
feat(lidarrrequests): add Reconciler worker matching approved requests to library

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:17:32 -04:00
-
b11fc117e7
feat(lidarrrequests): request lifecycle service (create/list/approve/reject/cancel)

bvandeusenandClaude Sonnet 4.6
2026-04-29 17:12:03 -04:00
-
429b75131b
feat(lidarrconfig): typed singleton config wrapper

bvandeusenandClaude Sonnet 4.6
2026-04-29 16:29:22 -04:00
-
ebff8f69a0
fix(lidarr): address review findings on HTTP client

bvandeusenandClaude Sonnet 4.6
2026-04-29 16:26:23 -04:00
-
a43fa09a04
feat(lidarr): typed HTTP client for v1 API (lookup, add, profiles, ping)

bvandeusenandClaude Sonnet 4.6
2026-04-29 15:25:10 -04:00
-
a5bb79f2a8
fix(db): clarify lidarr_requests query semantics

bvandeusenandClaude Sonnet 4.6
2026-04-29 15:19:54 -04:00
-
9ceac5c639
feat(db): add lidarr_config + lidarr_requests schema (migration 0010)

bvandeusenandClaude Sonnet 4.6
2026-04-29 15:10:01 -04:00
-
d77f2d4459
docs(plan): add M5a Lidarr connection + search/add implementation plan

bvandeusenandClaude Opus 4.7
2026-04-29 15:01:20 -04:00