Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a092fe-13b1-7f12-ac74-7d258af4d79c
74 lines
2.9 KiB
Markdown
74 lines
2.9 KiB
Markdown
---
|
|
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.
|