- Server: S.folder (singular) -> S.folders (list). New /api/add_folder and /api/remove_folder endpoints; /api/scan and /api/choose_folder updated to work with the list (choose_folder now appends instead of replacing). Legacy single-folder config migrates transparently. - All folders feed one combined pending queue/journal/search, per the simpler of the two designs discussed. - organize_alias now resolves each photo's own source folder via find_owning_folder(), so category aliases land next to the original instead of in one designated folder -- verified live with two configured folders that the alias for each photo lands in its own folder and nothing leaks into the other. - Delete path-safety, thumbnail/photo serving, resolve_portable_path, undo_all, and sync-on-scan all extended to check/act across every configured folder instead of just one. - Frontend: folder list renders as removable chips; Add (typed path) and Browse (native picker, now appends) both wired to the new endpoints; Rescan All re-scans the current set without changing it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
100 KiB
100 KiB