docs: advance remaining state hub workplans
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a053ff-1d6f-7fe2-ac1c-a6eb40a42a0c
This commit is contained in:
parent
306a6e0ce8
commit
142c94287e
6 changed files with 241 additions and 337 deletions
|
|
@ -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 |
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue