feat(identifiers): verify batch projections
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
This commit is contained in:
parent
e6cc18bf18
commit
055c6971ab
11 changed files with 2964 additions and 9 deletions
182
docs/evidence/RMGR-WP-0005-batch-0005-adaptive-pricing.json
Normal file
182
docs/evidence/RMGR-WP-0005-batch-0005-adaptive-pricing.json
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
{
|
||||
"schema": "repo-manager.identifier-migration-batch.v1",
|
||||
"ok": false,
|
||||
"ready_for_approval": false,
|
||||
"apply_authorized": false,
|
||||
"approval_required": true,
|
||||
"projection_api_bases": [
|
||||
"http://127.0.0.1:8000",
|
||||
"http://127.0.0.1:18000"
|
||||
],
|
||||
"namespace": "helixforge",
|
||||
"source_plan_sha256": "28cd01bdbc66c53ad5ef11b9821a74ebadd7c8cfdae4c227f37ce7f9d67cbf18",
|
||||
"batch_policy": "repository-atomic, sequential, stop on first failure",
|
||||
"rollback_order": "reverse files if written, then reverse central projection",
|
||||
"generated_at": "2026-08-22T21:45:54.917855Z",
|
||||
"totals": {
|
||||
"repositories": 1,
|
||||
"records": 5,
|
||||
"replace": 5,
|
||||
"assign": 0,
|
||||
"unchanged": 0
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"repo": "adaptive-pricing",
|
||||
"path": "/home/worsch/adaptive-pricing",
|
||||
"planned_head_sha": "c65a2f1ff9a0b30700ee14818e36e931eb71cae3",
|
||||
"source_fingerprint": "977e94daeb0a6955a3d4ba76393d0b273d285537d0789eb59350d5c283901887",
|
||||
"source_verified": true,
|
||||
"git_preflight": {
|
||||
"ok": true,
|
||||
"head_sha": "c65a2f1ff9a0b30700ee14818e36e931eb71cae3",
|
||||
"expected_head_sha": "c65a2f1ff9a0b30700ee14818e36e931eb71cae3",
|
||||
"upstream": "origin/main",
|
||||
"behind": 0,
|
||||
"ahead": 0,
|
||||
"origin": "forgejo-remote:coulomb/adaptive-pricing.git",
|
||||
"errors": []
|
||||
},
|
||||
"projection_preflight": {
|
||||
"required": true,
|
||||
"ok": false,
|
||||
"projections": [
|
||||
{
|
||||
"api_base": "http://127.0.0.1:8000",
|
||||
"ok": true,
|
||||
"replacement_checks": [
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010",
|
||||
"kind": "workplan",
|
||||
"current_status": 200,
|
||||
"derived_status": 404,
|
||||
"ok": true
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T01",
|
||||
"kind": "task",
|
||||
"current_status": 200,
|
||||
"derived_status": 404,
|
||||
"ok": true
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T02",
|
||||
"kind": "task",
|
||||
"current_status": 200,
|
||||
"derived_status": 404,
|
||||
"ok": true
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T03",
|
||||
"kind": "task",
|
||||
"current_status": 200,
|
||||
"derived_status": 404,
|
||||
"ok": true
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T04",
|
||||
"kind": "task",
|
||||
"current_status": 200,
|
||||
"derived_status": 404,
|
||||
"ok": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_base": "http://127.0.0.1:18000",
|
||||
"ok": false,
|
||||
"replacement_checks": [
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010",
|
||||
"kind": "workplan",
|
||||
"current_status": 404,
|
||||
"derived_status": 404,
|
||||
"ok": false
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T01",
|
||||
"kind": "task",
|
||||
"current_status": 404,
|
||||
"derived_status": 404,
|
||||
"ok": false
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T02",
|
||||
"kind": "task",
|
||||
"current_status": 404,
|
||||
"derived_status": 404,
|
||||
"ok": false
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T03",
|
||||
"kind": "task",
|
||||
"current_status": 404,
|
||||
"derived_status": 404,
|
||||
"ok": false
|
||||
},
|
||||
{
|
||||
"record_id": "ADAPTIVE-WP-0010-T04",
|
||||
"kind": "task",
|
||||
"current_status": 404,
|
||||
"derived_status": 404,
|
||||
"ok": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T01",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T02",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T03",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T04",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
}
|
||||
]
|
||||
},
|
||||
"mapping_counts": {
|
||||
"records": 5,
|
||||
"replace": 5,
|
||||
"assign": 0,
|
||||
"unchanged": 0
|
||||
},
|
||||
"ready": false
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T01",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T02",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T03",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
},
|
||||
{
|
||||
"scope": "http://127.0.0.1:18000:ADAPTIVE-WP-0010-T04",
|
||||
"reason": "projection requires current UUID=200 and derived UUID=404"
|
||||
}
|
||||
],
|
||||
"batch_sha256": "20decab5521ea5477826d1b2a9c9670912a96c4b8245faf5d270c8d1efc988c5"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue