···14141515 console.log(`[ext:${extId}] background.html loaded`);
16161717- // Signal ready to main process
1717+ // Initialize extension FIRST so its subscribers (cmd:register-batch, etc.)
1818+ // are registered before any other extension publishes commands on ext:ready.
1919+ if (extension.init) {
2020+ console.log(`[ext:${extId}] calling init()`);
2121+ await extension.init();
2222+ }
2323+2424+ // Signal ready to main process — only after subscribers are in place.
1825 api.publish('ext:ready', {
1926 id: extId,
2027 manifest: {
···2330 version: '1.0.0'
2431 }
2532 }, api.scopes.SYSTEM);
2626-2727- // Initialize extension
2828- if (extension.init) {
2929- console.log(`[ext:${extId}] calling init()`);
3030- extension.init();
3131- }
32333334 // Handle shutdown request from main process
3435 api.subscribe('app:shutdown', () => {