myrlin-workbook 0.9.5 → 0.9.6
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 +1 -1
- package/src/web/public/app.js +9 -7
package/package.json
CHANGED
package/src/web/public/app.js
CHANGED
|
@@ -1820,7 +1820,7 @@ class CWMApp {
|
|
|
1820
1820
|
this.showApp();
|
|
1821
1821
|
this.initDragAndDrop();
|
|
1822
1822
|
this.initTerminalResize();
|
|
1823
|
-
this.initTerminalGroups();
|
|
1823
|
+
await this.initTerminalGroups();
|
|
1824
1824
|
this.initTerminalPaneSwipe();
|
|
1825
1825
|
this.initNotesEditor();
|
|
1826
1826
|
this.initAIInsights();
|
|
@@ -11521,15 +11521,16 @@ class CWMApp {
|
|
|
11521
11521
|
PHASE 4: TERMINAL TAB GROUPS
|
|
11522
11522
|
═══════════════════════════════════════════════════════════ */
|
|
11523
11523
|
|
|
11524
|
-
initTerminalGroups() {
|
|
11524
|
+
async initTerminalGroups() {
|
|
11525
11525
|
// Load layout from server
|
|
11526
11526
|
this._tabGroups = [];
|
|
11527
11527
|
this._tabFolders = []; // Tab group folders: { id, name, color, collapsed }
|
|
11528
11528
|
this._activeGroupId = null;
|
|
11529
11529
|
this._layoutSaveTimer = null;
|
|
11530
|
+
this._layoutRestored = false;
|
|
11530
11531
|
|
|
11531
|
-
// Load saved layout
|
|
11532
|
-
this.loadTerminalLayout();
|
|
11532
|
+
// Load saved layout (must complete before SSE or other init touches panes)
|
|
11533
|
+
await this.loadTerminalLayout();
|
|
11533
11534
|
}
|
|
11534
11535
|
|
|
11535
11536
|
async loadTerminalLayout() {
|
|
@@ -11557,11 +11558,12 @@ class CWMApp {
|
|
|
11557
11558
|
const group = this._tabGroups.find(g => g.id === this._activeGroupId);
|
|
11558
11559
|
if (group && group.panes && group.panes.length > 0) {
|
|
11559
11560
|
group.panes.forEach(p => {
|
|
11560
|
-
if (p.sessionId) {
|
|
11561
|
+
if (p.sessionId && !this.terminalPanes[p.slot]) {
|
|
11561
11562
|
this.openTerminalInPane(p.slot, p.sessionId, p.sessionName || 'Terminal', p.spawnOpts || {});
|
|
11562
11563
|
}
|
|
11563
11564
|
});
|
|
11564
11565
|
}
|
|
11566
|
+
this._layoutRestored = true;
|
|
11565
11567
|
}
|
|
11566
11568
|
|
|
11567
11569
|
/**
|
|
@@ -11959,11 +11961,11 @@ class CWMApp {
|
|
|
11959
11961
|
}
|
|
11960
11962
|
});
|
|
11961
11963
|
} else {
|
|
11962
|
-
// No cache
|
|
11964
|
+
// No cache, create fresh connections (first time opening this group)
|
|
11963
11965
|
const group = this._tabGroups.find(g => g.id === groupId);
|
|
11964
11966
|
if (group && group.panes) {
|
|
11965
11967
|
group.panes.forEach(p => {
|
|
11966
|
-
if (p.sessionId) {
|
|
11968
|
+
if (p.sessionId && !this.terminalPanes[p.slot]) {
|
|
11967
11969
|
this.openTerminalInPane(p.slot, p.sessionId, p.sessionName || 'Terminal', p.spawnOpts || {});
|
|
11968
11970
|
}
|
|
11969
11971
|
});
|