-
604a2458e9
fix(makefile): add non-systemd podman healthcheck workaround
john-okeefe
2026-05-23 23:48:06 -04:00
-
122038123c
feat(router): cookie-aware SSR library resolution with resolveLibrary helper
fix/library-switcher-all-libraries
john-okeefe
2026-05-18 17:53:42 -04:00
-
666b72c4fd
feat(router): cookie-aware SSR library resolution with resolveLibrary helper
john-okeefe
2026-05-18 17:53:42 -04:00
-
19fc222fb3
feat(ts): centralized library storage with cookie-based SSR support
john-okeefe
2026-05-18 17:53:27 -04:00
-
7221906d53
feat(ts): centralized library storage with cookie-based SSR support
john-okeefe
2026-05-18 17:53:27 -04:00
-
e047a627a8
chore(templates): regenerate all _templ.go files
john-okeefe
2026-05-18 17:53:12 -04:00
-
0a9cde0fc8
chore(templates): regenerate all _templ.go files
john-okeefe
2026-05-18 17:53:12 -04:00
-
668aee4e22
fix(templates): library switcher and bookshelf filter improvements
john-okeefe
2026-05-18 17:52:49 -04:00
-
d3a510d2e0
fix(templates): library switcher and bookshelf filter improvements
john-okeefe
2026-05-18 17:52:49 -04:00
-
2e2121515e
refactor(handlers): relax library_id validation for All Libraries
john-okeefe
2026-05-18 17:52:37 -04:00
-
a6f5d8d693
refactor(handlers): relax library_id validation for All Libraries
john-okeefe
2026-05-18 17:52:37 -04:00
-
3c3f16ea1b
refactor(services): accept optional libraryID for All Libraries support
john-okeefe
2026-05-18 17:52:24 -04:00
-
6a352a6afb
refactor(services): accept optional libraryID for All Libraries support
john-okeefe
2026-05-18 17:52:24 -04:00
-
2d01ec52fe
refactor(sql): use sqlc.narg() pattern for optional library_id in all library-filtered queries
john-okeefe
2026-05-18 17:52:13 -04:00
-
e7a4f0f758
refactor(sql): use sqlc.narg() pattern for optional library_id in all library-filtered queries
john-okeefe
2026-05-18 17:52:13 -04:00
-
6e2d304b35
feat(frontend): integrate shared library switcher into all pages
john-okeefe
2026-05-17 21:12:45 -04:00
-
64d3e8d272
feat(frontend): integrate shared library switcher into all pages
john-okeefe
2026-05-17 21:12:45 -04:00
-
43d8afc6cd
feat(templates): add library switcher to collections and dashboard pages
john-okeefe
2026-05-17 21:12:26 -04:00
-
8e48aa4334
feat(templates): add library switcher to collections and dashboard pages
john-okeefe
2026-05-17 21:12:26 -04:00
-
9b31dc6f68
feat(ssr): pass library data to collection page templates
john-okeefe
2026-05-17 21:12:13 -04:00
-
2fa3764df5
feat(ssr): pass library data to collection page templates
john-okeefe
2026-05-17 21:12:13 -04:00
-
0e8b11504e
feat(api): add library_id filtering to collections endpoints
john-okeefe
2026-05-17 21:12:01 -04:00
-
faef4d9fff
feat(api): add library_id filtering to collections endpoints
john-okeefe
2026-05-17 21:12:01 -04:00
-
59cb0e3439
feat(library-switcher): add shared library switcher component and module
john-okeefe
2026-05-17 21:11:47 -04:00
-
a2fc2613b4
feat(library-switcher): add shared library switcher component and module
john-okeefe
2026-05-17 21:11:47 -04:00
-
158fcb510b
chore(templates): regenerate all templ Go files, add scan spinner to header
feature/mtime-fast-polling
john-okeefe
2026-05-16 19:31:52 -04:00
-
f23ee6e66a
chore(templates): regenerate all templ Go files, add scan spinner to header
john-okeefe
2026-05-16 19:31:52 -04:00
-
8cc9f75a1a
fix(tests): protect dev admin from test cleanup, use isolated test names
john-okeefe
2026-05-16 19:31:46 -04:00
-
73fc609d7b
fix(tests): protect dev admin from test cleanup, use isolated test names
john-okeefe
2026-05-16 19:31:46 -04:00
-
a6e6913ec4
fix(docker): exclude uploads/ from build context
john-okeefe
2026-05-16 19:31:39 -04:00
-
5dca78789d
fix(docker): exclude uploads/ from build context
john-okeefe
2026-05-16 19:31:39 -04:00
-
c41e4af8b0
feat(dashboard): dynamic scan-complete refresh without page reload
john-okeefe
2026-05-16 19:31:34 -04:00
-
37e092c2a8
feat(dashboard): dynamic scan-complete refresh without page reload
john-okeefe
2026-05-16 19:31:34 -04:00
-
55a299540c
feat(header): add scan progress spinner and dispatch scan-complete event
john-okeefe
2026-05-16 19:31:23 -04:00
-
4f7794767d
feat(header): add scan progress spinner and dispatch scan-complete event
john-okeefe
2026-05-16 19:31:23 -04:00
-
c4f972aba1
refactor(websocket): convert to pub/sub pattern with addListener/removeListener
john-okeefe
2026-05-16 19:31:16 -04:00
-
d61abb1be1
refactor(websocket): convert to pub/sub pattern with addListener/removeListener
john-okeefe
2026-05-16 19:31:16 -04:00
-
da3287ef4d
chore(server): call SyncAllowedExtensions on startup
john-okeefe
2026-05-16 19:31:09 -04:00
-
1afc202ba9
chore(server): call SyncAllowedExtensions on startup
john-okeefe
2026-05-16 19:31:09 -04:00
-
797726b68e
feat(worker): broadcast scan_complete WebSocket message on scan job finish
john-okeefe
2026-05-16 19:31:02 -04:00
-
5caebcfe45
feat(worker): broadcast scan_complete WebSocket message on scan job finish
john-okeefe
2026-05-16 19:31:02 -04:00
-
ec6844bed0
fix(auth): hand over library and media item ownership on admin deletion
john-okeefe
2026-05-16 19:30:54 -04:00
-
b1e85dca79
fix(auth): hand over library and media item ownership on admin deletion
john-okeefe
2026-05-16 19:30:54 -04:00
-
dea952020c
fix(library): sync allowed extensions from Go source of truth to DB on startup
john-okeefe
2026-05-16 19:30:46 -04:00
-
b8dc4e87d5
fix(library): sync allowed extensions from Go source of truth to DB on startup
john-okeefe
2026-05-16 19:30:46 -04:00
-
13bb2975f8
fix(scanner): replace mtime polling with recursive fsnotify watching
john-okeefe
2026-05-16 19:30:39 -04:00
-
0855dd7b3b
fix(scanner): replace mtime polling with recursive fsnotify watching
john-okeefe
2026-05-16 19:30:39 -04:00
-
4b3433af7d
feat(db): add imported_at column to media_items for accurate "Recently Added" sorting
john-okeefe
2026-05-16 19:30:27 -04:00
-
d0460885ff
feat(db): add imported_at column to media_items for accurate "Recently Added" sorting
john-okeefe
2026-05-16 19:30:27 -04:00
-
d225e1dff4
feat(scanner): add directory mtime-based fast polling for container environments
john-okeefe
2026-05-12 16:54:35 -04:00
-
ced90cd1f4
feat(scanner): add directory mtime-based fast polling for container environments
john-okeefe
2026-05-12 16:54:35 -04:00
-
e57daed448
chore: regenerate templ files for v0.3.1001
john-okeefe
2026-05-12 16:54:14 -04:00
-
4b43bd04ba
chore: regenerate templ files for v0.3.1001
john-okeefe
2026-05-12 16:54:14 -04:00
-
6782d7a741
refactor(reader): remove vendored pdfjs files from git, drop CJK cmaps
john-okeefe
2026-05-11 14:57:22 -04:00
-
553a1dc19b
refactor(reader): remove vendored pdfjs files from git, drop CJK cmaps
john-okeefe
2026-05-11 14:57:22 -04:00
-
fdf4c9ac35
fix(docker): relax healthcheck intervals and add start_period to postgres
john-okeefe
2026-05-11 14:56:53 -04:00
-
f3cacd1b16
fix(docker): relax healthcheck intervals and add start_period to postgres
john-okeefe
2026-05-11 14:56:53 -04:00
-
413503b9b3
chore: regenerate all templ Go files for v0.3.1020
john-okeefe
2026-05-10 16:13:53 -04:00
-
b829b7fe22
chore: regenerate all templ Go files for v0.3.1020
john-okeefe
2026-05-10 16:13:53 -04:00
-
37177516e0
chore: upgrade templ v0.3.1001 → v0.3.1020, pin in Dockerfile
john-okeefe
2026-05-10 16:13:36 -04:00
-
d42d09b8db
chore: upgrade templ v0.3.1001 → v0.3.1020, pin in Dockerfile
john-okeefe
2026-05-10 16:13:36 -04:00
-
5bdddc6538
fix(templates): fix ErrorToast rendering literal { message } instead of error text
john-okeefe
2026-05-10 16:13:21 -04:00
-
71832bee24
fix(templates): fix ErrorToast rendering literal { message } instead of error text
john-okeefe
2026-05-10 16:13:21 -04:00
-
be1c373b19
feat(metadata-editor): replace tags text input with badge picker + autocomplete
john-okeefe
2026-05-10 16:13:07 -04:00
-
504f145f64
feat(metadata-editor): replace tags text input with badge picker + autocomplete
john-okeefe
2026-05-10 16:13:07 -04:00
-
fb9c471959
feat(bookshelf): replace broken datalist tag filter with custom autocomplete
john-okeefe
2026-05-10 16:12:44 -04:00
-
46e0744802
feat(bookshelf): replace broken datalist tag filter with custom autocomplete
john-okeefe
2026-05-10 16:12:44 -04:00
-
3e5d3fe043
feat(book-detail): add tags and contributors display, fix series/tag links
john-okeefe
2026-05-10 16:12:28 -04:00
-
a93be75408
feat(book-detail): add tags and contributors display, fix series/tag links
john-okeefe
2026-05-10 16:12:28 -04:00
-
b741f4f32d
fix(search): add json tags to FieldValue struct for correct API response
john-okeefe
2026-05-10 16:12:10 -04:00
-
dc07a2f19f
fix(search): add json tags to FieldValue struct for correct API response
john-okeefe
2026-05-10 16:12:10 -04:00
-
647dec676f
feat(db): add GetBooksByTag query for tag detail page
john-okeefe
2026-05-10 16:11:46 -04:00
-
fa38ca0d1b
feat(db): add GetBooksByTag query for tag detail page
john-okeefe
2026-05-10 16:11:46 -04:00
-
0acacc1aa0
refactor(templates): generalize SeriesDetail into reusable BrowseDetail
john-okeefe
2026-05-10 16:11:29 -04:00
-
ae2e03d499
refactor(templates): generalize SeriesDetail into reusable BrowseDetail
john-okeefe
2026-05-10 16:11:29 -04:00
-
1724bc0767
feat(frontend): wire metadata editor Alpine component in book-detail.ts
john-okeefe
2026-05-10 11:53:50 -04:00
-
65c08fb523
feat(frontend): wire metadata editor Alpine component in book-detail.ts
john-okeefe
2026-05-10 11:53:50 -04:00
-
2ef1f9580f
feat(frontend): add client-side cover generator via dynamic foliate-js import
john-okeefe
2026-05-10 11:53:31 -04:00
-
0680e051c2
feat(frontend): add client-side cover generator via dynamic foliate-js import
john-okeefe
2026-05-10 11:53:31 -04:00
-
4a26e79a20
feat(book-detail): wire metadata editor button and add format-group data attr
john-okeefe
2026-05-10 11:53:11 -04:00
-
03156e7866
feat(book-detail): wire metadata editor button and add format-group data attr
john-okeefe
2026-05-10 11:53:11 -04:00
-
1ae9e08f43
feat(templates): add metadata editor modal with cover management
john-okeefe
2026-05-10 11:52:53 -04:00
-
4f2e1e36bf
feat(templates): add metadata editor modal with cover management
john-okeefe
2026-05-10 11:52:53 -04:00
-
e242ad3e00
feat(templates): add helper functions for metadata editor form rendering
john-okeefe
2026-05-10 11:52:36 -04:00
-
36b2afeed7
feat(templates): add helper functions for metadata editor form rendering
john-okeefe
2026-05-10 11:52:36 -04:00
-
0682d0a1cb
fix(reader): add explicit PDF.js resource paths and pin foliate-js fork
john-okeefe
2026-05-10 11:52:23 -04:00
-
b088ec97f6
fix(reader): add explicit PDF.js resource paths and pin foliate-js fork
john-okeefe
2026-05-10 11:52:23 -04:00
-
69872b48b5
fix(handlers): wire all 37 fields in UpdateMediaItem, add cover upload support
john-okeefe
2026-05-10 11:52:04 -04:00
-
a92739d210
fix(handlers): wire all 37 fields in UpdateMediaItem, add cover upload support
john-okeefe
2026-05-10 11:52:04 -04:00
-
5f3b392168
fix(scanner): wire all metadata fields in updateMediaItem and skip image dupes
john-okeefe
2026-05-10 11:51:43 -04:00
-
f199918775
fix(scanner): wire all metadata fields in updateMediaItem and skip image dupes
john-okeefe
2026-05-10 11:51:43 -04:00
-
7b9d3562ef
fix(db): add 14 missing columns to UpdateMediaItem query
john-okeefe
2026-05-10 11:51:27 -04:00
-
a3504f1ae5
fix(db): add 14 missing columns to UpdateMediaItem query
john-okeefe
2026-05-10 11:51:27 -04:00
-
93991dfb0a
fix(series): remove library switcher from detail page, add title tooltips to BookCard
john-okeefe
2026-05-08 20:58:43 -04:00
-
355ae5f7a9
fix(series): remove library switcher from detail page, add title tooltips to BookCard
john-okeefe
2026-05-08 20:58:43 -04:00
-
52464581dc
feat(series): add dedicated series detail page instead of bookshelf filter
john-okeefe
2026-05-08 20:50:59 -04:00
-
ddc14e3314
feat(series): add dedicated series detail page instead of bookshelf filter
john-okeefe
2026-05-08 20:50:59 -04:00
-
9471c4a599
fix(tests): URL-encode series name in special characters test
john-okeefe
2026-05-08 20:31:30 -04:00
-
a57694b738
fix(tests): URL-encode series name in special characters test
john-okeefe
2026-05-08 20:31:30 -04:00
-
905a5d769c
docs: add series cover layout mockup for reference
john-okeefe
2026-05-08 20:28:02 -04:00