# Daily commit waiting for monthly worker ## User question The operator reported that a Daily Report upload appeared complete but the monthly report did not update. ## Read-only checks - Port 8766 returned `ready`; the active process list showed the ARR Web service but no independent `monthly_reports.worker` / `arr-monthly-worker` process. - The newest `opera_daily` processing run is run 39. It finished at 2026-08-03 10:49:01 +08 with `accepted` status and no failure code. - Finance daily version 14 is `active` for business date 2026-08-01 and contains 111 retained rows. Its retained `ARRIVAL` scope is 2026-08-01, so the automatic worker would derive an August 2026 monthly request. - Outbox event 20 (`processing-run:39:accepted`, `arr.daily_version_committed`) is still `pending`, has zero publish attempts and no error code, and has been available since 2026-08-03 10:49:01 +08. - `reporting.monthly_runs` contains only July versions. July V04 is active with `as_of_date=2026-07-27`; no August version is present. - A second read-only check found a backlog of five daily-commit events, IDs 16–20, all `pending` with zero attempts and no error. Events 16–19 derive the July request through 2026-07-27; event 20 derives the August request through 2026-08-01. Recovery should let the worker consume them in order and retain its idempotent publication behavior. - The controlled database file, Python runtime, Node binary and artifact-tool module pass preflight checks. The focused monthly suite passes 27 tests with two optional skips. No worker was started and no monthly publication or database write was performed. - The monthly page polls every four seconds only while its tab is visible. That can delay page display, but it cannot explain the missing database row because event 20 has not been consumed. ## Recovery - The user authorized recovery. A detached `arr2-monthly-worker` Screen session was started with the controlled `booking_test` configuration and the verified Node/artifact-tool paths. - The worker consumed outbox events 15–20 in order. Each is now `published` with one attempt and no error code. - July V05 is `active` at `as_of_date=2026-07-27` with 987 rows; older July V04 is `superseded`. August V01 is `active` at `as_of_date=2026-08-01` with 111 rows. - The August registered workbook/result pair exists under the controlled project output, the XLSX passes ZIP integrity, the result JSON reports `success`, and Web `/healthz` remains `ready`. ## Conclusion The Daily Report was correct; the missing monthly update was caused by the absent worker process. The report is now updated without re-uploading the source. The remaining operational gap is reboot-persistent supervision of the detached worker, which is intentionally separate from this recovery and from the later logging work.