Offline migration engine

September 8, 2026 ยท View on GitHub

Own bounded source discovery, durable tasks, snapshot/staging/backup/journal IO, atomic commit and safe cancellation. Never initialize the main product runtime. Historical handoff and onboarding files remain readable compatibility formats; new standalone tasks use save_task/load_task and do not depend on request expiry. Do not delete or reset corrupt plans, reports or user data. Validate UUIDs and plan identities before using task paths. Keep source/destination isolation.

Process inspection must fail explicitly when inventory is unavailable. Never interpret an inspection error as an empty writer list. On macOS, inspect executable names with the system ps, preserving full bundle paths and excluding arguments.

Focused verification:

cargo test -p openbitfun-legacy-migration --lib
cargo test -p openbitfun-legacy-migration --test migration_engine_contracts

For process inventory, writer classification, and handoff changes, use cargo test -p openbitfun-legacy-migration --lib handoff::tests. The macOS inventory test exercises the real host process list and must run on macOS; parser and classification fixtures run on all test platforms. These local checks do not establish remote-workspace, remote-control, peer, or dispatch behavior.