Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
87 lines
3.6 KiB
Markdown
87 lines
3.6 KiB
Markdown
# RMGR-WP-0005 batch 0003 Markitect cutover
|
|
|
|
**Completed at:** `2026-08-22T14:47:56Z`
|
|
|
|
**Scope:** `markitect-main` only
|
|
|
|
**Decision:** `RMGR-DEC-2026-002` (`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 | `MARKITECT-WP-0002` | `e203d487-01f1-494a-b14d-a436241a4c01` | `e03ef262-5284-5dd3-92d2-dbd85c6b6159` |
|
|
| Task | `MARKITECT-WP-0002-T01` | `88b3c206-4d45-4bb3-bbb3-47443cdf2123` | `1852eca1-92e2-518e-bb21-9dffbeb32a4f` |
|
|
|
|
The source plan seal was
|
|
`ac97f6e4f0b35db63a0dc1b4a439f0a39738d13c1407f18419f706d780d4eea0`.
|
|
The approved batch seal was
|
|
`494db8e101aeae7f8488082565dec3b4dd5c9c6ccb5f8812aaf233f813768f67`.
|
|
The no-drift gate was repeated after approval and passed against pinned source
|
|
HEAD `3a45d51bbad49512d2610950eccaa3c2782a8523`.
|
|
|
|
## Restore points
|
|
|
|
Fresh PostgreSQL custom-format archives were retained before mutation and
|
|
successfully enumerated by `pg_restore --list`.
|
|
|
|
| Projection | Archive | Bytes | SHA-256 | Archive entries |
|
|
| --- | --- | ---: | --- | ---: |
|
|
| Workstation | `/tmp/state-hub-markitect-batch-0003-workstation-preapply.dump` | 4,644,612 | `4c18f737c0d2711f0c08fb9d33eaba1b02ccbd4609e51d915ee91fc22a7a2032` | 423 |
|
|
| Production | `/tmp/state-hub-markitect-batch-0003-production-preapply.dump` | 4,801,559 | `7333bd89ac8f3dc75ae9228918da85a4472ca29e7013973d18c0a8efa02c9ae6` | 425 |
|
|
|
|
The durable alias reverse executor remains available in each projection; the
|
|
restore archives are the database-level fallback.
|
|
|
|
## Projection transaction
|
|
|
|
The State Hub repository transaction ran first on the workstation projection
|
|
and then inside the production State Hub runtime. Both executions reported two
|
|
replacements, zero deferred assignments, direction `forward`, and the exact
|
|
source-plan seal above.
|
|
|
|
Final direct database and API checks agree:
|
|
|
|
| Check | Workstation | Production |
|
|
| --- | ---: | ---: |
|
|
| Previous workplan UUID rows | 0 | 0 |
|
|
| Derived workplan UUID rows | 1 | 1 |
|
|
| Previous task UUID rows | 0 | 0 |
|
|
| Derived task UUID rows | 1 | 1 |
|
|
| Tasks linked to derived workplan | 10 | 10 |
|
|
| Progress events linked to derived workplan | 9 | 9 |
|
|
| Progress events linked to derived task | 0 | 0 |
|
|
| Applied aliases for the batch mappings | 2 | 2 |
|
|
| Previous UUID API lookups | 404/404 | 404/404 |
|
|
| Derived UUID API lookups | 200/200 | 200/200 |
|
|
|
|
## Authoritative file transaction
|
|
|
|
`rmgr identifier migration-files` changed only
|
|
`workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md`, replacing the two
|
|
mapped frontmatter values. The reviewed diff passed `git diff --check` and was
|
|
pushed as `markitect-main` commit
|
|
`e26bd8b7eb8531be222edf42ba0604b1b05250e3`.
|
|
|
|
Two consistency passes ran against each projection. They were identifier- and
|
|
status-idempotent and produced no source change. The checkout remains clean and
|
|
synchronized at the migration commit.
|
|
|
|
## Existing conformance warnings
|
|
|
|
The consistency passes retained pre-existing, non-identifier warnings:
|
|
`markitect-main` lacks the product-flavor `INTENT.md` and `README.md`; nine
|
|
database tasks have no file backing; and `MARKITECT-WP-0001`/`0002` logical ids
|
|
also occur in `markitect-project`. These findings did not change during the
|
|
cutover and were outside the UUID-only approval.
|
|
|
|
## Rollback posture
|
|
|
|
Rollback was not invoked. If later required, reverse the authoritative file
|
|
transaction first, then reverse production and workstation projection
|
|
transactions through the durable aliases. Restore from the archives only after
|
|
an isolated restore rehearsal.
|