Reduce open work: archive CUST-WP-0038, finish STATE-WP-0093, trim STATE-WP-0079
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s

CUST-WP-0038 (HA migration of a retiring service): archived, 8 tasks cancelled.
STATE-WP-0093: finished; T04 closed on its state-hub part, hub-core owns the rest.
STATE-WP-0079: T09 cancelled (owned by HUB-WP-0011), T07 folded into T05;
T05 records the three verified retirement candidates pending the meter write.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 7184@bnt-lap001
Assistant-Session: 4b436ae2-b17c-4b40-8754-200b161b26e4
This commit is contained in:
tegwick 2026-09-22 10:25:05 +02:00
parent 5f236e3500
commit 56672bbf69
3 changed files with 67 additions and 15 deletions

View file

@ -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.

View file

@ -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

View file

@ -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/<id>/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`.