Move away from full extension manager reloads.
Review Request #15434 — Created Oct. 27, 2026 and updated
The extension manager now has full support for fine-grained loading from
database changes. Local extension state is updated to reflect database
state, meaning the extension manager no longer needs to shut down
everything and bring it all back up. This should improve performance
across the product, especially for extensions that may need to record
state in the database.This change puts in the final pieces of the fine-grained loading
process and switches the middleware to call a plainload()instead of
a full-reload when the sync generation changes.There were some small changes to the process that were needed. Load
errors are now cleared at the start of the process, so that there's no
risk of stale load errors sticking around if extensions disappear. If an
existing extension still fails to load, it will just store a new load
error anyway.Template caches are also now cleared at the end, if extension state
changed.The "Reload Extensions" button in the Extensions page will continue to
do a full reload.
Unit tests passed.
Smoke-tested this, with enabling/disabling/changing extension state
and seeing it reflected.Haven't hit any issues, but needs more testing in production.
| Summary | ID |
|---|---|
| 3a2d5c1b32fad6159fedee4cbbcaf6427e35531f |