hub-core/workplans/HUB-WP-0010-statehub-inbox-read-pilot.md
tegwick 4580e838cc docs: close inbox snapshot pilot and hand off freshness cutover
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a06ed7-828d-7ca0-a8d4-0c3e5a0c4102
2026-09-05 11:27:04 +02:00

59 lines
2 KiB
Markdown

---
id: HUB-WP-0010
type: workplan
title: "State Hub inbox read projection pilot"
domain: infotech
repo: hub-core
status: finished
owner: codex
topic_slug: infotech
created: "2026-09-05"
updated: "2026-09-05"
related:
- STATE-WP-0079
quality_dod: DoD-Ok
quality_dod_at: "2026-09-05"
quality_dod_by: codex
quality_dod_note: "Frozen snapshot parity, auth, rollback and live verification passed; residual HUB-WP-0011 owns production cutover."
quality_dor: DoR-Ok
quality_dor_at: "2026-09-05"
quality_dor_by: codex
quality_dor_note: >-
STATE-WP-0079-T08 requests one read-only inbox parity proof. The runtime has
an empty agent_messages table and an operator token; named-port messages
are a distinct envelope contract. Scope excludes production message writers.
---
## Deliver the opt-in receiver contract
```task
id: HUB-WP-0010-T01
status: done
priority: high
```
Add an authenticated, GET-only `/ports/projections/statehub-inbox` pilot for one
configured agent, preserving message payloads, broadcast inclusion, sender and
unread filters, archive exclusion, ordering and limits. Default disabled.
State Hub remains the writer. Existing `/ports/messaging/messages` is unchanged.
## Import and verify one consistent historical snapshot
```task
id: HUB-WP-0010-T02
status: done
priority: high
```
Validate source/count/hash/thread closure before importing to an empty receiver.
Preserve all IDs/timestamps/flags. Exact retries are no-ops; different existing
rows refuse overwrite. Verify parity over a fixed source snapshot with read-only
queries, auth failures and rollback by disabling the pilot. Packaging/deployment
belongs to rapp-core-hub. Do not claim continuous freshness or switch clients
from the sole production message writer based on a one-time snapshot.
## Completion evidence and residual handoff
See `docs/evidence/statehub-inbox-pilot-20260905.md` and its JSON receipt.
HUB-WP-0011 was created before closure and owns freshness, caller identity and
production reader cutover; STATE-WP-0079-T09 tracks that gate.