-
d3c8754a5d
fix: hide navidrome link when webUrl is null (cleared subsonic url)
main
Samu
2026-09-04 14:04:24 +02:00
-
642ca52c71
feat: navidrome deep link replaces in-app player
Samu
2026-09-04 13:45:12 +02:00
-
165ac96830
feat: matchedAlbum.webUrl from subsonic settings; remove stream proxy routes
Samu
2026-09-04 13:37:01 +02:00
-
ff5f4e9133
docs: navidrome deep-link implementation plan (3 tasks)
Samu
2026-09-04 13:27:00 +02:00
-
023557de64
docs: navidrome deep-link spec (replaces in-app player)
Samu
2026-09-04 13:23:49 +02:00
-
7b7b149928
fix: bodyless posts no longer send json content-type (fastify 400 on empty body)
Samu
2026-09-04 13:14:46 +02:00
-
3edf7574f9
fix: loan error surfacing, non-admin export, guarded atomic migration, expanded player controls
Samu
2026-09-03 23:50:54 +02:00
-
9b2bc22d59
feat: settings data section with export and backups
Samu
2026-09-03 23:17:21 +02:00
-
b33399c865
feat: stats page with css bar charts and rip-ratio donut
Samu
2026-09-03 23:08:09 +02:00
-
fc5797d929
feat: rip queue page, library stats/queue links and on-loan chip
Samu
2026-09-03 22:59:31 +02:00
-
47858b1788
fix: refetch item detail after re-match so the play button stays honest
Samu
2026-09-03 22:54:09 +02:00
-
ece18d125b
feat: play button, last played, loan lend/return on item page
Samu
2026-09-03 22:45:20 +02:00
-
b2711b2b79
feat: mini player bar with expandable track list
Samu
2026-09-03 22:28:20 +02:00
-
c8b596bb02
feat: global player context with album queue and audio element
Samu
2026-09-03 22:15:19 +02:00
-
ee19bc773c
feat: web api client additions for wave 1
Samu
2026-09-03 22:06:57 +02:00
-
3ce55ba09e
feat: json export and sqlite backup endpoints
Samu
2026-09-03 21:57:38 +02:00
-
3176807268
feat: collection stats route
Samu
2026-09-03 21:45:52 +02:00
-
53b4bc39f5
feat: loan tracking routes
Samu
2026-09-03 21:37:06 +02:00
-
f8f240f00a
feat: matchedAlbum on item detail, onLoan collection filter
Samu
2026-09-03 21:25:47 +02:00
-
d63bc4bc12
test: permanent coverage for stream/album proxy routes
Samu
2026-09-03 21:18:13 +02:00
-
ebac55b7a5
feat: last-played stamping via sync and played endpoint, stream/album proxy routes
Samu
2026-09-03 21:03:03 +02:00
-
9d1291b58f
feat: subsonic getAlbum/getRecentAlbums and stream url builder
Samu
2026-09-03 20:53:49 +02:00
-
3bdbd8315c
feat: schema versioning with v2 migration (loans, last_played_at)
Samu
2026-09-03 20:43:33 +02:00
-
bc3db9e4f7
docs: wave 1 implementation plan (15 tasks)
Samu
2026-09-03 20:37:38 +02:00
-
024cc6d953
docs: wave 1 design spec (export/backup, stats, loans, rip queue, listening bridge)
Samu
2026-09-03 20:23:40 +02:00
-
3fa0b02560
docs: record plan 2 post-implementation decisions
Samu
2026-09-03 19:28:30 +02:00
-
21a4c69972
fix: reset-to-auto in both rip branches, visible mutation failures, distinct invalid-token error
Samu
2026-09-03 19:24:57 +02:00
-
f2fff1d7be
feat: docker builds the web app, full-stack serving verified
Samu
2026-09-03 19:05:57 +02:00
-
c1852435c8
feat: pwa manifest, icon and minimal service worker
Samu
2026-09-03 18:57:31 +02:00
-
3efde1a828
fix: sync-now feedback and polling, preserve stored subsonic password, fix placeholder
Samu
2026-08-30 00:16:41 +02:00
-
6b85f11871
feat: settings page with integrations, sync control and user management
Samu
2026-08-30 00:00:44 +02:00
-
7a58f9e5a0
fix: hide barcode line on add-page confirm view
Samu
2026-08-29 23:40:26 +02:00
-
bc62019162
feat: add page with discogs text search into confirm flow
Samu
2026-08-29 23:34:53 +02:00
-
71423c7ab7
fix: clear re-match selection when searching again
Samu
2026-08-29 23:27:54 +02:00
-
e912d9e485
feat: item detail with rip override, re-match and remove
Samu
2026-08-29 23:19:48 +02:00
-
b87e6abee0
feat: library grid with rip/format filters, search and artist index
Samu
2026-08-29 23:10:20 +02:00
-
b9ba4f0ca6
fix: dispatch ADD_START, correlate preview/lookup responses with the current attempt
Samu
2026-08-29 22:54:00 +02:00
-
c76d936f1e
feat: scan flow page with candidates, confirm view and error guidance
Samu
2026-08-29 22:37:01 +02:00
-
890e7da3a7
feat: pure scan-flow state machine
Samu
2026-08-29 22:25:53 +02:00
-
70b7fdbe1b
feat: barcode scanner hook (BarcodeDetector + zxing fallback) and camera component
Samu
2026-08-29 22:11:01 +02:00
-
bda43ce237
feat: router, tab shell, setup and login pages
Samu
2026-08-29 19:50:10 +02:00
-
fdf200a960
feat: typed api client and auth context with setup gate
Samu
2026-08-29 19:34:02 +02:00
-
63e8c5f054
feat: react/vite/tailwind web scaffold with jsdom tests
Samu
2026-08-29 19:26:10 +02:00
-
26609d8b62
docs: frontend implementation plan (12 tasks)
Samu
2026-08-29 19:16:27 +02:00
-
b55a1f8cc1
fix: atomic setup transaction, prune devDependencies from runtime image
Samu
2026-08-29 18:46:07 +02:00
-
56ffda9e88
feat: release payload disk cache, batched rip status for list, artwork 404, stricter input handling
Samu
2026-08-29 18:44:08 +02:00
-
39c956e67d
fix: sync removes albums no longer in subsonic, classify non-json responses as api errors
Samu
2026-08-29 18:39:46 +02:00
-
ba705d546a
feat: docker deployment with compose quickstart
Samu
2026-08-29 18:07:43 +02:00
-
061f7349b5
fix: robust web/dist path resolution and graceful shutdown
Samu
2026-08-29 17:59:22 +02:00
-
a3bf420282
feat: serve built SPA with fallback and artwork cache
Samu
2026-08-29 17:46:52 +02:00
-
875bc1087c
feat: background subsonic library sync with per-user state
Samu
2026-08-29 17:34:05 +02:00
-
f1d6320dfe
fix: validate match album before discogs fetch, guard barcode type
Samu
2026-08-29 17:30:02 +02:00
-
566a9bfc0d
feat: collection CRUD with artwork caching, rip override and match links
Samu
2026-08-29 17:19:17 +02:00
-
ded4e17849
feat: discogs lookup routes (barcode/search/release preview)
Samu
2026-08-29 17:07:04 +02:00
-
e8a83eeefb
feat: rip status resolution with override and match links
Samu
2026-08-29 16:57:34 +02:00
-
c49321ccf1
feat: match ae/oe ligatures in normalization
Samu
2026-08-29 16:54:59 +02:00
-
217c676658
feat: title/artist normalization and matching
Samu
2026-08-29 16:48:15 +02:00
-
c1dd232a2f
fix: artwork cache never throws on body/disk failures
Samu
2026-08-29 16:43:45 +02:00
-
0faa74ae27
feat: best-effort artwork disk cache
Samu
2026-08-29 16:38:28 +02:00
-
9b52039fde
fix: skip null album entries in subsonic pagination
Samu
2026-08-29 16:35:01 +02:00
-
dc63db54ba
feat: subsonic library pagination
Samu
2026-08-29 16:31:08 +02:00
-
72f3fc8436
fix: harden discogs mappers against malformed payloads, name error classes, assert auth header
Samu
2026-08-29 16:24:40 +02:00
-
3715bb7447
feat: discogs client with barcode/text search and release fetch
Samu
2026-08-29 16:13:43 +02:00
-
b79a72a81b
feat: serializing queue with min-interval pacing
Samu
2026-08-29 16:05:29 +02:00
-
a54f56834d
fix: classify invalid subsonic URL as unreachable, type settings handlers, guard token mask and body types
Samu
2026-08-29 16:01:07 +02:00
-
e94ffb535b
feat: per-user settings routes with subsonic validation
Samu
2026-08-29 15:51:58 +02:00
-
6dfaaf465d
fix: map duplicate-username race to 409 and test session/cascade behavior
Samu
2026-08-29 15:46:34 +02:00
-
8bdbe292d5
feat: admin user management routes
Samu
2026-08-29 15:35:24 +02:00
-
1c52281feb
refactor: type auth preHandlers and mirror clearCookie options
Samu
2026-08-29 15:31:36 +02:00
-
ad8b7cb22a
feat: setup/login/logout/me auth routes
Samu
2026-08-29 15:20:42 +02:00
-
f48093319b
feat: argon2 passwords and sqlite-backed sessions
Samu
2026-08-29 15:11:15 +02:00
-
dff7b4826d
feat: real entrypoint using loadConfig
Samu
2026-08-29 15:05:46 +02:00
-
5545aa31fb
feat: config loading and sqlite schema
Samu
2026-08-29 14:55:42 +02:00
-
01ad6fbb40
chore: scaffold node/ts/vitest project with health endpoint
Samu
2026-08-29 14:43:44 +02:00
-
52b2cbd6c5
docs: backend implementation plan (18 tasks, TDD)
Samu
2026-08-29 14:32:57 +02:00
-
1dfe47f5dd
Add design spec for record-shop webapp
Samu
2026-08-29 13:59:35 +02:00
-
25315247bc
Initial commit
Samuel
2026-08-29 11:36:00 +00:00