diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index 27d76f3..f2c3c88 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -55,7 +55,7 @@ | workplan | STATE-WP-0081 | proposed | — | workplans/STATE-WP-0081-cluster-self-sufficiency-and-registrar.md | | workplan | STATE-WP-0082 | finished | — | workplans/STATE-WP-0082-multi-owner-review-contracts-and-receipts.md | | workplan | STATE-WP-0083 | finished | — | workplans/STATE-WP-0083-forge-derived-projection-reset.md | -| workplan | STATE-WP-0084 | active | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | +| workplan | STATE-WP-0084 | finished | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | | workplan | STATE-WP-0085 | active | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | | workplan | STATE-WP-0086 | finished | — | workplans/STATE-WP-0086-fast-forge-projection-reconcile.md | | task | STATE-WP-ADHOC-2026-06-04-T01 | done | — | workplans/ADHOC-2026-06-04.md | @@ -322,9 +322,9 @@ | task | STATE-WP-0083-T07 | done | — | workplans/STATE-WP-0083-forge-derived-projection-reset.md | | task | STATE-WP-0083-T08 | done | — | workplans/STATE-WP-0083-forge-derived-projection-reset.md | | task | STATE-WP-0084-T01 | done | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | -| task | STATE-WP-0084-T02 | progress | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | -| task | STATE-WP-0084-T03 | progress | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | -| task | STATE-WP-0084-T04 | wait | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | +| task | STATE-WP-0084-T02 | done | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | +| task | STATE-WP-0084-T03 | done | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | +| task | STATE-WP-0084-T04 | done | — | workplans/STATE-WP-0084-forge-read-for-private-repositories.md | | task | STATE-WP-0085-T01 | done | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | | task | STATE-WP-0085-T02 | done | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | | task | STATE-WP-0085-T03 | done | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | @@ -333,7 +333,7 @@ | task | STATE-WP-0085-T06 | done | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | | task | STATE-WP-0085-T07 | done | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | | task | STATE-WP-0085-T08 | done | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | -| task | STATE-WP-0085-T09 | progress | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | +| task | STATE-WP-0085-T09 | wait | — | workplans/STATE-WP-0085-repository-lineage-preserving-rename.md | | task | STATE-WP-0086-T01 | done | — | workplans/STATE-WP-0086-fast-forge-projection-reconcile.md | | task | STATE-WP-0086-T02 | done | — | workplans/STATE-WP-0086-fast-forge-projection-reconcile.md | | task | STATE-WP-0086-T03 | done | — | workplans/STATE-WP-0086-fast-forge-projection-reconcile.md | diff --git a/docs/evidence/STATE-WP-0084-private-forge-cutover-2026-08-31.md b/docs/evidence/STATE-WP-0084-private-forge-cutover-2026-08-31.md new file mode 100644 index 0000000..957d53d --- /dev/null +++ b/docs/evidence/STATE-WP-0084-private-forge-cutover-2026-08-31.md @@ -0,0 +1,34 @@ +# STATE-WP-0084 private Forge derivation cutover evidence + +Date: 2026-08-31 + +The `railliance01` State Hub deployment is healthy on image +`main-a32112e`. Helm has `forgeRead.enabled: true`; the pod uses ServiceAccount +`state-hub`, a projected OpenBao Kubernetes token, and coordinate-only runtime +configuration. A non-secret in-pod check returned `available` from +`forge_read_token()`. + +A transaction-rolled-back review derived all nine `rapp-*` repositories from +Forgejo before any projection write. It returned seven ordinary update sets and +two no-ops, with zero creations, retirements, refusals, or errors. The reviewed +commits were: + +| Repository | Forge commit | Review result | +| --- | --- | --- | +| `rapp-core-hub` | `b322bf1531650a09a9ef0669d3c63091532ab078` | update | +| `rapp-issue-core` | `a78f38cfd8afb29ed23d150a4ea3e3dcd1f35381` | update | +| `rapp-openbao` | `89bc86b8aff549953ec744395ca47578aaac7591` | update | +| `rapp-policy-nexus` | `41c42e8d1a653af666da2e5e7e008a27464d9b87` | update | +| `rapp-postgres` | `2b7fe861f984f8539ca63ede662fe5719ace895a` | update | +| `rapp-qonto` | `240c462b9412a3932cc27dbbc13933378f4af07e` | update | +| `rapp-sbom-nexus` | `1566bcf69fc0757db5efc67f78b14af10d944c1b` | no-op | +| `rapp-tenant-engine` | `70a6dc3113b4da070690bf6e7a21c2bac67e2004` | no-op | +| `rapp-user-engine` | `608690d80d63cc373af17d387af29adec8a53c7b` | update | + +Each commit was then reconciled through the guarded primary-only +`POST /repos/{slug}/work-record-projection/reconcile` API with +`acknowledge_retirements: false`. A second rolled-back review returned +`noop: 9`, with zero errors and every change count at zero. + +No token value, credential-bearing URL, or private preflight artifact was +printed or stored in this evidence. diff --git a/docs/evidence/legacy-meter-weekly-review-20260831.json b/docs/evidence/legacy-meter-weekly-review-20260831.json index ae20952..1b8f37c 100644 --- a/docs/evidence/legacy-meter-weekly-review-20260831.json +++ b/docs/evidence/legacy-meter-weekly-review-20260831.json @@ -1,12 +1,109 @@ { - "captured_at": "2026-08-30T22:00:05.364069+00:00", + "captured_at": "2026-08-31T08:55:08.691404+00:00", "api_base": "http://127.0.0.1:8000", "workplan": "STATE-WP-0070", - "retired_interfaces": [], + "retired_interfaces": [ + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + } + ], "weekly_review": { - "generated_at": "2026-08-30T22:00:09.083767Z", - "window_start": "2026-08-23T22:00:08.898813Z", - "window_end": "2026-08-30T22:00:08.898813Z", + "generated_at": "2026-08-31T08:55:09.323212Z", + "window_start": "2026-08-24T08:55:09.243515Z", + "window_end": "2026-08-31T08:55:09.243515Z", "cadence": "weekly", "activity_core_handoff": { "activity_id": "statehub-legacy-interface-review", @@ -24,14 +121,14 @@ "legacy_since": "2026-06-04T06:09:42.198193Z", "replacement_ref": "org.statehub.workplan.completed", "owner_component": "state-hub.events", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": 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-06-04T06:09:42.198193Z" + "updated_at": "2026-08-31T08:55:06.756087Z" }, "all_time": { "calls": 247, @@ -58,8 +155,8 @@ "components": {} }, "last_seen_at": "2026-07-13T13:22:00.748140Z", - "retirement_candidate": true, - "retirement_reason": "no usage in review window; quiet 48d (>= 30d required for 247 all-time call(s))" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -69,14 +166,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-0069 closeout", + "retired_at": "2026-08-31T08:55:08.200322Z", "created_at": "2026-06-06T17:28:13.052813Z", - "updated_at": "2026-06-06T17:28:13.052813Z" + "updated_at": "2026-08-31T08:55:08.089714Z" }, "all_time": { "calls": 1, @@ -103,8 +200,8 @@ "components": {} }, "last_seen_at": "2026-06-06T17:28:13.047529Z", - "retirement_candidate": true, - "retirement_reason": "no usage in review window; quiet 85d (>= 7d required for 1 all-time call(s))" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -124,38 +221,38 @@ "updated_at": "2026-08-22T17:23:43.730661Z" }, "all_time": { - "calls": 5, + "calls": 6, "tenant_count": 1, "user_count": 1, "component_count": 1, "tenants": { - "unknown": 5 + "unknown": 6 }, "users": { - "unknown": 5 + "unknown": 6 }, "components": { - "unknown": 5 + "unknown": 6 } }, "window": { - "calls": 1, + "calls": 2, "tenant_count": 1, "user_count": 1, "component_count": 1, "tenants": { - "unknown": 1 + "unknown": 2 }, "users": { - "unknown": 1 + "unknown": 2 }, "components": { - "unknown": 1 + "unknown": 2 } }, - "last_seen_at": "2026-08-28T18:46:10.645377Z", + "last_seen_at": "2026-08-31T08:18:41.571768Z", "retirement_candidate": false, - "retirement_reason": "1 call(s) in review window" + "retirement_reason": "2 call(s) in review window" }, { "interface": { @@ -267,14 +364,14 @@ "legacy_since": "2026-08-22T17:23:45.969876Z", "replacement_ref": "sbom-nexus:/sbom/", "owner_component": "state-hub.sbom-compat", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": 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-22T17:23:45.969876Z" + "updated_at": "2026-08-31T08:55:08.456139Z" }, "all_time": { "calls": 1, @@ -301,8 +398,8 @@ "components": {} }, "last_seen_at": "2026-08-22T17:23:45.967492Z", - "retirement_candidate": true, - "retirement_reason": "no usage in review window; quiet 8d (>= 7d required for 1 all-time call(s))" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -312,14 +409,14 @@ "legacy_since": "2026-08-22T17:23:45.089542Z", "replacement_ref": "sbom-nexus:/sbom/", "owner_component": "state-hub.sbom-compat", - "status": "legacy", + "status": "retired", "replacement_verified": true, "manual_hold": false, "hold_reason": null, - "notes": null, - "retired_at": 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-22T17:23:45.089542Z" + "updated_at": "2026-08-31T08:55:08.750826Z" }, "all_time": { "calls": 1, @@ -346,8 +443,8 @@ "components": {} }, "last_seen_at": "2026-08-22T17:23:45.670511Z", - "retirement_candidate": true, - "retirement_reason": "no usage in review window; quiet 8d (>= 7d required for 1 all-time call(s))" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -453,14 +550,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-0069 closeout", + "retired_at": "2026-08-31T08:55:08.939572Z", "created_at": "2026-06-04T05:20:58.321869Z", - "updated_at": "2026-06-04T05:20:58.321869Z" + "updated_at": "2026-08-31T08:55:08.933482Z" }, "all_time": { "calls": 39, @@ -487,8 +584,8 @@ "components": {} }, "last_seen_at": "2026-07-08T05:20:33.378203Z", - "retirement_candidate": true, - "retirement_reason": "no usage in review window; quiet 53d (>= 7d required for 39 all-time call(s))" + "retirement_candidate": false, + "retirement_reason": "already retired" }, { "interface": { @@ -668,7 +765,7 @@ }, "last_seen_at": "2026-08-16T01:03:41.093965Z", "retirement_candidate": false, - "retirement_reason": "quiet 14d of 30d required for 811 all-time call(s)" + "retirement_reason": "quiet 15d of 30d required for 811 all-time call(s)" }, { "interface": { @@ -678,14 +775,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-0069 closeout", + "retired_at": "2026-08-31T08:55:09.130713Z", "created_at": "2026-06-04T22:57:37.149207Z", - "updated_at": "2026-06-04T22:57:37.149207Z" + "updated_at": "2026-08-31T08:55:09.123888Z" }, "all_time": { "calls": 4975, @@ -712,282 +809,11 @@ "components": {} }, "last_seen_at": "2026-07-07T20:31:35.389791Z", - "retirement_candidate": true, - "retirement_reason": "no usage in review window; quiet 54d (>= 30d required for 4975 all-time call(s))" + "retirement_candidate": false, + "retirement_reason": "already retired" } ], - "retirement_candidates": [ - { - "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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-06-04T06:09:42.198193Z", - "updated_at": "2026-06-04T06:09:42.198193Z" - }, - "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": true, - "retirement_reason": "no usage in review window; quiet 48d (>= 30d required for 247 all-time call(s))" - }, - { - "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 usage in review window; quiet 85d (>= 7d required for 1 all-time call(s))" - }, - { - "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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-08-22T17:23:45.969876Z", - "updated_at": "2026-08-22T17:23:45.969876Z" - }, - "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": true, - "retirement_reason": "no usage in review window; quiet 8d (>= 7d required for 1 all-time call(s))" - }, - { - "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": "legacy", - "replacement_verified": true, - "manual_hold": false, - "hold_reason": null, - "notes": null, - "retired_at": null, - "created_at": "2026-08-22T17:23:45.089542Z", - "updated_at": "2026-08-22T17:23:45.089542Z" - }, - "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": true, - "retirement_reason": "no usage in review window; quiet 8d (>= 7d required for 1 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": "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": 39, - "tenant_count": 1, - "user_count": 1, - "component_count": 1, - "tenants": { - "unknown": 39 - }, - "users": { - "unknown": 39 - }, - "components": { - "unknown": 39 - } - }, - "window": { - "calls": 0, - "tenant_count": 0, - "user_count": 0, - "component_count": 0, - "tenants": {}, - "users": {}, - "components": {} - }, - "last_seen_at": "2026-07-08T05:20:33.378203Z", - "retirement_candidate": true, - "retirement_reason": "no usage in review window; quiet 53d (>= 7d required for 39 all-time call(s))" - }, - { - "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": 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": true, - "retirement_reason": "no usage in review window; quiet 54d (>= 30d required for 4975 all-time call(s))" - } - ] + "retirement_candidates": [] }, "days": 7 } diff --git a/workplans/STATE-WP-0079-retirement-strangler.md b/workplans/STATE-WP-0079-retirement-strangler.md index e8206cb..d091af6 100644 --- a/workplans/STATE-WP-0079-retirement-strangler.md +++ b/workplans/STATE-WP-0079-retirement-strangler.md @@ -8,7 +8,7 @@ status: active owner: codex topic_slug: infotech created: "2026-08-09" -updated: "2026-08-23" +updated: "2026-08-31" parent_project: prj-state-hub-retirement parent_workplan: SHR-WP-0001 related: @@ -448,6 +448,19 @@ workplans restored from `launching/immediate` to `manual/manual`. Focused execution coverage passes (`4 passed`); the combined full regression and dashboard build remains green (`650 passed`). +**Central meter review 2026-08-31.** The corrected seven-day review found six +replacement-verified interfaces past their volume-scaled quiet period. They +were marked retired on the sole `railliance01` primary: the old workstream +completion event subject, `DELETE /workstreams/{id}`, two low-volume SBOM +compatibility reads, `GET /workstreams/workplan-index`, and +`POST /workstreams/{id}/dependencies/`. The recapture now reports 6 retired, +9 legacy, and zero currently eligible candidates. The remaining nine include +live SBOM callers, live `GET /tasks/?workstream_id`, the three high-volume +workstream reads still inside their 60-day quiet window, and two workstream +mutations still inside 30 days. Evidence: +`docs/evidence/legacy-meter-weekly-review-20260831.json`. T05 remains +`progress`; T06 must not start. + ## Stabilization window and archive prep ```task diff --git a/workplans/STATE-WP-0084-forge-read-for-private-repositories.md b/workplans/STATE-WP-0084-forge-read-for-private-repositories.md index 5ba4de1..a966a73 100644 --- a/workplans/STATE-WP-0084-forge-read-for-private-repositories.md +++ b/workplans/STATE-WP-0084-forge-read-for-private-repositories.md @@ -4,11 +4,17 @@ type: workplan title: "Derive private repositories, and report unreadable as unreadable" domain: infotech repo: state-hub -status: active +status: finished owner: codex topic_slug: infotech created: "2026-08-26" -updated: "2026-08-26" +updated: "2026-08-31" +quality_dod: DoD-Ok +quality_dod_at: "2026-08-31" +quality_dod_by: codex +quality_dod_note: >- + Credential delivery, safe consumer behavior, nine-repository reviewed apply, + and nine-noop repeat verification are evidenced without storing a secret. related: - CUST-ADR-012 - STATE-WP-0083 @@ -112,7 +118,7 @@ covered by tests that fail if the retirement path is reachable from either. ```task id: STATE-WP-0084-T02 -status: progress +status: done priority: medium state_hub_task_id: "d8d41a89-1ebc-5118-bb73-cf8d8c114e16" ``` @@ -155,11 +161,18 @@ path (`paste_once_provision`, outside both repositories), and a deploy with `forgeRead.enabled=true` plus the real address and path in `deploy/railiance/apps/helm/state-hub-values.yaml`. +**Done 2026-08-31.** The live `railliance01` release has +`forgeRead.enabled: true`; the API pod runs as ServiceAccount `state-hub` with +the projected OpenBao token and coordinate-only configuration. A non-secret +in-pod resolution check returned `available`. The Forge token remains outside +Git and is re-read through the five-minute cache, so rotation needs no chart +change or pod redeploy. + ## Teach the derivation to use it ```task id: STATE-WP-0084-T03 -status: progress +status: done priority: medium state_hub_task_id: "b22b24d9-7ed3-533c-bda7-3130693cf4d2" ``` @@ -215,11 +228,16 @@ are silent when wrong: token-in-argv and token-in-exception. 43 pass in Remains `progress` because the acceptance clause "private repositories derive" cannot be observed until T02 supplies a credential; T04 confirms it. +**Done 2026-08-31.** A transaction-rolled-back review successfully derived all +nine private `rapp-*` repositories at exact Forge commits. No repository was +unreadable or errored, and no retirement was proposed. The anonymous/public +path remains covered by the existing absent-credential tests. + ## Confirm the nine ```task id: STATE-WP-0084-T04 -status: wait +status: done priority: medium state_hub_task_id: "33c09a78-5974-57c6-bb7f-ad73082046bb" ``` @@ -235,3 +253,9 @@ repository examined this way for the first time has produced findings. Acceptance: fleet errors fall from nine to zero; each newly readable repository has its first diff reviewed before anything is applied. + +**Done 2026-08-31.** The first review returned seven bounded source/status +updates and two no-ops, with zero creations, retirements, refusals, or errors. +Those exact commits were applied through the guarded per-repository API with +retirement disabled. The repeated review returned nine no-ops and zero errors. +Evidence: `docs/evidence/STATE-WP-0084-private-forge-cutover-2026-08-31.md`. diff --git a/workplans/STATE-WP-0085-repository-lineage-preserving-rename.md b/workplans/STATE-WP-0085-repository-lineage-preserving-rename.md index ec6baa2..e83003c 100644 --- a/workplans/STATE-WP-0085-repository-lineage-preserving-rename.md +++ b/workplans/STATE-WP-0085-repository-lineage-preserving-rename.md @@ -8,7 +8,7 @@ status: active owner: codex topic_slug: infotech created: "2026-08-28" -updated: "2026-08-29" +updated: "2026-08-31" reviewed_at: "2026-08-28" reviewed_by: codex reviewed_against_commit: "41d80429a77ffeb640f4b34091ebee5c91585373" @@ -565,7 +565,7 @@ one existing async cancellation warning remain outside T08. ```task id: STATE-WP-0085-T09 -status: progress +status: wait priority: high state_hub_task_id: "df34f6ec-d137-52d0-93c4-3756a821097f" ``` @@ -611,6 +611,13 @@ reports `preflight_signing_unavailable`; provisioning was handed to Forgejo rename, State Hub rebind, clone removal, consumer edit, or runtime deployment was performed. +**Gate rechecked 2026-08-31.** `FLEX-WP-0020` remains clean, pushed, +registered, `proposed`, and DoR-Ok. The deployed State Hub still has no +repository-rename preflight signing configuration, and platform handoff +`cd52ba10-de41-46ce-aa8b-9b44050da8f7` remains unread. This is an external +provisioning gate, so the task is `wait`, not active implementation. No rename +or consumer mutation was performed. + ## Workplan completion `STATE-WP-0085` can finish only when T01-T08 are complete, T09 has produced the