diff --git a/docs/evidence/legacy-meter-weekly-review-20260820.json b/docs/evidence/legacy-meter-weekly-review-20260820.json index 307b108..7446dfd 100644 --- a/docs/evidence/legacy-meter-weekly-review-20260820.json +++ b/docs/evidence/legacy-meter-weekly-review-20260820.json @@ -1,12 +1,12 @@ { - "captured_at": "2026-08-19T23:12:05.714391+00:00", + "captured_at": "2026-08-20T05:27:26.224218+00:00", "api_base": "http://127.0.0.1:8000", "workplan": "STATE-WP-0070", "retired_interfaces": [], "weekly_review": { - "generated_at": "2026-08-19T23:12:05.708668Z", - "window_start": "2026-08-12T23:12:05.303562Z", - "window_end": "2026-08-19T23:12:05.303562Z", + "generated_at": "2026-08-20T05:27:26.217390Z", + "window_start": "2026-08-13T05:27:26.168151Z", + "window_end": "2026-08-20T05:27:26.168151Z", "cadence": "weekly", "activity_core_handoff": { "activity_id": "statehub-legacy-interface-review", @@ -69,14 +69,14 @@ "legacy_since": "2026-07-10T13:19:44.205900Z", "replacement_ref": "create_workplan", "owner_component": "state-hub.mcp", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:19.851030Z", "created_at": "2026-07-10T13:19:44.205900Z", - "updated_at": "2026-07-10T13:19:44.205900Z" + "updated_at": "2026-08-20T05:27:19.844807Z" }, "all_time": { "calls": 2, @@ -103,8 +103,8 @@ "components": {} }, "last_seen_at": "2026-07-10T13:20:43.378546Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -114,14 +114,14 @@ "legacy_since": "2026-07-10T13:19:26.075491Z", "replacement_ref": "list_workplans", "owner_component": "state-hub.mcp", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:19.883196Z", "created_at": "2026-07-10T13:19:26.075491Z", - "updated_at": "2026-07-10T13:19:26.075491Z" + "updated_at": "2026-08-20T05:27:19.876635Z" }, "all_time": { "calls": 2, @@ -148,8 +148,8 @@ "components": {} }, "last_seen_at": "2026-07-10T13:20:42.374940Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -159,14 +159,14 @@ "legacy_since": "2026-07-10T13:19:44.255216Z", "replacement_ref": "update_workplan", "owner_component": "state-hub.mcp", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:19.907081Z", "created_at": "2026-07-10T13:19:44.255216Z", - "updated_at": "2026-07-10T13:19:44.255216Z" + "updated_at": "2026-08-20T05:27:19.902177Z" }, "all_time": { "calls": 0, @@ -187,8 +187,8 @@ "components": {} }, "last_seen_at": null, - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -198,14 +198,14 @@ "legacy_since": "2026-07-10T13:19:44.303612Z", "replacement_ref": "update_workplan_status", "owner_component": "state-hub.mcp", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:19.928988Z", "created_at": "2026-07-10T13:19:44.303612Z", - "updated_at": "2026-07-10T13:19:44.303612Z" + "updated_at": "2026-08-20T05:27:19.925652Z" }, "all_time": { "calls": 0, @@ -226,8 +226,8 @@ "components": {} }, "last_seen_at": null, - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -237,14 +237,14 @@ "legacy_since": "2026-07-10T13:19:44.344493Z", "replacement_ref": "state://workplans/{topic_slug}", "owner_component": "state-hub.mcp", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:19.948467Z", "created_at": "2026-07-10T13:19:44.344493Z", - "updated_at": "2026-07-10T13:19:44.344493Z" + "updated_at": "2026-08-20T05:27:19.944874Z" }, "all_time": { "calls": 1, @@ -271,8 +271,8 @@ "components": {} }, "last_seen_at": "2026-07-10T13:20:34.491811Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -282,14 +282,14 @@ "legacy_since": "2026-06-06T17:28:13.052813Z", "replacement_ref": "/workplans/{workplan_id}", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:19.972086Z", "created_at": "2026-06-06T17:28:13.052813Z", - "updated_at": "2026-06-06T17:28:13.052813Z" + "updated_at": "2026-08-20T05:27:19.966289Z" }, "all_time": { "calls": 1, @@ -316,8 +316,8 @@ "components": {} }, "last_seen_at": "2026-06-06T17:28:13.047529Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -327,14 +327,14 @@ "legacy_since": "2026-07-09T23:07:53.093223Z", "replacement_ref": "/decisions/?workplan_id=", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:19.996130Z", "created_at": "2026-07-09T23:07:53.093223Z", - "updated_at": "2026-07-09T23:07:53.093223Z" + "updated_at": "2026-08-20T05:27:19.991877Z" }, "all_time": { "calls": 1, @@ -361,8 +361,8 @@ "components": {} }, "last_seen_at": "2026-07-09T23:07:53.083299Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -372,14 +372,14 @@ "legacy_since": "2026-07-13T22:04:03.911449Z", "replacement_ref": "/progress/?workplan_id=", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.017065Z", "created_at": "2026-07-13T22:04:03.911449Z", - "updated_at": "2026-07-13T22:04:03.911449Z" + "updated_at": "2026-08-20T05:27:20.013500Z" }, "all_time": { "calls": 2, @@ -406,8 +406,8 @@ "components": {} }, "last_seen_at": "2026-08-12T08:55:33.912995Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -502,8 +502,8 @@ "components": {} }, "last_seen_at": "2026-08-10T18:06:05.032338Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "quiet 9d of 60d required for 144086 all-time call(s)" }, { "interface": { @@ -513,14 +513,14 @@ "legacy_since": "2026-06-04T05:20:58.321869Z", "replacement_ref": "/workplans/index", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.041850Z", "created_at": "2026-06-04T05:20:58.321869Z", - "updated_at": "2026-06-04T05:20:58.321869Z" + "updated_at": "2026-08-20T05:27:20.035160Z" }, "all_time": { "calls": 30, @@ -547,8 +547,8 @@ "components": {} }, "last_seen_at": "2026-07-03T05:20:34.534439Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -592,8 +592,8 @@ "components": {} }, "last_seen_at": "2026-07-31T16:25:32.004042Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "quiet 19d of 60d required for 511406 all-time call(s)" }, { "interface": { @@ -637,8 +637,8 @@ "components": {} }, "last_seen_at": "2026-07-08T21:14:12.747005Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "quiet 42d of 60d required for 255865 all-time call(s)" }, { "interface": { @@ -648,14 +648,14 @@ "legacy_since": "2026-06-04T06:09:41.901035Z", "replacement_ref": "/workplans/{workplan_id}", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.069758Z", "created_at": "2026-06-04T06:09:41.901035Z", - "updated_at": "2026-06-04T06:09:41.901035Z" + "updated_at": "2026-08-20T05:27:20.062648Z" }, "all_time": { "calls": 571, @@ -682,8 +682,8 @@ "components": {} }, "last_seen_at": "2026-07-08T20:49:12.335710Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -693,14 +693,14 @@ "legacy_since": "2026-07-09T22:56:35.473130Z", "replacement_ref": "POST /decisions/ with workplan_id", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.093372Z", "created_at": "2026-07-09T22:56:35.473130Z", - "updated_at": "2026-07-09T22:56:35.473130Z" + "updated_at": "2026-08-20T05:27:20.090180Z" }, "all_time": { "calls": 3, @@ -727,8 +727,8 @@ "components": {} }, "last_seen_at": "2026-07-09T22:57:05.912456Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -738,14 +738,14 @@ "legacy_since": "2026-07-08T23:35:09.148333Z", "replacement_ref": "POST /progress/ with workplan_id", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.114395Z", "created_at": "2026-07-08T23:35:09.148333Z", - "updated_at": "2026-07-08T23:35:09.148333Z" + "updated_at": "2026-08-20T05:27:20.110090Z" }, "all_time": { "calls": 14, @@ -772,8 +772,8 @@ "components": {} }, "last_seen_at": "2026-07-10T08:34:42.959724Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -783,14 +783,14 @@ "legacy_since": "2026-07-08T22:38:29.405720Z", "replacement_ref": "POST /tasks/ with workplan_id", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.134796Z", "created_at": "2026-07-08T22:38:29.405720Z", - "updated_at": "2026-07-08T22:38:29.405720Z" + "updated_at": "2026-08-20T05:27:20.131430Z" }, "all_time": { "calls": 5, @@ -817,8 +817,8 @@ "components": {} }, "last_seen_at": "2026-07-08T22:38:29.976918Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -828,14 +828,14 @@ "legacy_since": "2026-06-04T07:40:24.168535Z", "replacement_ref": "/workplans/", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.157133Z", "created_at": "2026-06-04T07:40:24.168535Z", - "updated_at": "2026-06-04T07:40:24.168535Z" + "updated_at": "2026-08-20T05:27:20.150639Z" }, "all_time": { "calls": 824, @@ -862,8 +862,8 @@ "components": {} }, "last_seen_at": "2026-07-08T20:38:05.903144Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -873,14 +873,14 @@ "legacy_since": "2026-06-04T22:57:37.149207Z", "replacement_ref": "/workplans/{workplan_id}/dependencies/", "owner_component": "state-hub.api", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": null, + "notes": "Retired by STATE-WP-0079-T05 (cutover slice E2); evidence: 7d review window + volume-scaled quiet ladder, capture 2026-08-20", + "retired_at": "2026-08-20T05:27:20.186201Z", "created_at": "2026-06-04T22:57:37.149207Z", - "updated_at": "2026-06-04T22:57:37.149207Z" + "updated_at": "2026-08-20T05:27:20.181406Z" }, "all_time": { "calls": 4971, @@ -907,810 +907,11 @@ "components": {} }, "last_seen_at": "2026-07-01T22:09:24.229011Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" + "retirement_candidate": false, + "retirement_reason": "already retired" } ], - "retirement_candidates": [ - { - "interface": { - "id": "63ed90e3-42b4-431a-94db-e1254a52f9e2", - "interface_key": "mcp:create_workstream", - "interface_kind": "mcp_tool", - "legacy_since": "2026-07-10T13:19:44.205900Z", - "replacement_ref": "create_workplan", - "owner_component": "state-hub.mcp", - "status": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, - "created_at": "2026-07-10T13:19:44.205900Z", - "updated_at": "2026-07-10T13:19:44.205900Z" - }, - "all_time": { - "calls": 2, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 2 - }, - "users": { - "unknown": 2 - }, - "components": { - "state-hub.mcp": 2 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-10T13:20:43.378546Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "b6a5fe44-fb85-4ef7-a273-78d09da777af", - "interface_key": "mcp:list_workstreams", - "interface_kind": "mcp_tool", - "legacy_since": "2026-07-10T13:19:26.075491Z", - "replacement_ref": "list_workplans", - "owner_component": "state-hub.mcp", - "status": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-07-10T13:19:26.075491Z", - "updated_at": "2026-07-10T13:19:26.075491Z" - }, - "all_time": { - "calls": 2, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 2 - }, - "users": { - "unknown": 2 - }, - "components": { - "state-hub.mcp": 2 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-10T13:20:42.374940Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "53c3372b-307d-4d6a-8ea4-bc36cacdcaf2", - "interface_key": "mcp:update_workstream", - "interface_kind": "mcp_tool", - "legacy_since": "2026-07-10T13:19:44.255216Z", - "replacement_ref": "update_workplan", - "owner_component": "state-hub.mcp", - "status": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, - "created_at": "2026-07-10T13:19:44.255216Z", - "updated_at": "2026-07-10T13:19:44.255216Z" - }, - "all_time": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": null, - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "bed4d08a-3471-48f5-9f0e-f9d550383a26", - "interface_key": "mcp:update_workstream_status", - "interface_kind": "mcp_tool", - "legacy_since": "2026-07-10T13:19:44.303612Z", - "replacement_ref": "update_workplan_status", - "owner_component": "state-hub.mcp", - "status": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, - "created_at": "2026-07-10T13:19:44.303612Z", - "updated_at": "2026-07-10T13:19:44.303612Z" - }, - "all_time": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": null, - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "46900dc2-0893-405b-ba59-80f31fb6ebb1", - "interface_key": "state://workstreams/{topic_slug}", - "interface_kind": "mcp_tool", - "legacy_since": "2026-07-10T13:19:44.344493Z", - "replacement_ref": "state://workplans/{topic_slug}", - "owner_component": "state-hub.mcp", - "status": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": "Registered by STATE-WP-0070 T03 \u2014 zero-window streak starts at registration", - "retired_at": null, - "created_at": "2026-07-10T13:19:44.344493Z", - "updated_at": "2026-07-10T13:19:44.344493Z" - }, - "all_time": { - "calls": 1, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 1 - }, - "users": { - "unknown": 1 - }, - "components": { - "state-hub.mcp": 1 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-10T13:20:34.491811Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-06-06T17:28:13.052813Z", - "updated_at": "2026-06-06T17:28:13.052813Z" - }, - "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": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "a4e0948c-cd4a-461e-8ae2-7fd7b51d04a7", - "interface_key": "rest_api:GET /decisions/?workstream_id", - "interface_kind": "rest_api", - "legacy_since": "2026-07-09T23:07:53.093223Z", - "replacement_ref": "/decisions/?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-07-09T23:07:53.093223Z", - "updated_at": "2026-07-09T23:07:53.093223Z" - }, - "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-07-09T23:07:53.083299Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "70a9346e-e0ee-42ac-874f-f160580b54dd", - "interface_key": "rest_api:GET /progress/?workstream_id", - "interface_kind": "rest_api", - "legacy_since": "2026-07-13T22:04:03.911449Z", - "replacement_ref": "/progress/?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-07-13T22:04:03.911449Z", - "updated_at": "2026-07-13T22:04:03.911449Z" - }, - "all_time": { - "calls": 2, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 2 - }, - "users": { - "unknown": 2 - }, - "components": { - "unknown": 2 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-08-12T08:55:33.912995Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage 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": 144086, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 144086 - }, - "users": { - "unknown": 144086 - }, - "components": { - "unknown": 144086 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-08-10T18:06:05.032338Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-06-04T05:20:58.321869Z", - "updated_at": "2026-06-04T05:20:58.321869Z" - }, - "all_time": { - "calls": 30, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 30 - }, - "users": { - "unknown": 30 - }, - "components": { - "unknown": 30 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-03T05:20:34.534439Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "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": 511406, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 511406 - }, - "users": { - "unknown": 511406 - }, - "components": { - "unknown": 511406 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-31T16:25:32.004042Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "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": 255865, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 255865 - }, - "users": { - "unknown": 255865 - }, - "components": { - "unknown": 255865 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-08T21:14:12.747005Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage 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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-06-04T06:09:41.901035Z", - "updated_at": "2026-06-04T06:09:41.901035Z" - }, - "all_time": { - "calls": 571, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 571 - }, - "users": { - "unknown": 571 - }, - "components": { - "unknown": 571 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-08T20:49:12.335710Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "4aea9591-970b-4918-ac4a-4da95a0a1a8c", - "interface_key": "rest_api:POST /decisions/ workstream_id", - "interface_kind": "rest_api", - "legacy_since": "2026-07-09T22:56:35.473130Z", - "replacement_ref": "POST /decisions/ with 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-07-09T22:56:35.473130Z", - "updated_at": "2026-07-09T22:56:35.473130Z" - }, - "all_time": { - "calls": 3, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 3 - }, - "users": { - "unknown": 3 - }, - "components": { - "unknown": 3 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-09T22:57:05.912456Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "4a70583c-1e41-4ec1-99a9-728856a7d79c", - "interface_key": "rest_api:POST /progress/ workstream_id", - "interface_kind": "rest_api", - "legacy_since": "2026-07-08T23:35:09.148333Z", - "replacement_ref": "POST /progress/ with 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-07-08T23:35:09.148333Z", - "updated_at": "2026-07-08T23:35:09.148333Z" - }, - "all_time": { - "calls": 14, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 14 - }, - "users": { - "unknown": 14 - }, - "components": { - "unknown": 14 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-10T08:34:42.959724Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "interface": { - "id": "6df4e443-7bf1-461a-923b-a6eb52fe7b07", - "interface_key": "rest_api:POST /tasks/ workstream_id", - "interface_kind": "rest_api", - "legacy_since": "2026-07-08T22:38:29.405720Z", - "replacement_ref": "POST /tasks/ with 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-07-08T22:38:29.405720Z", - "updated_at": "2026-07-08T22:38:29.405720Z" - }, - "all_time": { - "calls": 5, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 5 - }, - "users": { - "unknown": 5 - }, - "components": { - "state-hub.fix-consistency": 5 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-08T22:38:29.976918Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-06-04T07:40:24.168535Z", - "updated_at": "2026-06-04T07:40:24.168535Z" - }, - "all_time": { - "calls": 824, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 824 - }, - "users": { - "unknown": 824 - }, - "components": { - "unknown": 824 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-08T20:38:05.903144Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - }, - { - "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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-06-04T22:57:37.149207Z", - "updated_at": "2026-06-04T22:57:37.149207Z" - }, - "all_time": { - "calls": 4971, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 4971 - }, - "users": { - "unknown": 4971 - }, - "components": { - "unknown": 4971 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-01T22:09:24.229011Z", - "retirement_candidate": true, - "retirement_reason": "no measured usage in review window" - } - ] + "retirement_candidates": [] }, "days": 7 } diff --git a/docs/retirement-cutover-slice-plan.md b/docs/retirement-cutover-slice-plan.md index 7409b0f..7675613 100644 --- a/docs/retirement-cutover-slice-plan.md +++ b/docs/retirement-cutover-slice-plan.md @@ -242,7 +242,9 @@ the low-volume REST aliases, plus `PATCH /workstreams/{id}` (571 calls, quiet | `GET /workstreams/{id}` | 511 406 | quiet 19d of 60d | | `GET /workstreams/{id}/dependencies/` | 255 865 | quiet 42d of 60d | -E2 can therefore proceed for the 15, which is the bulk of the slice. The four +**Executed 2026-08-20:** the 15 are retired; the meter reads 16 retired / 4 +legacy with 0 outstanding candidates. Journalled at +`the-custodian/docs/retired-legacy-interfaces.md`. The four held are the three six-figure read paths and the one with live traffic — exactly the set where a false retirement would hurt most. They clear on their own as the quiet counter runs, provided no new traffic arrives; the earliest, diff --git a/workplans/STATE-WP-0079-retirement-strangler.md b/workplans/STATE-WP-0079-retirement-strangler.md index dafe128..ba9adca 100644 --- a/workplans/STATE-WP-0079-retirement-strangler.md +++ b/workplans/STATE-WP-0079-retirement-strangler.md @@ -163,10 +163,24 @@ read paths (`GET /workstreams/`, `GET /workstreams/{id}`, `GET /workstreams/{id}/dependencies/`) and `GET /tasks/?workstream_id`, which still has live traffic. Covered by 7 new tests in `tests/test_legacy_meter.py`. -**Remaining work for this task:** execute the retirement of the 15 evidenced -interfaces, then re-review the 4 held ones as their quiet counters run. The -ladder is evaluated at review time, so re-capture before deciding. See -`docs/retirement-cutover-slice-plan.md` § E2. +**Slice E2 executed (2026-08-20):** the 15 evidenced interfaces are retired in +the legacy meter — all four `workstream` MCP tools, the `state://` resource, and +the low-volume REST aliases including `PATCH /workstreams/{id}` (571 calls), +`POST /workstreams/` (824) and `POST /workstreams/{id}/dependencies/` (4 971). +Meter now reads 16 retired / 4 legacy, 0 outstanding candidates. Evidence: +`docs/evidence/legacy-meter-weekly-review-20260820.json`. + +Retirements are journalled fleet-side at +`the-custodian/docs/retired-legacy-interfaces.md` — deliberately outside this +repo, since State Hub is being archived and the record must outlive it. + +**Remaining work for this task:** the 4 held interfaces +(`GET /workstreams/`, `GET /workstreams/{id}`, +`GET /workstreams/{id}/dependencies/`, `GET /tasks/?workstream_id`) clear as +their quiet counters run; earliest is 18 more silent days. Re-capture before +deciding — the ladder evaluates at review time. Then the remaining `retire` +inventory items outside E2: `suggestion-backlog` (E1, 17) and `dashboard-meta` +(E3, 1); `legacy-meter` itself (E4, 9) retires last, being the instrument. ## Stabilization window and archive prep