repo-manager/docs/evidence/RMGR-WP-0005-state-hub-pilot-batch-2026-08-31.json
tegwick 54507b975a docs: approve state-hub identifier pilot
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a053ff-1d6f-7fe2-ac1c-a6eb40a42a0c
2026-08-31 01:36:38 +02:00

143 lines
4.4 KiB
JSON

{
"schema": "repo-manager.identifier-migration-batch.v1",
"ok": true,
"ready_for_approval": true,
"apply_authorized": false,
"approval_required": true,
"projection_api_bases": [
"http://127.0.0.1:8000"
],
"namespace": "helixforge",
"source_plan_sha256": "c752d7962ee1008f6e31fe424a8c39e22a48f63003494546c4fdae8c7a29a019",
"batch_policy": "repository-atomic, sequential, stop on first failure",
"rollback_order": "reverse files if written, then reverse central projection",
"generated_at": "2026-08-30T23:35:48.897638Z",
"totals": {
"repositories": 1,
"records": 30,
"replace": 9,
"assign": 0,
"unchanged": 21
},
"repositories": [
{
"repo": "state-hub",
"path": "/home/worsch/state-hub",
"planned_head_sha": "f39612558d92e0f822f2e735341eb5b3b3f0912f",
"source_fingerprint": "695792b72630de00837574e2abe5951c6fe7ec453f95eca03c5ff72d595d684c",
"source_verified": true,
"git_preflight": {
"ok": true,
"head_sha": "f39612558d92e0f822f2e735341eb5b3b3f0912f",
"expected_head_sha": "f39612558d92e0f822f2e735341eb5b3b3f0912f",
"upstream": "origin/main",
"behind": 0,
"ahead": 0,
"origin": "forgejo-remote:coulomb/state-hub.git",
"errors": []
},
"projection_preflight": {
"required": true,
"ok": true,
"projections": [
{
"api_base": "http://127.0.0.1:8000",
"ok": true,
"mode": "legacy_migration",
"state_counts": {
"legacy_source": 9,
"derived_target": 0,
"both_present": 0,
"neither_present": 0,
"unexpected_status": 0
},
"replacement_checks": [
{
"record_id": "CUST-WP-0038",
"kind": "workplan",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T01",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T02",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T03",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T04",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T05",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T06",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T07",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
},
{
"record_id": "CUST-WP-0038-T08",
"kind": "task",
"current_status": 200,
"derived_status": 404,
"state": "legacy_source",
"ok": true
}
]
}
],
"errors": []
},
"mapping_counts": {
"records": 30,
"replace": 9,
"assign": 0,
"unchanged": 21
},
"ready": true
}
],
"errors": [],
"batch_sha256": "77156a9906703f599cdb2d0fee8e018a9860b23b2f1c1959ff0983d33b447763"
}