dmux 4.1.0 → 5.0.0
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/README.md +12 -6
- package/dist/DmuxApp.d.ts.map +1 -1
- package/dist/DmuxApp.js +119 -183
- package/dist/DmuxApp.js.map +1 -1
- package/dist/actions/implementations/closeAction.d.ts.map +1 -1
- package/dist/actions/implementations/closeAction.js +15 -40
- package/dist/actions/implementations/closeAction.js.map +1 -1
- package/dist/actions/types.d.ts +0 -1
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/actions/types.js +7 -0
- package/dist/actions/types.js.map +1 -1
- package/dist/components/panes/PanesGrid.d.ts +2 -0
- package/dist/components/panes/PanesGrid.d.ts.map +1 -1
- package/dist/components/panes/PanesGrid.js +122 -42
- package/dist/components/panes/PanesGrid.js.map +1 -1
- package/dist/components/popups/agentChoicePopup.d.ts +1 -1
- package/dist/components/popups/agentChoicePopup.js +37 -23
- package/dist/components/popups/agentChoicePopup.js.map +1 -1
- package/dist/components/popups/newPanePopup.js +4 -3
- package/dist/components/popups/newPanePopup.js.map +1 -1
- package/dist/components/popups/shortcutsPopup.js +6 -4
- package/dist/components/popups/shortcutsPopup.js.map +1 -1
- package/dist/components/ui/FooterHelp.d.ts +0 -8
- package/dist/components/ui/FooterHelp.d.ts.map +1 -1
- package/dist/components/ui/FooterHelp.js +5 -24
- package/dist/components/ui/FooterHelp.js.map +1 -1
- package/dist/hooks/useActionSystem.d.ts +1 -2
- package/dist/hooks/useActionSystem.d.ts.map +1 -1
- package/dist/hooks/useActionSystem.js +9 -25
- package/dist/hooks/useActionSystem.js.map +1 -1
- package/dist/hooks/useAgentDetection.d.ts +2 -1
- package/dist/hooks/useAgentDetection.d.ts.map +1 -1
- package/dist/hooks/useAgentDetection.js.map +1 -1
- package/dist/hooks/useAgentStatus.d.ts.map +1 -1
- package/dist/hooks/useAgentStatus.js +18 -6
- package/dist/hooks/useAgentStatus.js.map +1 -1
- package/dist/hooks/useInputHandling.d.ts +6 -9
- package/dist/hooks/useInputHandling.d.ts.map +1 -1
- package/dist/hooks/useInputHandling.js +91 -69
- package/dist/hooks/useInputHandling.js.map +1 -1
- package/dist/hooks/useLayoutManagement.d.ts +1 -2
- package/dist/hooks/useLayoutManagement.d.ts.map +1 -1
- package/dist/hooks/useLayoutManagement.js +2 -9
- package/dist/hooks/useLayoutManagement.js.map +1 -1
- package/dist/hooks/useNavigation.d.ts +1 -1
- package/dist/hooks/useNavigation.d.ts.map +1 -1
- package/dist/hooks/useNavigation.js +29 -36
- package/dist/hooks/useNavigation.js.map +1 -1
- package/dist/hooks/usePaneCreation.d.ts +10 -4
- package/dist/hooks/usePaneCreation.d.ts.map +1 -1
- package/dist/hooks/usePaneCreation.js +20 -49
- package/dist/hooks/usePaneCreation.js.map +1 -1
- package/dist/hooks/usePaneLoading.d.ts.map +1 -1
- package/dist/hooks/usePaneLoading.js +21 -23
- package/dist/hooks/usePaneLoading.js.map +1 -1
- package/dist/hooks/usePaneRunner.d.ts +1 -1
- package/dist/hooks/usePaneRunner.d.ts.map +1 -1
- package/dist/hooks/usePaneRunner.js +5 -2
- package/dist/hooks/usePaneRunner.js.map +1 -1
- package/dist/hooks/usePaneSync.d.ts.map +1 -1
- package/dist/hooks/usePaneSync.js +29 -20
- package/dist/hooks/usePaneSync.js.map +1 -1
- package/dist/hooks/usePanes.d.ts.map +1 -1
- package/dist/hooks/usePanes.js +61 -65
- package/dist/hooks/usePanes.js.map +1 -1
- package/dist/hooks/useServices.d.ts +4 -7
- package/dist/hooks/useServices.d.ts.map +1 -1
- package/dist/hooks/useServices.js +0 -4
- package/dist/hooks/useServices.js.map +1 -1
- package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
- package/dist/hooks/useTerminalWidth.js +0 -14
- package/dist/hooks/useTerminalWidth.js.map +1 -1
- package/dist/hooks/useWorktreeActions.d.ts +1 -2
- package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
- package/dist/hooks/useWorktreeActions.js +2 -8
- package/dist/hooks/useWorktreeActions.js.map +1 -1
- package/dist/index.js +260 -51
- package/dist/index.js.map +1 -1
- package/dist/server/embedded-assets.d.ts.map +1 -1
- package/dist/server/embedded-assets.js +381 -236
- package/dist/server/embedded-assets.js.map +1 -1
- package/dist/server/routes/panesRoutes.d.ts.map +1 -1
- package/dist/server/routes/panesRoutes.js +16 -2
- package/dist/server/routes/panesRoutes.js.map +1 -1
- package/dist/services/PopupManager.d.ts +5 -7
- package/dist/services/PopupManager.d.ts.map +1 -1
- package/dist/services/PopupManager.js +8 -42
- package/dist/services/PopupManager.js.map +1 -1
- package/dist/types.d.ts +2 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/agentLaunch.d.ts +12 -0
- package/dist/utils/agentLaunch.d.ts.map +1 -0
- package/dist/utils/agentLaunch.js +56 -0
- package/dist/utils/agentLaunch.js.map +1 -0
- package/dist/utils/paneCreation.d.ts +4 -0
- package/dist/utils/paneCreation.d.ts.map +1 -1
- package/dist/utils/paneCreation.js +33 -17
- package/dist/utils/paneCreation.js.map +1 -1
- package/dist/utils/paneGrouping.d.ts +15 -0
- package/dist/utils/paneGrouping.d.ts.map +1 -0
- package/dist/utils/paneGrouping.js +24 -0
- package/dist/utils/paneGrouping.js.map +1 -0
- package/dist/utils/paneProject.d.ts +16 -0
- package/dist/utils/paneProject.d.ts.map +1 -0
- package/dist/utils/paneProject.js +40 -0
- package/dist/utils/paneProject.js.map +1 -0
- package/dist/utils/paneRebinding.d.ts.map +1 -1
- package/dist/utils/paneRebinding.js +13 -7
- package/dist/utils/paneRebinding.js.map +1 -1
- package/dist/utils/paneTitle.d.ts +13 -0
- package/dist/utils/paneTitle.d.ts.map +1 -0
- package/dist/utils/paneTitle.js +48 -0
- package/dist/utils/paneTitle.js.map +1 -0
- package/dist/utils/projectActions.d.ts +32 -0
- package/dist/utils/projectActions.d.ts.map +1 -0
- package/dist/utils/projectActions.js +108 -0
- package/dist/utils/projectActions.js.map +1 -0
- package/dist/utils/projectRoot.d.ts +10 -0
- package/dist/utils/projectRoot.d.ts.map +1 -0
- package/dist/utils/projectRoot.js +66 -0
- package/dist/utils/projectRoot.js.map +1 -0
- package/dist/utils/reopenWorktree.d.ts +2 -0
- package/dist/utils/reopenWorktree.d.ts.map +1 -1
- package/dist/utils/reopenWorktree.js +14 -4
- package/dist/utils/reopenWorktree.js.map +1 -1
- package/dist/utils/shellPaneDetection.d.ts.map +1 -1
- package/dist/utils/shellPaneDetection.js +21 -0
- package/dist/utils/shellPaneDetection.js.map +1 -1
- package/dist/utils/tmux.d.ts.map +1 -1
- package/dist/utils/tmux.js +0 -8
- package/dist/utils/tmux.js.map +1 -1
- package/dist/utils/tmuxConfigOnboarding.d.ts +19 -0
- package/dist/utils/tmuxConfigOnboarding.d.ts.map +1 -0
- package/dist/utils/tmuxConfigOnboarding.js +299 -0
- package/dist/utils/tmuxConfigOnboarding.js.map +1 -0
- package/dist/workers/panePollingWorker.js +0 -6
- package/dist/workers/panePollingWorker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import { createPane } from '../utils/paneCreation.js';
|
|
3
3
|
import { LogService } from '../services/LogService.js';
|
|
4
|
-
|
|
5
|
-
export default function usePaneCreation({ panes, savePanes, projectName, setIsCreatingPane, setStatusMessage, loadPanes, panesFile, availableAgents, forceRepaint }) {
|
|
4
|
+
export default function usePaneCreation({ panes, savePanes, projectName, sessionProjectRoot, panesFile, setIsCreatingPane, setStatusMessage, loadPanes, availableAgents, }) {
|
|
6
5
|
const openInEditor = async (currentPrompt, setPrompt) => {
|
|
7
6
|
try {
|
|
8
7
|
const os = await import('os');
|
|
@@ -25,75 +24,47 @@ export default function usePaneCreation({ panes, savePanes, projectName, setIsCr
|
|
|
25
24
|
}
|
|
26
25
|
catch { }
|
|
27
26
|
};
|
|
28
|
-
const createNewPane = async (prompt, agent) => {
|
|
29
|
-
|
|
30
|
-
if (forceRepaint) {
|
|
31
|
-
forceRepaint();
|
|
32
|
-
}
|
|
33
|
-
// Minimal clearing to avoid layout shifts
|
|
34
|
-
process.stdout.write('\x1b[2J\x1b[H');
|
|
27
|
+
const createNewPane = async (prompt, agent, options = {}) => {
|
|
28
|
+
const panesForCreation = options.existingPanes ?? panes;
|
|
35
29
|
try {
|
|
30
|
+
setIsCreatingPane(true);
|
|
31
|
+
setStatusMessage("Creating pane...");
|
|
36
32
|
// Use the shared pane creation utility
|
|
37
33
|
const result = await createPane({
|
|
38
34
|
prompt,
|
|
39
35
|
agent,
|
|
40
36
|
projectName,
|
|
41
|
-
existingPanes:
|
|
37
|
+
existingPanes: panesForCreation,
|
|
38
|
+
slugSuffix: options.slugSuffix,
|
|
39
|
+
slugBase: options.slugBase,
|
|
40
|
+
projectRoot: options.targetProjectRoot,
|
|
41
|
+
sessionProjectRoot,
|
|
42
|
+
sessionConfigPath: panesFile,
|
|
42
43
|
}, availableAgents);
|
|
43
44
|
if (result.needsAgentChoice) {
|
|
44
45
|
// This shouldn't happen in the TUI flow since we handle agent choice
|
|
45
46
|
// before calling createNewPane, but just in case
|
|
46
47
|
setStatusMessage('Agent choice is required');
|
|
47
48
|
setTimeout(() => setStatusMessage(''), 3000);
|
|
48
|
-
return;
|
|
49
|
+
return null;
|
|
49
50
|
}
|
|
50
51
|
// Save the pane
|
|
51
|
-
const updatedPanes = [...
|
|
52
|
+
const updatedPanes = [...panesForCreation, result.pane];
|
|
52
53
|
await savePanes(updatedPanes);
|
|
53
|
-
// Validate the pane was saved by checking the config
|
|
54
|
-
await new Promise(r => setTimeout(r, 100));
|
|
55
|
-
try {
|
|
56
|
-
const fs = await import('fs');
|
|
57
|
-
const configContent = await fs.promises.readFile(panesFile, 'utf-8');
|
|
58
|
-
const config = JSON.parse(configContent);
|
|
59
|
-
const savedPanes = Array.isArray(config) ? config : config.panes || [];
|
|
60
|
-
const paneExists = savedPanes.some((p) => p.id === result.pane.id);
|
|
61
|
-
if (!paneExists) {
|
|
62
|
-
const msg = 'Pane not found in config after save, retrying...';
|
|
63
|
-
console.error('Warning:', msg);
|
|
64
|
-
LogService.getInstance().warn(msg, 'usePaneCreation', result.pane.id);
|
|
65
|
-
await savePanes(updatedPanes);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
const msg = 'Could not validate pane save';
|
|
70
|
-
console.error('Warning:', msg, error);
|
|
71
|
-
LogService.getInstance().warn(msg, 'usePaneCreation', result.pane.id);
|
|
72
|
-
}
|
|
73
|
-
// CRITICAL: Force repaint FIRST before clearing
|
|
74
|
-
if (forceRepaint) {
|
|
75
|
-
forceRepaint();
|
|
76
|
-
}
|
|
77
|
-
// CRITICAL: Aggressive clearing to prevent artifacts
|
|
78
|
-
// 1. Clear screen with ANSI codes (including scrollback)
|
|
79
|
-
process.stdout.write('\x1b[2J\x1b[3J\x1b[H');
|
|
80
|
-
const tmuxService = TmuxService.getInstance();
|
|
81
|
-
// 2. Clear tmux history and scrollback
|
|
82
|
-
tmuxService.clearHistorySync();
|
|
83
|
-
// 3. Force tmux client refresh
|
|
84
|
-
tmuxService.refreshClientSync();
|
|
85
54
|
await loadPanes();
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
55
|
+
setStatusMessage("Pane created");
|
|
56
|
+
setTimeout(() => setStatusMessage(""), 2000);
|
|
57
|
+
return result.pane;
|
|
90
58
|
}
|
|
91
59
|
catch (error) {
|
|
92
60
|
const msg = 'Failed to create pane';
|
|
93
|
-
console.error(msg, error);
|
|
94
61
|
LogService.getInstance().error(msg, 'usePaneCreation', undefined, error instanceof Error ? error : undefined);
|
|
95
62
|
setStatusMessage(`Failed to create pane: ${error}`);
|
|
96
63
|
setTimeout(() => setStatusMessage(''), 3000);
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
setIsCreatingPane(false);
|
|
97
68
|
}
|
|
98
69
|
};
|
|
99
70
|
return { openInEditor, createNewPane };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaneCreation.js","sourceRoot":"","sources":["../../src/hooks/usePaneCreation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"usePaneCreation.js","sourceRoot":"","sources":["../../src/hooks/usePaneCreation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaneLoading.d.ts","sourceRoot":"","sources":["../../src/hooks/usePaneLoading.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePaneLoading.d.ts","sourceRoot":"","sources":["../../src/hooks/usePaneLoading.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAW5C,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,SAAI,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CAmCxH;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoB9E;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,QAAQ,EAAE,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoGrB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,cAAc,CAAC,CAiEzB"}
|
|
@@ -1,41 +1,37 @@
|
|
|
1
1
|
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
2
3
|
import { splitPane } from '../utils/tmux.js';
|
|
3
4
|
import { rebindPaneByTitle } from '../utils/paneRebinding.js';
|
|
4
5
|
import { LogService } from '../services/LogService.js';
|
|
5
6
|
import { TmuxService } from '../services/TmuxService.js';
|
|
6
7
|
import { PaneLifecycleManager } from '../services/PaneLifecycleManager.js';
|
|
7
8
|
import { TMUX_RETRY_DELAY } from '../constants/timing.js';
|
|
9
|
+
import { atomicWriteJson } from '../utils/atomicWrite.js';
|
|
10
|
+
import { getPaneTmuxTitle } from '../utils/paneTitle.js';
|
|
8
11
|
/**
|
|
9
12
|
* Fetches all tmux pane IDs and titles for the current session
|
|
10
13
|
* Retries up to maxRetries times with delay between attempts
|
|
11
14
|
*/
|
|
12
15
|
export async function fetchTmuxPaneIds(maxRetries = 2) {
|
|
13
16
|
const tmuxService = TmuxService.getInstance();
|
|
14
|
-
let allPaneIds = [];
|
|
15
|
-
let titleToId = new Map();
|
|
16
17
|
let retryCount = 0;
|
|
17
18
|
while (retryCount <= maxRetries) {
|
|
18
19
|
try {
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
for (const
|
|
23
|
-
|
|
24
|
-
const title = await tmuxService.getPaneTitle(id);
|
|
25
|
-
// Filter out dmux internal panes (spacer, control pane, etc.)
|
|
26
|
-
if (id && id.startsWith('%') && title !== 'dmux-spacer') {
|
|
27
|
-
allPaneIds.push(id);
|
|
28
|
-
if (title)
|
|
29
|
-
titleToId.set(title.trim(), id);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// Skip panes we can't get titles for
|
|
20
|
+
const paneInfo = await tmuxService.getAllPaneInfo();
|
|
21
|
+
const allPaneIds = [];
|
|
22
|
+
const titleToId = new Map();
|
|
23
|
+
for (const pane of paneInfo) {
|
|
24
|
+
if (!pane.paneId || !pane.paneId.startsWith('%') || pane.title === 'dmux-spacer') {
|
|
34
25
|
continue;
|
|
35
26
|
}
|
|
27
|
+
allPaneIds.push(pane.paneId);
|
|
28
|
+
if (pane.title) {
|
|
29
|
+
titleToId.set(pane.title.trim(), pane.paneId);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (allPaneIds.length > 0 || retryCount === maxRetries) {
|
|
33
|
+
return { allPaneIds, titleToId };
|
|
36
34
|
}
|
|
37
|
-
if (allPaneIds.length > 0 || retryCount === maxRetries)
|
|
38
|
-
break;
|
|
39
35
|
}
|
|
40
36
|
catch (error) {
|
|
41
37
|
// Retry on tmux command failure (common during rapid pane creation/destruction)
|
|
@@ -48,7 +44,7 @@ export async function fetchTmuxPaneIds(maxRetries = 2) {
|
|
|
48
44
|
}
|
|
49
45
|
retryCount++;
|
|
50
46
|
}
|
|
51
|
-
return { allPaneIds, titleToId };
|
|
47
|
+
return { allPaneIds: [], titleToId: new Map() };
|
|
52
48
|
}
|
|
53
49
|
/**
|
|
54
50
|
* Reads and parses the panes config file
|
|
@@ -84,12 +80,13 @@ export async function recreateMissingPanes(missingPanes, panesFile) {
|
|
|
84
80
|
if (missingPanes.length === 0)
|
|
85
81
|
return;
|
|
86
82
|
const tmuxService = TmuxService.getInstance();
|
|
83
|
+
const sessionProjectRoot = path.dirname(path.dirname(panesFile));
|
|
87
84
|
for (const missingPane of missingPanes) {
|
|
88
85
|
try {
|
|
89
86
|
// Create new pane
|
|
90
87
|
const newPaneId = splitPane({ cwd: missingPane.worktreePath || process.cwd() });
|
|
91
88
|
// Set pane title
|
|
92
|
-
await tmuxService.setPaneTitle(newPaneId, missingPane
|
|
89
|
+
await tmuxService.setPaneTitle(newPaneId, getPaneTmuxTitle(missingPane, sessionProjectRoot));
|
|
93
90
|
// Update the pane with new ID
|
|
94
91
|
missingPane.paneId = newPaneId;
|
|
95
92
|
// Send a message to the pane indicating it was restored
|
|
@@ -118,6 +115,7 @@ export async function recreateMissingPanes(missingPanes, panesFile) {
|
|
|
118
115
|
*/
|
|
119
116
|
export async function recreateKilledWorktreePanes(panes, allPaneIds, panesFile) {
|
|
120
117
|
const lifecycleManager = PaneLifecycleManager.getInstance();
|
|
118
|
+
const sessionProjectRoot = path.dirname(path.dirname(panesFile));
|
|
121
119
|
// Filter out panes that are being intentionally closed
|
|
122
120
|
const worktreePanesToRecreate = panes.filter(pane => {
|
|
123
121
|
// Pane must be missing from tmux and have a worktree path
|
|
@@ -146,7 +144,7 @@ export async function recreateKilledWorktreePanes(panes, allPaneIds, panesFile)
|
|
|
146
144
|
// Create new pane in the worktree directory
|
|
147
145
|
const newPaneId = splitPane({ cwd: pane.worktreePath });
|
|
148
146
|
// Set pane title
|
|
149
|
-
await tmuxService.setPaneTitle(newPaneId, pane
|
|
147
|
+
await tmuxService.setPaneTitle(newPaneId, getPaneTmuxTitle(pane, sessionProjectRoot));
|
|
150
148
|
// Update the pane with new ID
|
|
151
149
|
const paneIndex = updatedPanes.findIndex(p => p.id === pane.id);
|
|
152
150
|
if (paneIndex !== -1) {
|
|
@@ -225,7 +223,7 @@ export async function loadAndProcessPanes(panesFile, isInitialLoad) {
|
|
|
225
223
|
const config = JSON.parse(configContent);
|
|
226
224
|
config.panes = reboundPanes;
|
|
227
225
|
config.lastUpdated = new Date().toISOString();
|
|
228
|
-
await
|
|
226
|
+
await atomicWriteJson(panesFile, config);
|
|
229
227
|
LogService.getInstance().debug('Saved cleaned config after removing stale shell panes', 'usePaneLoading');
|
|
230
228
|
}
|
|
231
229
|
catch (saveError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaneLoading.js","sourceRoot":"","sources":["../../src/hooks/usePaneLoading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"usePaneLoading.js","sourceRoot":"","sources":["../../src/hooks/usePaneLoading.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ interface Params {
|
|
|
7
7
|
setRunningCommand: (v: boolean) => void;
|
|
8
8
|
}
|
|
9
9
|
export default function usePaneRunner({ panes, savePanes, projectSettings, setStatusMessage, setRunningCommand }: Params): {
|
|
10
|
-
readonly copyNonGitFiles: (worktreePath: string) => Promise<void>;
|
|
10
|
+
readonly copyNonGitFiles: (worktreePath: string, sourceProjectRoot?: string) => Promise<void>;
|
|
11
11
|
readonly runCommandInternal: (type: "test" | "dev", pane: DmuxPane) => Promise<void>;
|
|
12
12
|
readonly monitorTestOutput: (paneId: string, logFile: string) => Promise<void>;
|
|
13
13
|
readonly monitorDevOutput: (paneId: string, logFile: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaneRunner.d.ts","sourceRoot":"","sources":["../../src/hooks/usePaneRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK7D,UAAU,MAAM;IACd,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,iBAAiB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,EAAE,MAAM;6CACzE,MAAM;
|
|
1
|
+
{"version":3,"file":"usePaneRunner.d.ts","sourceRoot":"","sources":["../../src/hooks/usePaneRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK7D,UAAU,MAAM;IACd,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,iBAAiB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,EAAE,MAAM;6CACzE,MAAM,sBAAsB,MAAM;wCAiBvC,MAAM,GAAG,KAAK,QAAQ,QAAQ;yCAqD7B,MAAM,WAAW,MAAM;wCA6BxB,MAAM,WAAW,MAAM;4CAoBnB,QAAQ,QAAQ,MAAM,GAAG,KAAK;EAyB3E"}
|
|
@@ -4,10 +4,13 @@ import { TmuxService } from '../services/TmuxService.js';
|
|
|
4
4
|
import { enforceControlPaneSize } from '../utils/tmux.js';
|
|
5
5
|
import { SIDEBAR_WIDTH } from '../utils/layoutManager.js';
|
|
6
6
|
export default function usePaneRunner({ panes, savePanes, projectSettings, setStatusMessage, setRunningCommand }) {
|
|
7
|
-
const copyNonGitFiles = async (worktreePath) => {
|
|
7
|
+
const copyNonGitFiles = async (worktreePath, sourceProjectRoot) => {
|
|
8
8
|
try {
|
|
9
9
|
setStatusMessage('Copying non-git files from main...');
|
|
10
|
-
const
|
|
10
|
+
const derivedRoot = worktreePath.replace(/[\\\/]\.dmux[\\\/]worktrees[\\\/][^\\\/]+$/, '');
|
|
11
|
+
const projectRoot = sourceProjectRoot
|
|
12
|
+
|| (derivedRoot !== worktreePath ? derivedRoot : undefined)
|
|
13
|
+
|| execSync('git rev-parse --show-toplevel', { encoding: 'utf-8', stdio: 'pipe' }).trim();
|
|
11
14
|
const rsyncCmd = `rsync -avz --exclude='.git' --exclude='.dmux' --exclude='node_modules' --exclude='dist' --exclude='build' --exclude='.next' --exclude='.turbo' "${projectRoot}/" "${worktreePath}/"`;
|
|
12
15
|
execSync(rsyncCmd, { stdio: 'pipe' });
|
|
13
16
|
setStatusMessage('Non-git files copied successfully');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaneRunner.js","sourceRoot":"","sources":["../../src/hooks/usePaneRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAU1D,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAU;IACtH,MAAM,eAAe,GAAG,KAAK,EAAE,YAAoB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"usePaneRunner.js","sourceRoot":"","sources":["../../src/hooks/usePaneRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAU1D,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAU;IACtH,MAAM,eAAe,GAAG,KAAK,EAAE,YAAoB,EAAE,iBAA0B,EAAE,EAAE;QACjF,IAAI,CAAC;YACH,gBAAgB,CAAC,oCAAoC,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;YAC3F,MAAM,WAAW,GAAG,iBAAiB;mBAChC,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;mBACxD,QAAQ,CAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5F,MAAM,QAAQ,GAAG,mJAAmJ,WAAW,OAAO,YAAY,IAAI,CAAC;YACvM,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;YACtD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;YACjD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAoB,EAAE,IAAc,EAAE,EAAE;QACxE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;YACnD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,gBAAgB,CAAC,YAAY,IAAI,0BAA0B,CAAC,CAAC;YAE7D,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAE9C,MAAM,gBAAgB,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YAChF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC;oBAAC,MAAM,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YAClE,CAAC;YAED,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,aAAa,IAAI,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC;YACnD,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,YAAY,QAAQ,OAAO,eAAe,OAAO,EAAE,CAAC;YACpF,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAEtF,MAAM,WAAW,GAAa;gBAC5B,GAAG,IAAI;gBACP,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,QAAQ;gBAC5D,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS;aAC9C,CAAC;YAEd,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;YAE9B,IAAI,IAAI,KAAK,MAAM;gBAAE,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;;gBAC5E,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YAEhE,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,gBAAgB,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,wBAAwB,CAAC,CAAC;YACrF,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,gBAAgB,CAAC,iBAAiB,IAAI,UAAU,CAAC,CAAC;YAClD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,MAAM,GAAoC,SAAS,CAAC;YACxD,IAAI,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBAC/G,MAAM,GAAG,QAAQ,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxI,MAAM,GAAG,QAAQ,CAAC;YACpB,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,QAAQ,CAAC,gDAAgD,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAClG,MAAM,UAAU,GAAG,QAAQ,CAAC,yBAAyB,IAAI,CAAC,YAAY,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC/G,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzD,IAAI,MAAM,KAAK,SAAS;4BAAE,MAAM,GAAG,QAAQ,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,GAAG,QAAQ,CAAC;gBAC9C,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1H,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS;gBAAE,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACvF,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACvL,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;oBAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACpD,IAAK,QAAgB,CAAC,CAAC,CAAC;oBAAE,MAAM,GAAG,oBAAqB,QAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YAC9C,IAAI,MAAM,GAA0B,SAAS,CAAC;YAC9C,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC;oBAAC,QAAQ,CAAC,gDAAgD,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,MAAM,GAAG,SAAS,CAAC;gBAAC,CAAC;YACzI,CAAC;YACD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnH,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS;gBAAE,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACtF,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAAc,EAAE,IAAoB,EAAE,EAAE;QAC5E,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,gBAAgB,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC;YAChD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,0DAA0D;YAC1D,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBAC3D,sBAAsB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,gBAAgB,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC;YAC5C,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB,CAAC,oBAAoB,IAAI,SAAS,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAAW,CAAC;AACvH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaneSync.d.ts","sourceRoot":"","sources":["../../src/hooks/usePaneSync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"usePaneSync.d.ts","sourceRoot":"","sources":["../../src/hooks/usePaneSync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAW5C;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EAAE,EACjB,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC5D,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoDrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,QAAQ,EAAE,EACvB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,EAAE,OAAO,GACrB;IAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAC;IAAC,uBAAuB,EAAE,QAAQ,EAAE,CAAA;CAAE,CAuF9F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,EAAE,EACvB,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9E;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
|
@@ -4,21 +4,36 @@ import { LogService } from '../services/LogService.js';
|
|
|
4
4
|
import { TmuxService } from '../services/TmuxService.js';
|
|
5
5
|
import { PaneLifecycleManager } from '../services/PaneLifecycleManager.js';
|
|
6
6
|
import { atomicWriteJson } from '../utils/atomicWrite.js';
|
|
7
|
+
import { getPaneTmuxTitle } from '../utils/paneTitle.js';
|
|
8
|
+
import { StateManager } from '../shared/StateManager.js';
|
|
7
9
|
/**
|
|
8
10
|
* Enforces that pane titles in tmux match the slugs in the config
|
|
9
11
|
* This ensures dmux config is the source of truth for pane names
|
|
10
12
|
*/
|
|
11
13
|
export async function enforcePaneTitles(panes, allPaneIds) {
|
|
12
14
|
const tmuxService = TmuxService.getInstance();
|
|
15
|
+
const sessionProjectRoot = StateManager.getInstance().getState().projectRoot;
|
|
16
|
+
const titleByPaneId = new Map();
|
|
17
|
+
try {
|
|
18
|
+
const paneInfo = await tmuxService.getAllPaneInfo();
|
|
19
|
+
for (const pane of paneInfo) {
|
|
20
|
+
titleByPaneId.set(pane.paneId, pane.title);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// Fall back to per-pane title lookups below.
|
|
25
|
+
}
|
|
13
26
|
for (const pane of panes) {
|
|
14
27
|
if (allPaneIds.includes(pane.paneId)) {
|
|
15
28
|
try {
|
|
16
29
|
// Get current title to check if update is needed
|
|
17
|
-
const currentTitle =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
30
|
+
const currentTitle = titleByPaneId.get(pane.paneId)
|
|
31
|
+
?? await tmuxService.getPaneTitle(pane.paneId);
|
|
32
|
+
const expectedTitle = getPaneTmuxTitle(pane, sessionProjectRoot || undefined);
|
|
33
|
+
// Only update if title doesn't match expected title
|
|
34
|
+
if (currentTitle !== expectedTitle) {
|
|
35
|
+
await tmuxService.setPaneTitle(pane.paneId, expectedTitle);
|
|
36
|
+
LogService.getInstance().debug(`Synced pane title: ${pane.id} "${currentTitle}" → "${expectedTitle}"`, 'shellDetection');
|
|
22
37
|
}
|
|
23
38
|
}
|
|
24
39
|
catch (error) {
|
|
@@ -38,20 +53,14 @@ export async function savePanesToFile(panesFile, panes, withWriteLock) {
|
|
|
38
53
|
// Try to update pane IDs if they've changed (rebinding)
|
|
39
54
|
try {
|
|
40
55
|
const tmuxService = TmuxService.getInstance();
|
|
41
|
-
const allPanes = await tmuxService.getAllPaneIds();
|
|
42
56
|
const titleToId = new Map();
|
|
43
|
-
|
|
44
|
-
for (const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
// Skip panes we can't get titles for
|
|
54
|
-
continue;
|
|
57
|
+
const paneInfo = await tmuxService.getAllPaneInfo();
|
|
58
|
+
for (const pane of paneInfo) {
|
|
59
|
+
if (pane.paneId &&
|
|
60
|
+
pane.paneId.startsWith('%') &&
|
|
61
|
+
pane.title &&
|
|
62
|
+
pane.title !== 'dmux-spacer') {
|
|
63
|
+
titleToId.set(pane.title.trim(), pane.paneId);
|
|
55
64
|
}
|
|
56
65
|
}
|
|
57
66
|
// Only rebind IDs, don't filter out panes
|
|
@@ -167,7 +176,7 @@ export async function saveUpdatedPaneConfig(panesFile, activePanes, withWriteLoc
|
|
|
167
176
|
currentConfig.panes = activePanes;
|
|
168
177
|
currentConfig.lastUpdated = new Date().toISOString();
|
|
169
178
|
LogService.getInstance().debug(`Writing config with ${currentConfig.panes.length} panes`, 'shellDetection');
|
|
170
|
-
await
|
|
179
|
+
await atomicWriteJson(panesFile, currentConfig);
|
|
171
180
|
LogService.getInstance().debug('Config file written successfully', 'shellDetection');
|
|
172
181
|
});
|
|
173
182
|
}
|
|
@@ -197,7 +206,7 @@ export async function destroyWelcomePaneIfNeeded(panesFile, currentPaneCount, ne
|
|
|
197
206
|
// Clear welcomePaneId from config (will be saved by caller)
|
|
198
207
|
config.welcomePaneId = undefined;
|
|
199
208
|
// Write the config immediately to clear welcomePaneId
|
|
200
|
-
await
|
|
209
|
+
await atomicWriteJson(panesFile, config);
|
|
201
210
|
}
|
|
202
211
|
}
|
|
203
212
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaneSync.js","sourceRoot":"","sources":["../../src/hooks/usePaneSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"usePaneSync.js","sourceRoot":"","sources":["../../src/hooks/usePaneSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePanes.d.ts","sourceRoot":"","sources":["../../src/hooks/usePanes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePanes.d.ts","sourceRoot":"","sources":["../../src/hooks/usePanes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAoB5C,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAUvF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,OAAO;;;;;mCA2HiB,QAAQ,EAAE;;EA4F9C"}
|