v2026.5.128
·
591 commits
to main
since this release
Fixed
- Critical migration boot-loop:
cleo briefing/ any command exited withE_INTERNAL"Failed to run the query 'CREATE TABLE IF NOT EXISTS release_manifests …'" on databases whose__drizzle_migrationsjournal was missing thet033-connection-healthentry. Drizzle re-ran the unjournaled migration on every invocation; the rebuild transaction rolled back; the journal write was lost; loop. Two root-cause fixes:probeAndMarkApplied(packages/core/src/store/migration-manager.ts) now collectsCREATE TRIGGERtargets and probes them insqlite_master. Trigger-only migrations such ast877-pipeline-stage-invariantsare now correctly journaled when their triggers already exist (totalTargetswas previously 0 for trigger-only DDL, so the probe always returnedfalseand Drizzle re-ran the migration to "trigger already exists").t033-connection-health/migration.sqlnow guardsINSERT INTO release_manifests_new SELECT ... FROM release_manifestswithWHERE EXISTS (SELECT 1 FROM release_manifests LIMIT 1)and lists destination columns explicitly. TheCREATE _new → DROP → RENAMErebuild still runs; the row copy becomes a safe no-op when the source is empty.
- Adds
packages/core/src/store/__tests__/migration-probe-trigger.test.ts(2 regression cases) pinning both behaviours.