Record the 2026-10-06 legacy-meter review and attribute broadcast reads.
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

No interface is retirable yet; T05 waits until the high-volume reads reach their quiet period.

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

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 57383@bnt-lap001
Assistant-Session: ef71febe-2a37-4c34-a979-2508ca973c91
This commit is contained in:
tegwick 2026-10-06 13:32:46 +02:00
parent 05ba1bc747
commit 01e800ccb8
5 changed files with 1523 additions and 4 deletions

View file

@ -31,7 +31,7 @@ Without MCP tools:
```bash
curl -s "http://127.0.0.1:8000/messages/?to_agent=state-hub&unread_only=true" \
| python3 -m json.tool
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read?reader=state-hub" \
-H "Content-Type: application/json" -d '{}'
```

View file

@ -71,7 +71,7 @@ Policies: `policies/intake-doc.md`, `work-item-dor.md`, `workstream-dod.md`.
Mark a message read:
```bash
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read?reader=state-hub" \
-H "Content-Type: application/json" -d '{}'
```

View file

@ -0,0 +1,755 @@
{
"captured_at": "2026-10-05T14:00:07.905341+00:00",
"api_base": "http://127.0.0.1:8000",
"workplan": "STATE-WP-0070",
"retired_interfaces": [],
"weekly_review": {
"generated_at": "2026-10-05T14:00:09.956234Z",
"window_start": "2026-09-28T14:00:09.504178Z",
"window_end": "2026-10-05T14:00:09.504178Z",
"cadence": "weekly",
"activity_core_handoff": {
"activity_id": "statehub-legacy-interface-review",
"cadence": "weekly",
"source_endpoint": "/legacy-meter/weekly-review",
"state_owner": "state-hub",
"scheduler_owner": "activity-core"
},
"interfaces": [
{
"interface": {
"id": "8051fb40-66c9-4dc4-a413-13e8573e04a3",
"interface_key": "event_subject:org.statehub.workstream.completed",
"interface_kind": "event_subject",
"legacy_since": "2026-06-04T06:09:42.198193Z",
"replacement_ref": "org.statehub.workplan.completed",
"owner_component": "state-hub.events",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:06.871333Z",
"created_at": "2026-06-04T06:09:42.198193Z",
"updated_at": "2026-08-31T08:55:06.756087Z"
},
"all_time": {
"calls": 247,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 247
},
"users": {
"unknown": 247
},
"components": {
"state-hub.events": 247
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-07-13T13:22:00.748140Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "cd9342fd-27e7-4a46-a1be-d41499e106a3",
"interface_key": "rest_api:DELETE /workstreams/{workstream_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-06-06T17:28:13.052813Z",
"replacement_ref": "/workplans/{workplan_id}",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.200322Z",
"created_at": "2026-06-06T17:28:13.052813Z",
"updated_at": "2026-08-31T08:55:08.089714Z"
},
"all_time": {
"calls": 1,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1
},
"users": {
"unknown": 1
},
"components": {
"unknown": 1
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-06-06T17:28:13.047529Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "d0294dce-7913-4268-94c3-1b2502aefb0f",
"interface_key": "rest_api:GET /sbom/",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:06:38.703608Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: founder-authorized retirement 2026-09-22; seven-day gate passed, replacement verified.",
"retired_at": "2026-09-22T09:22:56.503646Z",
"created_at": "2026-08-22T17:06:38.703608Z",
"updated_at": "2026-09-22T09:22:56.498576Z"
},
"all_time": {
"calls": 7,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 7
},
"users": {
"unknown": 7
},
"components": {
"unknown": 7
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-09-11T15:49:01.762688Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "2f77ac12-8c97-4974-a2f9-2996927982d1",
"interface_key": "rest_api:GET /sbom/report/licences/",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:06:41.978426Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: user-authorized retirement 2026-09-05; fresh seven-day gate passed, replacement_verified=true; direct SBOM Nexus endpoints returned HTTP 200 from the State Hub pod. Compatibility storage/routes retained for the final cutover.",
"retired_at": "2026-09-05T08:04:48.423727Z",
"created_at": "2026-08-22T17:06:41.978426Z",
"updated_at": "2026-09-05T08:04:48.418993Z"
},
"all_time": {
"calls": 5,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 5
},
"users": {
"unknown": 5
},
"components": {
"unknown": 5
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-28T18:46:10.642164Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "b627edf5-3302-4366-ba2e-547d32f634b5",
"interface_key": "rest_api:GET /sbom/snapshots/",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:06:37.057774Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: user-authorized retirement 2026-09-05; fresh seven-day gate passed, replacement_verified=true; direct SBOM Nexus endpoints returned HTTP 200 from the State Hub pod. Compatibility storage/routes retained for the final cutover.",
"retired_at": "2026-09-05T08:04:48.506447Z",
"created_at": "2026-08-22T17:06:37.057774Z",
"updated_at": "2026-09-05T08:04:48.501706Z"
},
"all_time": {
"calls": 7,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 7
},
"users": {
"unknown": 7
},
"components": {
"unknown": 7
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-28T18:46:10.694185Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "d03ee274-cd6f-4cd5-8f22-e4d298416299",
"interface_key": "rest_api:GET /sbom/snapshots/{snapshot_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:23:45.969876Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.470106Z",
"created_at": "2026-08-22T17:23:45.969876Z",
"updated_at": "2026-08-31T08:55:08.456139Z"
},
"all_time": {
"calls": 1,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1
},
"users": {
"unknown": 1
},
"components": {
"unknown": 1
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-22T17:23:45.967492Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "a6cb291e-8312-42f8-8a66-fde369482881",
"interface_key": "rest_api:GET /sbom/{repo_slug}",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:23:45.089542Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.754914Z",
"created_at": "2026-08-22T17:23:45.089542Z",
"updated_at": "2026-08-31T08:55:08.750826Z"
},
"all_time": {
"calls": 1,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1
},
"users": {
"unknown": 1
},
"components": {
"unknown": 1
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-22T17:23:45.670511Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "cad13f19-ddb1-49b9-86d0-8789b7599f3a",
"interface_key": "rest_api:GET /tasks/?workstream_id",
"interface_kind": "rest_api",
"legacy_since": "2026-08-29T10:01:31.546213Z",
"replacement_ref": "/tasks/?workplan_id=<workplan_id>",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-08-29T10:01:31.546213Z",
"updated_at": "2026-08-29T10:01:31.546213Z"
},
"all_time": {
"calls": 53,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 53
},
"users": {
"unknown": 53
},
"components": {
"unknown": 53
}
},
"window": {
"calls": 22,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 22
},
"users": {
"unknown": 22
},
"components": {
"unknown": 22
}
},
"last_seen_at": "2026-10-04T18:32:36.539797Z",
"retirement_candidate": false,
"retirement_reason": "22 call(s) in review window"
},
{
"interface": {
"id": "3e4a3d0b-08fa-45c3-91e2-4f514a914b97",
"interface_key": "rest_api:GET /workstreams/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T00:26:14.533764Z",
"replacement_ref": "/workplans/",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-06-04T00:26:14.533764Z",
"updated_at": "2026-06-04T00:26:14.533764Z"
},
"all_time": {
"calls": 830269,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 830269
},
"users": {
"unknown": 830269
},
"components": {
"unknown": 830269
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-21T13:50:37.994459Z",
"retirement_candidate": false,
"retirement_reason": "quiet 45d of 60d required for 830269 all-time call(s)"
},
{
"interface": {
"id": "e4c140ec-7479-46f9-b185-4b533f19d639",
"interface_key": "rest_api:GET /workstreams/workplan-index",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T05:20:58.321869Z",
"replacement_ref": "/workplans/index",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.939572Z",
"created_at": "2026-06-04T05:20:58.321869Z",
"updated_at": "2026-08-31T08:55:08.933482Z"
},
"all_time": {
"calls": 40,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 40
},
"users": {
"unknown": 40
},
"components": {
"unknown": 40
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-09-01T18:42:55.879795Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "3a00b19e-e7db-4403-98aa-a77c9ab61ecc",
"interface_key": "rest_api:GET /workstreams/{workstream_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T00:25:59.014966Z",
"replacement_ref": "/workplans/{workplan_id}",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-06-04T00:25:59.014966Z",
"updated_at": "2026-06-04T00:25:59.014966Z"
},
"all_time": {
"calls": 3411477,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 3411477
},
"users": {
"unknown": 3411477
},
"components": {
"unknown": 3411477
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-09-03T22:02:35.348363Z",
"retirement_candidate": false,
"retirement_reason": "quiet 31d of 60d required for 3411477 all-time call(s)"
},
{
"interface": {
"id": "69e1a255-a8b9-4101-8a68-b1bed23abfda",
"interface_key": "rest_api:GET /workstreams/{workstream_id}/dependencies/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T00:25:59.291135Z",
"replacement_ref": "/workplans/{workplan_id}/dependencies/",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-06-04T00:25:59.291135Z",
"updated_at": "2026-06-04T00:25:59.291135Z"
},
"all_time": {
"calls": 1643952,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1643952
},
"users": {
"unknown": 1643952
},
"components": {
"unknown": 1643952
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-21T13:50:30.082480Z",
"retirement_candidate": false,
"retirement_reason": "quiet 45d of 60d required for 1643952 all-time call(s)"
},
{
"interface": {
"id": "44734299-5fc3-4da9-a412-bf9884a56a44",
"interface_key": "rest_api:PATCH /messages/{id}/read broadcast-without-reader",
"interface_kind": "rest_api",
"legacy_since": "2026-09-23T15:30:53.835158Z",
"replacement_ref": "PATCH /messages/{id}/read?reader=<agent>",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-09-23T15:30:53.835158Z",
"updated_at": "2026-09-23T15:30:53.835158Z"
},
"all_time": {
"calls": 58,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 58
},
"users": {
"unknown": 58
},
"components": {
"unknown": 58
}
},
"window": {
"calls": 41,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 41
},
"users": {
"unknown": 41
},
"components": {
"unknown": 41
}
},
"last_seen_at": "2026-10-04T20:45:31.621421Z",
"retirement_candidate": false,
"retirement_reason": "41 call(s) in review window"
},
{
"interface": {
"id": "b1aae931-b51f-4a85-a723-865dd65f6132",
"interface_key": "rest_api:PATCH /workstreams/{workstream_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T06:09:41.901035Z",
"replacement_ref": "/workplans/{workplan_id}",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: founder-authorized retirement 2026-09-22; seven-day gate passed, replacement verified.",
"retired_at": "2026-09-22T09:22:56.610064Z",
"created_at": "2026-06-04T06:09:41.901035Z",
"updated_at": "2026-09-22T09:22:56.603117Z"
},
"all_time": {
"calls": 584,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 584
},
"users": {
"unknown": 584
},
"components": {
"unknown": 584
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-16T16:33:34.045078Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "ed6451c9-d2cc-4486-9afe-d3852782cabc",
"interface_key": "rest_api:POST /workstreams/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T07:40:24.168535Z",
"replacement_ref": "/workplans/",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: founder-authorized retirement 2026-09-22; seven-day gate passed, replacement verified.",
"retired_at": "2026-09-22T09:22:56.716384Z",
"created_at": "2026-06-04T07:40:24.168535Z",
"updated_at": "2026-09-22T09:22:56.710100Z"
},
"all_time": {
"calls": 811,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 811
},
"users": {
"unknown": 811
},
"components": {
"unknown": 811
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-16T01:03:41.093965Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "281fd706-b192-4194-8055-2d8733c115f9",
"interface_key": "rest_api:POST /workstreams/{workstream_id}/dependencies/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T22:57:37.149207Z",
"replacement_ref": "/workplans/{workplan_id}/dependencies/",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:09.130713Z",
"created_at": "2026-06-04T22:57:37.149207Z",
"updated_at": "2026-08-31T08:55:09.123888Z"
},
"all_time": {
"calls": 4975,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 4975
},
"users": {
"unknown": 4975
},
"components": {
"unknown": 4975
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-07-07T20:31:35.389791Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
}
],
"retirement_candidates": []
},
"days": 7
}

