feat: RGBA fix, per-person tracking, dry-run, retry-rejected, reset-person

- Fix RGBA→JPEG error: convert all images to RGB before saving
- Upload tracker: per-person breakdown in JSON, reset_person(), get_person_summary()
- mark_rejected() only fires on face-detection failures (not all HTTP 400s)
- New env vars: DRY_RUN, RETRY_REJECTED, RESET_PERSON
- Tracker summary printed at startup showing uploaded/rejected counts per person
- Document new env vars in compose.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 22:39:11 +00:00
co-authored by Claude Sonnet 4.6
parent 11ff3752d3
commit d106d30060
4 changed files with 145 additions and 50 deletions
+5
View File
@@ -18,6 +18,11 @@ services:
# - SKIP_PEOPLE=Unknown
# - MIN_FACE_COUNT=5
# ── Tracker overrides (one-shot, remove after use) ──
# - DRY_RUN=true # Preview selection without downloading/uploading
# - RETRY_REJECTED=true # Re-attempt previously rejected images
# - RESET_PERSON=John # Clear uploaded+rejected history for one person
# ── Scheduling ──
# Cron expression (unset = run once and exit)
- CRON_SCHEDULE=0 3 * * 0 # Every Sunday at 3 AM