d7d1495753
fix(types): clear web/src type and lint debt with real types
John O'Keefe2026-10-21 14:17:02 -04:00
77cd268f4e
style: format web/src with oxfmt defaults (via vp fmt)
John O'Keefe2026-10-21 13:18:24 -04:00
8aeecaa0ef
Experiment: migrate web build to vite-plus 1.3.0
John O'Keefe2026-10-21 09:27:59 -04:00
dd4cf1235c
test: pin scan_extractor_version at the start of ev-sensitive tests
v2.0.0
John O'Keefe2026-10-20 22:19:29 -04:00
a42c6d4f75
feat(scanner): force rescan = original scan; feat(filters): the manually-edited filter (faceted plan Phase 13)
John O'Keefe2026-10-20 22:05:42 -04:00
9b5defcb31
feat(issues): the honest processing-issues ledger — row-less import failures, self-healing resolution, family lens (faceted plan Phase 11)
John O'Keefe2026-10-20 19:38:02 -04:00
19b9c7c9b8
fix(tests): wire settings registry into the test auth handler — unstick TestAdminCreateUser
John O'Keefe2026-10-20 19:02:26 -04:00
91b0c45dd4
feat(scanner): extractor-version (ev) mechanism — parser fixes reach old rows without a force rescan (faceted plan Phase 10)
John O'Keefe2026-10-20 18:24:08 -04:00
43987262a6
fix(filters): operator table sent labels as wire values — every non-self-named operator was broken (user report)
John O'Keefe2026-10-20 17:14:26 -04:00
68701d6b94
fix(filters): live count follows the top library picker (user report)
John O'Keefe2026-10-20 16:52:08 -04:00
ab713e2feb
fix(filters): blank-typed browse 500 on id-valued fields (library/collection/added_by)
John O'Keefe2026-10-20 16:44:50 -04:00
9c006a9a2f
fix(filters): browse with no rules works, popup under the input, no sticky headers (user report)
John O'Keefe2026-10-20 16:01:10 -04:00
4c03116ec7
fix(filters): value menu flash-on-click, empty state, sticky field filter (user report)
John O'Keefe2026-10-20 15:36:31 -04:00
c747f0a76c
feat(filters): per-row AND/OR (Excel-style chips) + browse-on-click value menus (user report)
John O'Keefe2026-10-20 15:25:57 -04:00
6f98ca4c22
fix(filters): group mode reads AND/OR, connective labels toggle it (user report)
John O'Keefe2026-10-20 15:09:44 -04:00
04b36f0563
fix(filters): builder UX round one — incomplete rules, group removal, field menu (user report)
John O'Keefe2026-10-20 15:04:19 -04:00
4ee24e7152
feat(filters): the rule builder — composed engines over the field registry (faceted plan Phase 9)
John O'Keefe2026-10-20 14:49:50 -04:00
ebb7f4a5b0
feat(filters): panel removal + All-Books field-values fix (faceted plan Phase 8)
John O'Keefe2026-10-20 12:20:51 -04:00
f52bb6f073
feat(facets): all-facets panel with under-filter counts (faceted plan Phase 7)
John O'Keefe2026-10-20 08:24:36 -04:00
6152137156
fix(tests): repair stale pins surfaced by the Phase 6 full-suite run
John O'Keefe2026-10-19 22:33:08 -04:00
2c5ad014c0
feat(scanner): multifile folder/zip sidecar detection (faceted plan Phase 6)
John O'Keefe2026-10-19 22:32:52 -04:00
7e586df48a
feat(facets): facet registry, Batch A server params, genre model v2, facets endpoint
John O'Keefe2026-10-19 18:59:23 -04:00
7537063cb7
feat(filters+nav): author navigation end-to-end — arrays on every media response, deep-linkable bookshelf filters, clickable authors
John O'Keefe2026-10-19 16:16:58 -04:00
f94e7472b4
feat(filters+ui): per-element author/publisher filters, playlist toggles, Up Next API, reorder UI, dashboard badges
John O'Keefe2026-10-19 15:43:59 -04:00
1dbb0ce406
feat(collections): playlist auto-creation, position ordering, hide_finished, Up Next, dashboard eligibility
John O'Keefe2026-10-19 15:25:40 -04:00
7e4c97f639
feat(scanner): fix ABS sidecar series parsing; three-way series mapping; smart genre; language codes; title-derived series
John O'Keefe2026-10-19 14:34:42 -04:00
646477afad
feat(schema): subtitle/explicit columns, authors+publishers arrays, float series numbers
John O'Keefe2026-10-19 14:17:50 -04:00
4f913da0b1
chore(db): schema.go searches three levels up — replaces the tests-dir symlink
v1.15.1
John O'Keefe2026-10-17 22:51:55 -04:00
0799cca3e6
fix(schema): ship the two Batch-A upgrade ALTERs that 1.15.0 missed
John O'Keefe2026-10-17 22:46:01 -04:00
45b8542e25
fix(api): honor the request's origin as the writer label — app rows stop wearing "web"
v1.15.0
John O'Keefe2026-10-17 21:44:13 -04:00
8f05f1116e
fix(css): native select popups follow the theme — color-scheme per scheme + themed option entries
John O'Keefe2026-10-17 20:12:54 -04:00
454938c31f
refactor(vis): H4.5 steps 4-5 — statistics and the three reader gates on the canonical resolver; core goes package-level
John O'Keefe2026-10-17 17:35:43 -04:00
8dbaa8f810
refactor(vis): H4.5 step 3 — collections endpoint and the SSR helper on the canonical resolver
John O'Keefe2026-10-17 17:32:11 -04:00
d2d92efd10
refactor(vis): H4.5 step 2 — series endpoints on the canonical resolver
John O'Keefe2026-10-17 17:31:23 -04:00
1d12a64915
refactor(vis): H4.5 step 1 — LibraryService.VisibleLibrarySet, the canonical resolver; media endpoints migrated
John O'Keefe2026-10-17 17:30:11 -04:00
29a546229d
refactor(opds): one acquisition-entry builder for the catalog and search feeds
John O'Keefe2026-10-17 17:23:33 -04:00
6b3bdef052
refactor(reader): one comic-likeness predicate — panel detection was a byte-identical twin
John O'Keefe2026-10-17 17:16:11 -04:00
2ba1e0960b
refactor(hash-conflicts): one usage-counts reader for the API and SSR surfaces
John O'Keefe2026-10-17 17:15:14 -04:00
010c0cb287
test(contracts): whitelist the unified row's two new keys on search rows
John O'Keefe2026-10-17 16:57:20 -04:00
87fc89a816
refactor(router): one WeekStatsData mapper for the dashboard page and week-widget fragment
John O'Keefe2026-10-17 16:54:21 -04:00
77cf0b827b
refactor(db): GetCollectionItemsForDashboard embeds the media row; excluded filter moves into SQL; third converter dies
John O'Keefe2026-10-17 16:51:30 -04:00
18727fef93
refactor(collections): rule evaluators take the real row; both 45-field converter twins deleted
John O'Keefe2026-10-17 16:48:39 -04:00
b47a2b86a7
refactor(conflicts): one ConflictDetail builder for the three row shapes
John O'Keefe2026-10-17 16:42:37 -04:00
58fbe372e2
refactor(devices): one Devices->DeviceInfo mapper for the five hand-built copies
John O'Keefe2026-10-17 16:39:12 -04:00
082a3e0c3c
fix(sync): offline detector wiped device name, auto_sync, and metadata on every transition
John O'Keefe2026-10-17 16:38:00 -04:00
188ae076ab
refactor(utils): one PgTextString for the four pgtype.Text unwrappers
John O'Keefe2026-10-17 16:36:58 -04:00
00305ffc7b
chore(db): retire the nine dead annotation plain queries + duplicate SQL line
John O'Keefe2026-10-17 16:30:38 -04:00
edb4e60679
fix(annotations): LWW applies coalesce omitted fields — partial payloads no longer erase stored locators
John O'Keefe2026-10-17 16:03:49 -04:00
11609d13d1
refactor(annotations): one LWW decision core + one tombstone gate + typed queue decoders
John O'Keefe2026-10-17 15:56:24 -04:00
7d698ea0d8
fix(annotations): bookmark and note PUTs land through the sync service (LWW by id)
John O'Keefe2026-10-17 15:53:12 -04:00
c579179fee
refactor(annotations): AnnotationService is a required constructor dependency
John O'Keefe2026-10-17 15:47:57 -04:00