fix(migration): persist fullMigrationSet in-config when sidecar write fails

Addresses Cubic review: configs without prior _migrations now get the
full migration set written to config as fallback when sidecar write
fails, preventing migration tracking loss.
This commit is contained in:
YeonGyu-Kim
2026-04-10 19:01:59 +09:00
parent 6ec9a2bd79
commit 5493ae226c
2 changed files with 39 additions and 6 deletions
+8 -4
View File
@@ -75,11 +75,11 @@ export function migrateConfigFile(
// `_migrations` to downstream schema validation.
const newMigrationsToRecord = allNewMigrations.filter(mKey => !existingMigrations.has(mKey))
let sidecarWriteSucceeded = false
const fullMigrationSet = new Set<string>([
...existingMigrations,
...newMigrationsToRecord,
])
if (newMigrationsToRecord.length > 0 || hadLegacyInConfigMigrations) {
const fullMigrationSet = new Set<string>([
...existingMigrations,
...newMigrationsToRecord,
])
sidecarWriteSucceeded = writeAppliedMigrations(configPath, fullMigrationSet)
}
if (newMigrationsToRecord.length > 0) {
@@ -91,6 +91,10 @@ export function migrateConfigFile(
}
if (sidecarWriteSucceeded && "_migrations" in copy) {
delete copy._migrations
} else if (!sidecarWriteSucceeded && newMigrationsToRecord.length > 0) {
// Sidecar write failed — persist migration tracking in-config as fallback
;(copy as Record<string, unknown>)._migrations = Array.from(fullMigrationSet)
needsWrite = true
}
if (copy.omo_agent) {