Contributed by @thethereza, who brought the idea and
built the input; the review follow-ups below were finished on his branch.
- Add a no-Frigate mode that watches a directory for completed video/image files.
- Require stable file size and mtime before processing, persist fingerprints across
restarts, and bound retries for unreadable media. - Sample video frames, collapse repeated views of the same person within each file, and
reuse the existing gallery, unknown clustering, history, MQTT, and review UI. - Add folder-aware health and manual-scan UI plus a low-priority hardened systemd unit.
- Fixed: the unknown review broke when
url:was left empty.url:written with no
value is YAMLnull, not a missing key, so the.get("url", "")default never applied
andNone.rstrip("/")took out/api/unknownswith a 500. Reproduced before and after. - Fixed: a history scan with no input configured failed with
KeyError: 'url'. The
branch was chosen byfolder_moderather than by whether an input is usable, so turning
Frigate off before setting up the folder landed in the Frigate path without Frigate. The
scan is now rejected up front with an explanation instead of dying in the worker. - The folder scan reports progress while it runs instead of only at the end, so the bar no
longer sits at 0/0 for a long directory and reads as a hang. - A manual scan started while the poller is already scanning returns immediately instead of
waiting and then walking the same files a second time. The lock now covers the whole run,
not just the check-and-set. DisabledFrigateAPIinherits fromFrigateAPI, sofrigate_client(...) -> FrigateAPI
is honest and a method added later cannot silently be missing in folder mode.