fix: 3 correctness bugs from codebase audit round 2
- executor.py: clear min_quality_score_for_slot alongside effective_count
restore in for/else block; leaving the stale floor from the deleted
file's score blocked the next candidate from filling the restored slot
- cli.py: guard merge_ids with p.get('id') is not None, consistent with
the _smaller_duplicate_ids fix; bare p['id'] raised KeyError on any
person dict missing the id field in the auto-merge path
- immich_api.py: replace bare data['major'/'minor'/'patch'] subscripts
with .get() in get_immich_version; KeyError was silently swallowed by
except Exception, causing version-gated flags to disable without warning
This commit is contained in:
@@ -612,8 +612,12 @@ def upload_to_frigate(jobs: list[dict]) -> None:
|
||||
# All retries exhausted without a successful upload.
|
||||
# Restore the slot freed by the preceding delete so the next
|
||||
# candidate still sees at_cap=True and must beat the replacement gate.
|
||||
# Also clear the quality floor — the deleted file's score no longer
|
||||
# represents any live Frigate file, and leaving it blocks the next
|
||||
# candidate from filling the restored slot.
|
||||
if at_cap:
|
||||
effective_count += 1
|
||||
min_quality_score_for_slot = None
|
||||
|
||||
progress.advance(upload_task)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user