diff --git a/workplans/CUST-WP-0038-state-hub-threephoenix-ha.md b/workplans/CUST-WP-0038-state-hub-threephoenix-ha.md index 53162b6..ec8a2a1 100644 --- a/workplans/CUST-WP-0038-state-hub-threephoenix-ha.md +++ b/workplans/CUST-WP-0038-state-hub-threephoenix-ha.md @@ -4,12 +4,12 @@ type: workplan title: "State Hub Full ThreePhoenix HA Migration" domain: infotech repo: state-hub -status: backlog +status: archived flavor: implementation owner: custodian topic_slug: custodian created: "2026-05-02" -updated: "2026-08-08" +updated: "2026-09-22" depends_on: CUST-WP-0011 state_hub_workstream_id: "ccb87fa4-6381-5f22-b097-6e026f56a9c1" --- @@ -72,7 +72,7 @@ keeps the ultimate target visible and reviewable. ```task id: CUST-WP-0038-T01 -status: todo +status: cancel priority: high state_hub_task_id: "5c79e069-281e-5b3c-a45e-3e906b9053fa" ``` @@ -97,7 +97,7 @@ one-server-loss evidence. ```task id: CUST-WP-0038-T02 -status: todo +status: cancel priority: high state_hub_task_id: "b91f9086-c526-5452-bade-ad2451ce3bd3" ``` @@ -119,7 +119,7 @@ production data movement. ```task id: CUST-WP-0038-T03 -status: todo +status: cancel priority: high state_hub_task_id: "b6fbdfe2-7561-561d-936b-d531300f88aa" ``` @@ -142,7 +142,7 @@ namespace. ```task id: CUST-WP-0038-T04 -status: todo +status: cancel priority: medium state_hub_task_id: "c7f59893-6042-540c-ada7-e3661ffdabf7" ``` @@ -162,7 +162,7 @@ Run State Hub API with the right availability posture for its workload: ```task id: CUST-WP-0038-T05 -status: todo +status: cancel priority: high state_hub_task_id: "390f292d-1d74-5ca7-a08c-530e9c679bd3" ``` @@ -188,7 +188,7 @@ Checks: ```task id: CUST-WP-0038-T06 -status: todo +status: cancel priority: high state_hub_task_id: "e7640bd3-827b-5f8c-b03b-93e76eb8c412" ``` @@ -212,7 +212,7 @@ Checks: ```task id: CUST-WP-0038-T07 -status: todo +status: cancel priority: medium state_hub_task_id: "6492555c-aa6a-5c91-a2cf-3824fe1f1b12" ``` @@ -233,7 +233,7 @@ through the documented path. ```task id: CUST-WP-0038-T08 -status: todo +status: cancel priority: low needs_human: true intervention_note: "Requires explicit approval after HA failover and restore drills pass." @@ -263,3 +263,13 @@ model, and the cluster runbook is the source of truth. - Railiance ThreePhoenix infrastructure goal - State Hub backup/restore runbooks - Constitution constraint: irreversible retirement requires human approval + +## Closure, 2026-09-22 + +Archived without execution; all eight tasks cancelled. State Hub is being +retired (`prj-state-hub-retirement`, STATE-WP-0079): its capabilities move to +hub-core and the service is frozen and archived. Making the retiring service +highly available is no longer a goal. If multi-node HA and tested +failover/restore still matter, they belong to the retained runtime (hub-core) +and should be planned there. + diff --git a/workplans/STATE-WP-0079-retirement-strangler.md b/workplans/STATE-WP-0079-retirement-strangler.md index b2705e4..bcf1f84 100644 --- a/workplans/STATE-WP-0079-retirement-strangler.md +++ b/workplans/STATE-WP-0079-retirement-strangler.md @@ -9,7 +9,7 @@ flavor: refactoring owner: codex topic_slug: infotech created: "2026-08-09" -updated: "2026-09-05" +updated: "2026-09-22" parent_project: prj-state-hub-retirement parent_workplan: SHR-WP-0001 related: @@ -563,6 +563,24 @@ future silence: unresolved task/workstream-detail/SBOM-index attribution is T07. Available pod logs begin after the last calls. Evidence and limits: `docs/evidence/STATE-WP-0079-caller-and-receiver-review-20260905.md`. +**Review 2026-09-22 (now also owns former T07).** The 2026-09-22 capture +(`docs/evidence/legacy-meter-weekly-review-20260922.json`) lists three +retirement candidates: `GET /sbom/` (quiet 10d, needs 7), `PATCH +/workstreams/{workstream_id}` (quiet 36d, needs 30) and `POST /workstreams/` +(quiet 37d, needs 30). Replacements verified the same day: `POST /workplans/` +and `PATCH /workplans/{workplan_id}` in the live OpenAPI (`GET /workplans/` +200); SBOM Nexus `GET /sbom/` returned 200 from the State Hub pod on +railiance01. The founder approved retiring the three. The meter PATCH itself +was not run from the agent session: the harness blocked the production +write. It is still pending. Run it attended (`PATCH +/legacy-meter/interfaces/{id}` with `status: retired`, ids `d0294dce`, +`b1aae931`, `ed6451c9`) and store the receipt as +`docs/evidence/STATE-WP-0079-legacy-retirement-20260922.json`. Still held +after that: `GET /tasks/?workstream_id` (live, caller unattributed), and +`GET /workstreams/`, `GET /workstreams/{workstream_id}` and +`GET /workstreams/{workstream_id}/dependencies/` (quiet since 2026-08-21 or +2026-09-03, not yet candidates). + ## Stabilization window and archive prep ```task @@ -586,7 +604,7 @@ fresh central meter demonstrates the required zero normal read/write window. ```task id: STATE-WP-0079-T07 -status: wait +status: cancel priority: high state_hub_task_id: "2ac16837-454a-5a92-9385-c91cd3219aa2" ``` @@ -601,6 +619,11 @@ verified replacements, and attach fresh quiet-window evidence before retirement. Use `X-StateHub-Component` for direct agent HTTP requests. No inference from an `unknown` bucket alone is sufficient to assign an owner. +**Folded into T05, 2026-09-22.** Cancelled to reduce open tasks. Attributing +and migrating the remaining legacy readers is the same work as retiring those +interfaces, so T05 now owns it: `GET /tasks/?workstream_id` (8 calls in the +week to 2026-09-22, component `unknown`) and the quiet `/workstreams/` reads. + ## Prove the first deployed hub-core message-read contract ```task @@ -636,7 +659,7 @@ residual HUB-WP-0011 and T09; no production client or writer switched. ```task id: STATE-WP-0079-T09 -status: wait +status: cancel priority: high state_hub_task_id: "da1d9a95-91bb-5662-a063-eed2a2f96c92" ``` @@ -649,6 +672,12 @@ switch and rollback using current source parity. State Hub remains the message writer throughout this read cutover. The private snapshot reader must not be advertised as a fresh production inbox. +**Cancelled here, 2026-09-22.** This task only waited on HUB-WP-0011 in hub-core +(still `proposed`), which owns the refresh/staleness contract, credential +delivery and the client switch. Tracking the same gate in both repos doubled +the open count. State Hub remains the message writer; nothing is needed from +this repo until hub-core asks for a switch review. + ## Acceptance - [x] Freeze policy documented diff --git a/workplans/STATE-WP-0093-broadcast-receipts-and-standing-notices.md b/workplans/STATE-WP-0093-broadcast-receipts-and-standing-notices.md index d2165c2..646dca0 100644 --- a/workplans/STATE-WP-0093-broadcast-receipts-and-standing-notices.md +++ b/workplans/STATE-WP-0093-broadcast-receipts-and-standing-notices.md @@ -4,7 +4,7 @@ type: workplan title: "Per-recipient broadcast receipts and standing notices" domain: infotech repo: state-hub -status: active +status: finished owner: claude topic_slug: infotech flavor: implementation @@ -242,7 +242,7 @@ predecessor, expiry filtered at query time, capability-request broadcasts are ```task id: STATE-WP-0093-T04 -status: progress +status: done priority: medium state_hub_task_id: "43529a93-6e49-51c8-a358-726f7e737fab" ``` @@ -376,3 +376,16 @@ templates carry the reader/ack line, and gate-house has answered. - **Template line:** `session-protocol.template` and `agents-codex.template` now mark read with `?reader={REPO_SLUG}` and document `POST /messages//ack`. - **Fleet propagation NOT run, deliberately.** `update_agent_instruction_files.py` regenerates each repository's whole CLAUDE.md, rules and AGENTS.md without committing. Across the fleet it would overwrite local customisations and leave ~120 dirty working trees. It is also unnecessary: agents on the old instructions already *see* standing notices at every inbox check, and the notice body tells them how to acknowledge. The template change reaches each repository whenever it is next regenerated for its own reasons. - The gate-house question (republish the archived v0.7 "start here" note as a standing notice?) was sent to gate-house. + +## Closure, 2026-09-22 + +Finished. All state-hub-side work is done and released (rev 65, `main-ef541f5`). +T04 closed on its state-hub part: Codex MCP `mark_message_read(reader=)` and +`acknowledge_notice`, tests, TOOLS.md. The hub-core part is owned by hub-core +through handoff `69fc387c-5bd3-47bc-9a3f-d3d83b6dc213` (addendum `f8eecebf`): +`hub_core/mcp/server.py` signature changes and the `MessageCreate`/`MessageRead` +fields. Residual here, not tracked as a separate task: at the next hub-core pin +bump (normally under STATE-WP-0079), revert `api/schemas/agent_message.py` to a +pure re-export and restore the identity check in +`tests/test_hub_core_imports.py`. +