v1.78.4
[1.78.4] - 2026-08-17 — Alioth
Theme: the lazy-ledger contract completes 1.78.3. That patch deferred database work in
the three migrate commands; this one removes it from MigrationManager itself, so
migration discovery and registration — including every extension provider's
loadMigrationsFrom() at boot — perform zero database work. Low risk: migration-internal,
no API/env/config changes.
Fixed
MigrationManagerconstruction no longer touches the database. 1.78.3 made the three
migrate console commands resolve the manager lazily, but every extension provider still
constructed it at boot vialoadMigrationsFrom()— and the constructor connected and ran
ensureVersionTable()DDL, so any console or web boot with a reachable database created
themigrationstable as whatever role.envnamed. The manager now resolves its
connection on first database operation and follows a lazy-ledger contract:migrate()is
the only operation that ensures/creates the ledger; status and pending reads treat a
missing ledger as zero applied migrations;rollback()reports nothing-to-rollback when
the ledger is absent. Migration discovery and registration now perform zero database work,
and read-only operational commands work with read-only database credentials.