You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Delivery model: This phase is committed to the shared #447 integration branch and the single draft pull request against main. It is not merged or released independently.
Objective
Implement the non-destructive foundation for migration immutable_job_id_v1: detection, complete planning, stable UUID mapping, snapshots, audit records and post-migration verification. The migration must remain inactive at application startup until Phase 9.
Detect missing IDs, mutable active references, malformed records, ambiguous aliases and orphaned historical data.
Return the migration runner contract with a boolean required field.
Avoid changing files, refreshing caches, applying schedules or starting background writers during detection.
Stable migration plan
Build the complete legacy-key-to-UUID mapping before any write.
Generate UUIDv4 values once and persist the plan before application.
Reuse the journaled mapping after interruption or retry.
Match canonical legacy metadata by exact keys and explicit aliases only.
Never match by display name alone.
Normalize existing archive-prefix lists deterministically without losing valid previous prefixes.
Classify ambiguous historical objects as unassigned; block on ambiguous or inconsistent active configuration.
Snapshot
Create a recoverable snapshot of every object the final migration can change. The snapshot manifest must include:
migration ID and timestamp;
source paths and object types;
checksums and sizes;
the planned UUID mapping and actions;
enough metadata to document a manual recovery;
no logged secret values.
Snapshot creation must finish and verify successfully before the apply phase can begin.
Audit and retry journal
Use the existing migration contract and record:
pending, applied, skipped, failed, blocked or not_applicable;
detection, planning, snapshot, apply and verification phases;
affected objects and concrete actions;
masked exception type and cause;
reuse of an existing migration plan after interruption.
Verification library
Implement reusable checks for:
unique valid IDs for active jobs;
complete archive-prefix lists;
resolvable active schedules and repository assignments;
resolvable status and restore-test mappings;
absence of forbidden mutable active references;
classification rather than deletion of unresolved history;
blocking of writable services when verification fails.
Activation boundary
Do not register an apply path that can partially convert a real installation. Planning and verification utilities may be exercised against isolated fixtures, but startup activation is reserved for Phase 9 after all readers and writers have been converted.
Tests
Cover all Phase 1 fixtures plus:
idempotent repeated detection;
stable UUID reuse after simulated interruption;
snapshot completeness and checksum verification;
snapshot failure before writes;
malformed detector and apply return values;
first-failure blocking of later migrations;
masked audit errors without secrets;
deterministic treatment of ambiguous and orphaned records;
no filesystem changes during detection or dry-run planning.
Test-channel policy
Do not publish a test-channel version. This phase intentionally has no active end-to-end migration and is not safe or useful for installation testing.
Acceptance criteria
A complete deterministic plan can be produced for every successful fixture.
Invalid active states block before any write.
Snapshots and audit logs satisfy the repository migration contract.
Parent: #447
Depends on: Phase 1/9
Delivery branch:
codex/issue-447-immutable-job-idsDelivery model: This phase is committed to the shared #447 integration branch and the single draft pull request against
main. It is not merged or released independently.Objective
Implement the non-destructive foundation for migration
immutable_job_id_v1: detection, complete planning, stable UUID mapping, snapshots, audit records and post-migration verification. The migration must remain inactive at application startup until Phase 9.Scope
Detection and inventory
requiredfield.Stable migration plan
Snapshot
Create a recoverable snapshot of every object the final migration can change. The snapshot manifest must include:
Snapshot creation must finish and verify successfully before the apply phase can begin.
Audit and retry journal
Use the existing migration contract and record:
pending,applied,skipped,failed,blockedornot_applicable;Verification library
Implement reusable checks for:
Activation boundary
Do not register an apply path that can partially convert a real installation. Planning and verification utilities may be exercised against isolated fixtures, but startup activation is reserved for Phase 9 after all readers and writers have been converted.
Tests
Cover all Phase 1 fixtures plus:
Test-channel policy
Do not publish a test-channel version. This phase intentionally has no active end-to-end migration and is not safe or useful for installation testing.
Acceptance criteria