DIFF-157:t_next_migration_run 整包跳过
背景
Electron legacy 迁移在目标库写入 t_next_migration_run(source_path, fingerprint, …),预览时若 source_path 已迁移则 alreadyMigrated。compose 仅有 fingerprints.txt;用户从已跑过 Electron legacy 迁移的 SQLite(或同路径 Java 数据目录)再导入时,应识别整包已迁移。
行为
inspect:源库存在t_next_migration_run且任一source_path(规范化绝对路径)等于当前sourceRoot→electronMigrationRunComplete = true,警告electron-migration-run。- 设置迁移预览:
electronMigrationRunComplete时提示可跳过数据、仍合并设置;alreadyMigrated仍仅指 composefingerprints.txt。 apply:electronMigrationRunComplete时跳过 SQLite/Vault/收藏/历史等数据写入,确认后仍可updateSettings合并 Electron/Java 设置(对齐 ElectronalreadyMigrated仍返回settingsPatch)。
证据
ElectronMigrationRowFilterTest.inspectMarksElectronMigrationRunForSameSourcePath
仍未覆盖
- Electron
sourceFingerprint与 composefingerprint算法对齐比对未做(仅source_path)。 - safeStorage 密文迁移未做。