feat(reporting): purge crash/problem reports older than a month while charging #242

Merged
JMR-dev merged 12 commits from feat-239-purge-old-reports into main 2026-07-03 22:38:27 +00:00
12 Commits
Author SHA1 Message Date
Jason Ross 5b5e48054d Merge main into feat-239-purge-old-reports 2026-07-03 17:25:00 -05:00
Jason Ross 9d8581a551 Merge main into feat-239-purge-old-reports 2026-07-03 17:11:10 -05:00
Jason Ross fa64c7b334 Merge main into feat-239-purge-old-reports 2026-07-03 16:49:27 -05:00
Jason Ross 0b05df6bef Merge main into feat-239-purge-old-reports 2026-07-03 16:17:05 -05:00
Jason Ross bef197b628 Merge main into feat-239-purge-old-reports 2026-07-03 16:09:18 -05:00
Jason Ross 99be90ef48 Merge main into feat-239-purge-old-reports 2026-07-03 14:53:31 -05:00
Jason Ross 8eac5807bc Merge main into feat-239-purge-old-reports 2026-07-03 14:48:10 -05:00
Jason Ross c707fd29e5 Merge main into feat-239-purge-old-reports 2026-07-03 14:10:10 -05:00
Jason Ross 1e738a6670 Merge main into feat-239-purge-old-reports 2026-07-03 13:15:26 -05:00
Jason Ross d39617e5d8 Merge main into feat-239-purge-old-reports 2026-07-03 12:55:52 -05:00
Jason Ross a7ab6275ac Merge main into feat-239-purge-old-reports 2026-07-03 12:43:04 -05:00
JMR-devandClaude Opus 4.8 7f623167e7 feat(reporting): purge crash/problem reports older than a month while charging
Adds ReportPurgeWorker, deleting locally-stored crash/problem reports older than
30 days via new ReportStore.purgeOlderThan(cutoffMillis). Scheduled as a periodic
WorkManager job with a charging constraint (SyncScheduler.schedulePeriodicReportPurge,
enqueued at startup alongside sync/backfill/prune) so it never costs battery. Reports
are file-backed (no DB), so the worker needs no cache-lock gate.

Also discloses the auto-deletion: the problem-reports list and the submission review
screen state reports are deleted from the device after 1 month.

Tests: ReportStore.purgeOlderThan cutoff (boundary kept); ReportPurgeWorker computes a
~30-day cutoff and retries on failure.

Closes #239

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 12:27:24 -05:00