John O'Keefe
0f1d0abbb0
feat(libraries): scope a library scan to one registered folder
...
POST /api/libraries/:id/scan accepts an optional {"folder_path": "..."}:
the scan then covers exactly that one registered folder's subtree instead
of the whole library. The path is validated against the library's
registered folders — anything else is a 400, never trusted. An omitted
body keeps today's full-library behavior, and coalescing (409 with the
active job) is unchanged.
The LibraryPanel folder rows get a per-folder Scan button: pure htmx
attributes posting to the same scan endpoint, with hxValsFolderScan
emitting plain eval-free JSON for hx-vals alongside the existing
hxValsFolderDelete precedent. Progress surfaces through the existing
active-scan polling; no new client code.
Safety: the scanner's archive-reconciliation guard (previous commit)
skips partially-covered libraries, so a one-folder scan cannot mark the
library's other folders' items missing.
2026-10-27 13:22:41 -04:00
..
2026-10-25 20:54:09 -04:00
2026-10-25 20:54:09 -04:00
2026-10-25 11:06:08 -04:00
2026-10-13 12:24:12 -04:00
2026-10-27 13:22:41 -04:00
2026-10-27 13:22:41 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 18:14:44 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 18:14:44 -04:00
2026-10-25 18:14:44 -04:00
2026-10-26 13:59:37 -04:00
2026-10-26 13:59:37 -04:00
2026-10-25 18:14:44 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 20:54:09 -04:00
2026-10-25 20:54:09 -04:00
2026-05-24 21:20:24 -04:00
2026-03-27 15:52:02 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 15:43:59 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-27 10:22:13 -04:00
2026-10-27 10:22:13 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:42:50 -04:00
2026-10-26 08:17:49 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-27 10:22:13 -04:00
2026-10-27 10:22:13 -04:00
2026-10-25 18:14:44 -04:00
2026-10-25 18:14:44 -04:00
2026-10-24 14:31:36 -04:00
2026-10-25 20:54:09 -04:00
2026-10-25 20:54:09 -04:00
2026-10-25 11:06:08 -04:00
2026-08-10 13:43:13 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 18:59:36 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:07 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-27 10:22:13 -04:00
2026-10-27 10:22:13 -04:00
2026-10-25 11:06:08 -04:00
2026-10-24 19:44:34 -04:00
2026-10-26 14:58:50 -04:00
2026-10-26 13:59:32 -04:00
2026-10-26 13:59:32 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 20:54:09 -04:00
2026-10-25 20:54:09 -04:00
2026-10-26 13:59:37 -04:00
2026-10-26 13:59:37 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-10-27 10:22:13 -04:00
2026-10-27 10:22:13 -04:00
2026-10-03 23:54:07 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-25 11:06:08 -04:00
2026-05-10 16:13:21 -04:00
2026-10-26 13:59:32 -04:00
2026-10-26 14:58:50 -04:00
2026-10-26 14:58:50 -04:00
2026-10-19 18:59:36 -04:00
2026-10-27 13:22:41 -04:00