{ "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" }