Immutable
release. Only release title and notes can be modified.
Fixed
- Plugin activation no longer throws
There is no active transactionon MySQL/MariaDB (#333) —PluginManager::activate()ran the plugin's migrations inside aDB::transaction(). On MySQL/MariaDB a plugin migration'sCREATE TABLEtriggers an implicit commit, ending that transaction, so when the wrapper then callscommit()PDO throwsThere is no active transaction— after the table was already created, leaving a half-applied activation. (SQLite has transactional DDL, so the path was never tripped by the suite.) The in-memory autoloader registration and the DDL migrations now run before the transaction, which wraps only the genuinely transactional writes (permission seeding and theis_activeflip). Rollback semantics are unchanged: the PSR-4 snapshot andmigrationsAttemptedstill driverollbackFailedActivation(), which already rolled migrations back itself.