diff --git a/docs/evidence/RMGR-WP-0005-batch-0004-railiance-cluster-cutover-2026-08-22.md b/docs/evidence/RMGR-WP-0005-batch-0004-railiance-cluster-cutover-2026-08-22.md new file mode 100644 index 0000000..541f286 --- /dev/null +++ b/docs/evidence/RMGR-WP-0005-batch-0004-railiance-cluster-cutover-2026-08-22.md @@ -0,0 +1,108 @@ +# RMGR-WP-0005 batch 0004 Railiance Cluster cutover + +**Completed at:** `2026-08-22T21:03:00Z` + +**Scope:** `railiance-cluster` only + +**Decision:** `RMGR-DEC-2026-003` (`approved`) + +## Outcome + +The approved repository-atomic batch completed in both current State Hub +projections and the authoritative repository. No other identifier mapping was +applied. + +| Kind | Record | Previous UUID | Derived UUID | +| --- | --- | --- | --- | +| Workplan | `RCLUSTER-WP-0007` | `9e208376-23f1-40c7-9813-fac1f7d6ad3b` | `16da36fe-5a10-522b-b6d6-02dbb6de6c14` | +| Task | `RCLUSTER-WP-0007-T01` | `1f8a8668-31eb-4d79-bbcd-50f6430a8d66` | `9d1f463f-e4d1-5e75-97fd-e57b833bc2b9` | +| Task | `RCLUSTER-WP-0007-T02` | `b1d4e0fa-da41-4b13-a7d6-34dd040cb605` | `a1f4fa2b-69a7-5de4-8c44-15e8f9baf0b2` | +| Task | `RCLUSTER-WP-0007-T05` | `68315a40-dd5b-4032-a9e7-1152e38f9807` | `02cc3adb-9d42-5540-9f32-4e5f1198b79e` | +| Task | `RCLUSTER-WP-0007-T06` | `f658aa6a-1c48-4660-88fa-35eaa0137e12` | `4f033381-24aa-5773-bca6-337ccacc0e7a` | +| Task | `RCLUSTER-WP-0007-T07` | `70f6c8ab-a700-4fb2-893e-cf5a40615044` | `b45b3086-3beb-56d4-a028-6bf651834992` | + +The source-plan seal was +`b155d8f193ae3496765b1964e51f9918a3a55b1993793cc7fd3ceb3b18d12ad0`. +The approved batch seal was +`554c6cbe119e13738efc6e2836254ddae00ea870f1cb99f2b5603336160e308d`. +The post-approval no-drift gate passed against pinned source HEAD +`41fdfd9d086f52eda399ddb4c740297dc0094129` before mutation. + +## Restore points + +Fresh PostgreSQL custom-format archives were retained before mutation and +successfully enumerated through `pg_restore --list`. + +| Projection | Archive | Bytes | SHA-256 | Archive entries | +| --- | --- | ---: | --- | ---: | +| Workstation | `/tmp/state-hub-railiance-cluster-batch-0004-workstation-preapply.dump` | 4,715,411 | `b8fb7ab7f064090959620f42f086982767ec2544ec10606018391e343c5574f0` | 433 | +| Production | `/tmp/state-hub-railiance-cluster-batch-0004-production-preapply.dump` | 4,807,736 | `763fba39f637530290831261128d97bbdc70e35ad3ad7520e14e1f2e4d9ffb0e` | 410 | + +The durable alias reverse executor remains available in each projection; the +restore archives are the database-level fallback. + +## Projection transactions + +The State Hub repository transaction ran first on the workstation projection +and then inside the production State Hub runtime. Both executions reported six +replacements, zero deferred assignments, direction `forward`, and the exact +source-plan seal above. + +Final database and API checks agree: + +| Check | Workstation | Production | +| --- | ---: | ---: | +| Previous workplan UUID rows | 0 | 0 | +| Derived workplan UUID rows | 1 | 1 | +| Previous mapped task UUID rows | 0 | 0 | +| Derived mapped task UUID rows | 5 | 5 | +| Tasks linked to derived workplan | 7 | 7 | +| Cancelled tasks retained under derived workplan | 2 | 2 | +| Progress events linked to derived workplan | 14 | 12 | +| Progress events linked to mapped tasks | 5 | 5 | +| Decisions linked to derived workplan | 1 | 1 | +| Applied aliases for the batch mappings | 6 | 6 | +| Previous UUID API lookups | six × 404 | six × 404 | +| Derived UUID API lookups | six × 200 | six × 200 | +| Retained cancelled-task API lookups | two × 200 | two × 200 | + +The different 14/12 progress histories were present before the cutover and +were preserved independently rather than normalized away. + +## Authoritative file transaction + +`rmgr identifier migration-files` changed only +`workplans/RCLUSTER-WP-0007-threephoenix-ha-cluster.md`, replacing the six +approved identifier values. The two cancelled task UUIDs were untouched. The +reviewed diff passed `git diff --check` and was pushed as `railiance-cluster` +commit `2bcc3f06e25312b1d29436e62ac8364b7d30db54`. + +Consistency refreshed only the generated `.custodian-brief.md` cache after the +migration. The final synchronized source HEAD is +`434bbd9` and the authoritative workplan has no post-migration change. + +## Consistency verification + +Two workstation passes were identifier- and status-idempotent for the batch. +They retained 58 pre-existing conformance warnings about legacy prefixes, +record species, and cross-repository collisions; none concerns a migrated UUID. + +Production required one transport correction: the initial short-lived HTTP +relay returned FastAPI's canonical-path `307` responses instead of following +them for PATCH. No UUID or file transaction was affected. After the relay was +corrected, the first pass applied file-authoritative cache repairs for the +workplan status, the two cancelled-task statuses, and task descriptions. The +second full pass reported no issue for `RCLUSTER-WP-0007` or any of its seven +tasks and applied no batch repair. + +The production checker still reports six pre-existing C-03 assessment failures +for other file-backed records absent from that projection, plus legacy +conformance warnings. Those residuals predate and are outside this approved +repository-atomic batch; no automation error occurred. + +## Rollback posture + +Rollback was not invoked. If later required, reverse the generated cache/file +transaction first, then reverse production and workstation projection +transactions through the six durable aliases. Restore from the archives only +after an isolated restore rehearsal. diff --git a/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md b/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md index bd2eabe..eb14802 100644 --- a/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md +++ b/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md @@ -504,6 +504,24 @@ uses `ON UPDATE CASCADE`. The fail-closed batch hash is identifier mutation has run. Evidence: `docs/evidence/RMGR-WP-0005-batch-0004-railiance-cluster-readiness-2026-08-22.md`. +**Batch 0004 completed (2026-08-22):** `RMGR-DEC-2026-003` approved the exact +sealed `railiance-cluster` package. Fresh workstation and production restore +points were created and verified before both projection transactions replaced +the workplan and five live task UUIDs. The authoritative six-line file +transaction was pushed in commit `2bcc3f0`; the two cancelled task UUIDs stayed +unchanged beneath the derived parent. + +Both projections now return old/new API lookups 404/200 for all six mapped +records, retain seven child tasks, two cancelled tasks, one decision, five +mapped-task progress references, and their original 14/12 workplan progress +histories, and carry six applied aliases. Repeated consistency found no +remaining issue in the migrated slice. Production retains six pre-existing +C-03 failures for unrelated repository records that are absent from that +projection. Full restore hashes, commits, checks, and the bounded transport +note are in +`docs/evidence/RMGR-WP-0005-batch-0004-railiance-cluster-cutover-2026-08-22.md`. +T04 remains in progress for separately sealed and approved fleet batches. + ## Retire the interim rule ```task