hub-core/workplans/HUB-WP-0010-statehub-inbox-read-pilot.md
repo-manager 780a1f9cc3
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / pytest-smoke (push) Failing after 1s
repo.work.assign_missing_identifiers
source: repo-manager
reason: deterministic projection registration

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a06ed7-828d-7ca0-a8d4-0c3e5a0c4102
2026-09-05 11:27:05 +02:00

62 lines
2.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.
state_hub_workstream_id: "8c06208c-c84a-5001-8a57-47fb206c67ec"
---
## Deliver the opt-in receiver contract
```task
id: HUB-WP-0010-T01
status: done
priority: high
state_hub_task_id: "b61aaed1-710d-5d81-a2af-1193f5dafe09"
```
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
state_hub_task_id: "9266d98c-9f88-5184-920d-a5c498b40664"
```
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.