--- id: USER-WP-0032 type: workplan title: "P05 checked service health and bounded delivery recovery" domain: communication repo: user-engine status: finished owner: codex topic_slug: communication created: "2026-09-13" updated: "2026-09-13" state_hub_workstream_id: "35af93fc-17ed-548e-8da7-616e44e8eee0" --- Complete P05 under USER-WP-0030-T03. P06 remains separate. Do not send production messages for acceptance; use the existing loopback SMTP/IMAP harness. Live SMTP authentication diagnostics do not submit a message or claim inbox delivery. ## Expose checked service state with clear recovery steps ```task id: USER-WP-0032-T01 status: done priority: high state_hub_task_id: "0c9ebc81-ea7c-597e-a908-2806e5a8c57f" ``` Operator-only, bounded checks for KeyCape dependencies/current factor-read credential and mail database/SMTP authentication. Show checked time, impact, unknown versus unavailable state, retry and assisted setup; no secrets or raw provider errors. Health probes must not send mail. ## Make selected delivery and retry safe and reviewable ```task id: USER-WP-0032-T02 status: done priority: high state_hub_task_id: "6be221b9-5378-54a9-ae12-37a52cc9e186" ``` Fix failed worker claims; serialize event operations across connections; confirm one selected delivery and reject stale/repeated completion. Missing email lane must not mark invitations accepted. Preserve provider idempotency across lost responses and restart; uncertain SMTP outcomes must not auto-resend. No automatic processing of the production backlog during this task. ## Verify failure and recovery through native and harness acceptance ```task id: USER-WP-0032-T03 status: done priority: high state_hub_task_id: "5ee8bb39-e725-592e-baf2-04063c579ccd" ``` Installed-provider genuine JWT expiry, scope withdrawal/recovery and outage; native renewal/projection; SMTP/IMAP received-message and retry tests with a local mailbox; role/CSRF/stale/ambiguous-outcome browser coverage. Publish digest pinned releases and verify live non-sending status. Close RPF-WP-0040 acceptance using its specified isolated fixture rather than disrupting live authentication. Completed 2026-09-13. Evidence: docs/evidence/2026-09-13-p05-service-operations.md. 227 portal tests with disposable PostgreSQL, 23 browser checks, 89 email tests, real local SMTP/IMAP one-message retry reconciliation, installed-provider expiry / permission recovery and native credential rotation passed. Three exact-commit CI image releases are deployed and all six live component checks pass without sending production mail. The invitation URL and historical Never-pull drift are corrected in live and canonical configuration. Residuals already have live owners before closure: P06 is USER-WP-0030-T03 / KEY-WP-0035; actual user inbox/acceptance journeys remain USER-WP-0028, and the historical resolver incident remains NK-WP-0033. P05 does not claim these done.