Codex Usage Reports v0.2.0 — Background completion reconciliation
Automatic usage reports now perform a bounded local check after Stop, capturing the selected turn's final persisted usage without calling a model or continuing the Task.
- Require an explicit native completion event and exclude subsequent turns.
- Publish a separate completion revision with version, update time and evidence status; new Task-report queries select the latest revision.
- Preserve every original Stop JSON/HTML/Markdown file and inline card. Missing, reset and incomplete data remain partial.
- Limit background work to eight scans and a 25-second process deadline. Stop returns immediately; duplicate events do not launch duplicate workers.
Validation: 173 local tests, nine locales, isolated installed-bootstrap and installed-CLI read-back, and an independent 25-second timeout fault injection. The synthetic installed test revised 200 tokens to 500 while excluding a later turn and preserving all original report bytes.
The phone A/B experiment confirmed that a new reference can read revised source, but the original card retained its old snapshot after Task reentry. This release does not promise automatic refresh of existing inline cards.
After updating, review changed hooks in Codex CLI /hooks, then use a new Task. Restarting the app does not grant hook trust. Do not enable automatic reporting in both this plugin and Codex Run Budget.
Post-install native verification: after the changed hooks were trusted, a new phone-created Task displayed its inline preview and automatically produced a completion revision. The native timing index selected revision 2; the background job completed on its first scan with verified source identity and a native turn counter. This confirms the new Task hook lifecycle, while the original inline card remains a pre-final snapshot.