View file

@ -0,0 +1,755 @@
{
"captured_at": "2026-10-06T06:00:08.906080+00:00",
"api_base": "http://127.0.0.1:8000",
"workplan": "STATE-WP-0070",
"retired_interfaces": [],
"weekly_review": {
"generated_at": "2026-10-06T06:00:09.271570Z",
"window_start": "2026-09-29T06:00:09.178456Z",
"window_end": "2026-10-06T06:00:09.178456Z",
"cadence": "weekly",
"activity_core_handoff": {
"activity_id": "statehub-legacy-interface-review",
"cadence": "weekly",
"source_endpoint": "/legacy-meter/weekly-review",
"state_owner": "state-hub",
"scheduler_owner": "activity-core"
},
"interfaces": [
{
"interface": {
"id": "8051fb40-66c9-4dc4-a413-13e8573e04a3",
"interface_key": "event_subject:org.statehub.workstream.completed",
"interface_kind": "event_subject",
"legacy_since": "2026-06-04T06:09:42.198193Z",
"replacement_ref": "org.statehub.workplan.completed",
"owner_component": "state-hub.events",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:06.871333Z",
"created_at": "2026-06-04T06:09:42.198193Z",
"updated_at": "2026-08-31T08:55:06.756087Z"
},
"all_time": {
"calls": 247,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 247
},
"users": {
"unknown": 247
},
"components": {
"state-hub.events": 247
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-07-13T13:22:00.748140Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "cd9342fd-27e7-4a46-a1be-d41499e106a3",
"interface_key": "rest_api:DELETE /workstreams/{workstream_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-06-06T17:28:13.052813Z",
"replacement_ref": "/workplans/{workplan_id}",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.200322Z",
"created_at": "2026-06-06T17:28:13.052813Z",
"updated_at": "2026-08-31T08:55:08.089714Z"
},
"all_time": {
"calls": 1,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1
},
"users": {
"unknown": 1
},
"components": {
"unknown": 1
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-06-06T17:28:13.047529Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "d0294dce-7913-4268-94c3-1b2502aefb0f",
"interface_key": "rest_api:GET /sbom/",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:06:38.703608Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: founder-authorized retirement 2026-09-22; seven-day gate passed, replacement verified.",
"retired_at": "2026-09-22T09:22:56.503646Z",
"created_at": "2026-08-22T17:06:38.703608Z",
"updated_at": "2026-09-22T09:22:56.498576Z"
},
"all_time": {
"calls": 7,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 7
},
"users": {
"unknown": 7
},
"components": {
"unknown": 7
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-09-11T15:49:01.762688Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "2f77ac12-8c97-4974-a2f9-2996927982d1",
"interface_key": "rest_api:GET /sbom/report/licences/",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:06:41.978426Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: user-authorized retirement 2026-09-05; fresh seven-day gate passed, replacement_verified=true; direct SBOM Nexus endpoints returned HTTP 200 from the State Hub pod. Compatibility storage/routes retained for the final cutover.",
"retired_at": "2026-09-05T08:04:48.423727Z",
"created_at": "2026-08-22T17:06:41.978426Z",
"updated_at": "2026-09-05T08:04:48.418993Z"
},
"all_time": {
"calls": 5,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 5
},
"users": {
"unknown": 5
},
"components": {
"unknown": 5
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-28T18:46:10.642164Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "b627edf5-3302-4366-ba2e-547d32f634b5",
"interface_key": "rest_api:GET /sbom/snapshots/",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:06:37.057774Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: user-authorized retirement 2026-09-05; fresh seven-day gate passed, replacement_verified=true; direct SBOM Nexus endpoints returned HTTP 200 from the State Hub pod. Compatibility storage/routes retained for the final cutover.",
"retired_at": "2026-09-05T08:04:48.506447Z",
"created_at": "2026-08-22T17:06:37.057774Z",
"updated_at": "2026-09-05T08:04:48.501706Z"
},
"all_time": {
"calls": 7,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 7
},
"users": {
"unknown": 7
},
"components": {
"unknown": 7
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-28T18:46:10.694185Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "d03ee274-cd6f-4cd5-8f22-e4d298416299",
"interface_key": "rest_api:GET /sbom/snapshots/{snapshot_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:23:45.969876Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.470106Z",
"created_at": "2026-08-22T17:23:45.969876Z",
"updated_at": "2026-08-31T08:55:08.456139Z"
},
"all_time": {
"calls": 1,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1
},
"users": {
"unknown": 1
},
"components": {
"unknown": 1
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-22T17:23:45.967492Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "a6cb291e-8312-42f8-8a66-fde369482881",
"interface_key": "rest_api:GET /sbom/{repo_slug}",
"interface_kind": "rest_api",
"legacy_since": "2026-08-22T17:23:45.089542Z",
"replacement_ref": "sbom-nexus:/sbom/",
"owner_component": "state-hub.sbom-compat",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.754914Z",
"created_at": "2026-08-22T17:23:45.089542Z",
"updated_at": "2026-08-31T08:55:08.750826Z"
},
"all_time": {
"calls": 1,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1
},
"users": {
"unknown": 1
},
"components": {
"unknown": 1
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-22T17:23:45.670511Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "cad13f19-ddb1-49b9-86d0-8789b7599f3a",
"interface_key": "rest_api:GET /tasks/?workstream_id",
"interface_kind": "rest_api",
"legacy_since": "2026-08-29T10:01:31.546213Z",
"replacement_ref": "/tasks/?workplan_id=<workplan_id>",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-08-29T10:01:31.546213Z",
"updated_at": "2026-08-29T10:01:31.546213Z"
},
"all_time": {
"calls": 53,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 53
},
"users": {
"unknown": 53
},
"components": {
"unknown": 53
}
},
"window": {
"calls": 22,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 22
},
"users": {
"unknown": 22
},
"components": {
"unknown": 22
}
},
"last_seen_at": "2026-10-04T18:32:36.539797Z",
"retirement_candidate": false,
"retirement_reason": "22 call(s) in review window"
},
{
"interface": {
"id": "3e4a3d0b-08fa-45c3-91e2-4f514a914b97",
"interface_key": "rest_api:GET /workstreams/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T00:26:14.533764Z",
"replacement_ref": "/workplans/",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-06-04T00:26:14.533764Z",
"updated_at": "2026-06-04T00:26:14.533764Z"
},
"all_time": {
"calls": 830269,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 830269
},
"users": {
"unknown": 830269
},
"components": {
"unknown": 830269
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-21T13:50:37.994459Z",
"retirement_candidate": false,
"retirement_reason": "quiet 45d of 60d required for 830269 all-time call(s)"
},
{
"interface": {
"id": "e4c140ec-7479-46f9-b185-4b533f19d639",
"interface_key": "rest_api:GET /workstreams/workplan-index",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T05:20:58.321869Z",
"replacement_ref": "/workplans/index",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:08.939572Z",
"created_at": "2026-06-04T05:20:58.321869Z",
"updated_at": "2026-08-31T08:55:08.933482Z"
},
"all_time": {
"calls": 40,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 40
},
"users": {
"unknown": 40
},
"components": {
"unknown": 40
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-09-01T18:42:55.879795Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "3a00b19e-e7db-4403-98aa-a77c9ab61ecc",
"interface_key": "rest_api:GET /workstreams/{workstream_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T00:25:59.014966Z",
"replacement_ref": "/workplans/{workplan_id}",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-06-04T00:25:59.014966Z",
"updated_at": "2026-06-04T00:25:59.014966Z"
},
"all_time": {
"calls": 3411477,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 3411477
},
"users": {
"unknown": 3411477
},
"components": {
"unknown": 3411477
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-09-03T22:02:35.348363Z",
"retirement_candidate": false,
"retirement_reason": "quiet 32d of 60d required for 3411477 all-time call(s)"
},
{
"interface": {
"id": "69e1a255-a8b9-4101-8a68-b1bed23abfda",
"interface_key": "rest_api:GET /workstreams/{workstream_id}/dependencies/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T00:25:59.291135Z",
"replacement_ref": "/workplans/{workplan_id}/dependencies/",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-06-04T00:25:59.291135Z",
"updated_at": "2026-06-04T00:25:59.291135Z"
},
"all_time": {
"calls": 1643952,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 1643952
},
"users": {
"unknown": 1643952
},
"components": {
"unknown": 1643952
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-21T13:50:30.082480Z",
"retirement_candidate": false,
"retirement_reason": "quiet 45d of 60d required for 1643952 all-time call(s)"
},
{
"interface": {
"id": "44734299-5fc3-4da9-a412-bf9884a56a44",
"interface_key": "rest_api:PATCH /messages/{id}/read broadcast-without-reader",
"interface_kind": "rest_api",
"legacy_since": "2026-09-23T15:30:53.835158Z",
"replacement_ref": "PATCH /messages/{id}/read?reader=<agent>",
"owner_component": "state-hub.api",
"status": "legacy",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": null,
"retired_at": null,
"created_at": "2026-09-23T15:30:53.835158Z",
"updated_at": "2026-09-23T15:30:53.835158Z"
},
"all_time": {
"calls": 60,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 60
},
"users": {
"unknown": 60
},
"components": {
"unknown": 60
}
},
"window": {
"calls": 38,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 38
},
"users": {
"unknown": 38
},
"components": {
"unknown": 38
}
},
"last_seen_at": "2026-10-05T22:30:20.654807Z",
"retirement_candidate": false,
"retirement_reason": "38 call(s) in review window"
},
{
"interface": {
"id": "b1aae931-b51f-4a85-a723-865dd65f6132",
"interface_key": "rest_api:PATCH /workstreams/{workstream_id}",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T06:09:41.901035Z",
"replacement_ref": "/workplans/{workplan_id}",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: founder-authorized retirement 2026-09-22; seven-day gate passed, replacement verified.",
"retired_at": "2026-09-22T09:22:56.610064Z",
"created_at": "2026-06-04T06:09:41.901035Z",
"updated_at": "2026-09-22T09:22:56.603117Z"
},
"all_time": {
"calls": 584,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 584
},
"users": {
"unknown": 584
},
"components": {
"unknown": 584
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-16T16:33:34.045078Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "ed6451c9-d2cc-4486-9afe-d3852782cabc",
"interface_key": "rest_api:POST /workstreams/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T07:40:24.168535Z",
"replacement_ref": "/workplans/",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "STATE-WP-0079-T05: founder-authorized retirement 2026-09-22; seven-day gate passed, replacement verified.",
"retired_at": "2026-09-22T09:22:56.716384Z",
"created_at": "2026-06-04T07:40:24.168535Z",
"updated_at": "2026-09-22T09:22:56.710100Z"
},
"all_time": {
"calls": 811,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 811
},
"users": {
"unknown": 811
},
"components": {
"unknown": 811
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-08-16T01:03:41.093965Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
},
{
"interface": {
"id": "281fd706-b192-4194-8055-2d8733c115f9",
"interface_key": "rest_api:POST /workstreams/{workstream_id}/dependencies/",
"interface_kind": "rest_api",
"legacy_since": "2026-06-04T22:57:37.149207Z",
"replacement_ref": "/workplans/{workplan_id}/dependencies/",
"owner_component": "state-hub.api",
"status": "retired",
"replacement_verified": true,
"manual_hold": false,
"hold_reason": null,
"notes": "Retired by STATE-WP-0069 closeout",
"retired_at": "2026-08-31T08:55:09.130713Z",
"created_at": "2026-06-04T22:57:37.149207Z",
"updated_at": "2026-08-31T08:55:09.123888Z"
},
"all_time": {
"calls": 4975,
"tenant_count": 1,
"user_count": 1,
"component_count": 1,
"tenants": {
"unknown": 4975
},
"users": {
"unknown": 4975
},
"components": {
"unknown": 4975
}
},
"window": {
"calls": 0,
"tenant_count": 0,
"user_count": 0,
"component_count": 0,
"tenants": {},
"users": {},
"components": {}
},
"last_seen_at": "2026-07-07T20:31:35.389791Z",
"retirement_candidate": false,
"retirement_reason": "already retired"
}
],
"retirement_candidates": []
},
"days": 7
}

