--- id: HUB-WP-0010 type: workplan title: "State Hub inbox read projection pilot" domain: infotech repo: hub-core status: active owner: codex topic_slug: infotech created: "2026-09-05" updated: "2026-09-05" related: - STATE-WP-0079 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: progress 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: todo 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.