@eclipse-docks/core 0.7.135 → 0.7.137

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-docks/core",
3
- "version": "0.7.135",
3
+ "version": "0.7.137",
4
4
  "description": "Eclipse Docks platform core: registries, services, parts, widgets, and API",
5
5
  "type": "module",
6
6
  "license": "EPL-2.0",
@@ -411,8 +411,20 @@ class AppLoaderService {
411
411
  this.systemRequiredExtensions.forEach(extId => extensionsSet.add(extId));
412
412
  app.extensions = Array.from(extensionsSet);
413
413
 
414
- // Enable and load app extensions first so declared dependencies
415
- // are loaded before persisted settings extensions run.
414
+ this.currentApp = app;
415
+ this.updateDocumentMetadata(app);
416
+
417
+ // Render the shell before heavy extensions finish loading so LCP is not
418
+ // blocked by Monaco, Pyodide, AI modules, etc. Sidebars and toolbars
419
+ // update as extensions register contributions (TOPIC_CONTRIBUTEIONS_CHANGED).
420
+ if (container) {
421
+ this.dispatchLoadProgress('Rendering layout…');
422
+ this.renderApp(container);
423
+ window.dispatchEvent(new CustomEvent('app-loaded', { detail: { appName: app.name } }));
424
+ }
425
+
426
+ // Enable and load app extensions so declared dependencies are loaded
427
+ // before persisted settings extensions run.
416
428
  if (app.extensions.length > 0) {
417
429
  this.dispatchLoadProgress('Enabling extensions…');
418
430
  await Promise.all(
@@ -429,23 +441,17 @@ class AppLoaderService {
429
441
  this.dispatchLoadProgress('Loading extensions…');
430
442
  await extensionRegistry.loadEnabledExtensions();
431
443
 
432
- // Initialize new app
433
444
  if (app.initialize) {
434
445
  this.dispatchLoadProgress('Initializing…');
435
446
  logger.info(`Initializing ${app.name}...`);
436
447
  await app.initialize();
437
448
  }
438
449
 
439
- this.currentApp = app;
440
450
  logger.info(`App ${app.name} loaded successfully`);
441
- this.updateDocumentMetadata(app);
442
- if (container) {
443
- this.dispatchLoadProgress('Rendering layout…');
444
- this.renderApp(container);
445
- }
446
451
 
447
- // Dispatch event for components to react to app changes
448
- window.dispatchEvent(new CustomEvent('app-loaded', { detail: { appName: app.name } }));
452
+ if (!container) {
453
+ window.dispatchEvent(new CustomEvent('app-loaded', { detail: { appName: app.name } }));
454
+ }
449
455
  }
450
456
 
451
457
  /**