View file

@ -451,8 +451,8 @@ that gate. RAIL-FAB-WP-0028 remains proposed and owns hosted Fabric readiness.
```task
id: STATE-WP-0079-T05
status: wait
wait_until: 2026-10-06
blocking_reason: "Legacy-meter evidence must cover a full week (capture fixed 2026-08-20); earliest review 2026-10-06, then retire only items with zero callers."
wait_until: 2026-10-20
blocking_reason: "2026-10-06 weekly review: zero retirement candidates. Three high-volume /workstreams reads need 60 quiet days (earliest 2026-10-20); two interfaces still have live callers."
priority: medium
state_hub_task_id: "f6cf8c01-eb59-5ca8-a541-23928d4a000c"
```
@ -641,6 +641,15 @@ fresh central meter demonstrates the required zero normal read/write window.
2026-10-03: human gate routed to hub decision 2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd (D5: Production risk acceptance and live-host authorizations) by CUST-WP-0075; resolving that decision raises C-40 here.
2026-10-06 review (`docs/evidence/legacy-meter-weekly-review-20261006.json`,
window 2026-09-29..10-06): no retirement candidates. `GET /workstreams/` and
`GET /workstreams/{id}/dependencies/` are quiet 45 of 60 days (eligible about
2026-10-20); `GET /workstreams/{id}` is quiet 32 of 60 (about 2026-11-02).
`GET /tasks/?workstream_id` had 22 calls (last 2026-10-04) and
`PATCH /messages/{id}/read` without a reader had 38 (last 2026-10-05); neither
caller is code in this repo. This repo's AGENTS.md and session protocol now pass
`?reader=state-hub`; the global agent instructions still show the reader-less form.
## Attribute and finish migrating remaining legacy readers
```task