- frigate_api._get_faces_data now validates the /api/faces response is a
dict before returning it, so a malformed body no longer crashes
data.items() in get_all_frigate_person_files (and the equivalent
data.get() in get_frigate_person_files).
- upload_tracker now takes an exclusive flock on a DATA_DIR lock file for
every tracker load-mutate-save cycle, so a scheduled run and a manual
docker exec against the same DATA_DIR can no longer race a
read-modify-write and silently drop the loser's marks.
- begin_batch()/flush_batch() now flush to disk every 10 marks instead of
deferring the whole per-person upload loop, bounding how many uploaded
marks a crash mid-batch can lose.