Deployed Bodylog commits 6922536 and a3dfdb1 to make meal backfill recover stale in-progress enrichment jobs.
A June 7, 2026 meal (meal_log.id = 821, homemade pizza with black olives, salami, and salad) was stuck with enrichment_status = 'processing', no enriched nutrition output, and no generated preview. Several other meal rows were in the same stale processing state.
/api/meals/backfill now recovers meal enrichment jobs that remain processing beyond a conservative stale cutoff before selecting work.meal_log.updated_at, giving stale recovery reliable evidence.cargo fmt passed.cargo test meal_backfill_recovers_stale_processing_jobs passed.cargo test passed: 131 tests.git diff --check passed.6922536 in 3m49s.a3dfdb1 in 2m46s.bodylog/bodylog rolled out successfully on image gitea.app.lan/bodylog/bodylog.dev:sha-a3dfdb1dc458.stale_processing_6h = 0 after rollout.Meal enrichment is still unable to complete while OpenAI returns insufficient_quota. The deployed fix prevents stale processing rows from being hidden from future backfill, but actual enrichment output requires OpenAI billing/quota availability.
Revert commits a3dfdb1 and 6922536, then push main to redeploy the previous meal backfill behavior.