dmux 3.3.0 → 3.3.1

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.
Files changed (116) hide show
  1. package/dist/DmuxApp.d.ts.map +1 -1
  2. package/dist/DmuxApp.js +51 -12
  3. package/dist/DmuxApp.js.map +1 -1
  4. package/dist/actions/implementations/closeAction.js +4 -0
  5. package/dist/actions/implementations/closeAction.js.map +1 -1
  6. package/dist/actions/merge/commitMessageHandler.d.ts.map +1 -1
  7. package/dist/actions/merge/commitMessageHandler.js +0 -8
  8. package/dist/actions/merge/commitMessageHandler.js.map +1 -1
  9. package/dist/actions/merge/mergeExecution.d.ts.map +1 -1
  10. package/dist/actions/merge/mergeExecution.js +5 -1
  11. package/dist/actions/merge/mergeExecution.js.map +1 -1
  12. package/dist/components/popups/logsPopup.js +2 -2
  13. package/dist/components/popups/logsPopup.js.map +1 -1
  14. package/dist/components/ui/FooterHelp.d.ts +4 -0
  15. package/dist/components/ui/FooterHelp.d.ts.map +1 -1
  16. package/dist/components/ui/FooterHelp.js +45 -1
  17. package/dist/components/ui/FooterHelp.js.map +1 -1
  18. package/dist/components/ui/ToastNotification.d.ts +13 -0
  19. package/dist/components/ui/ToastNotification.d.ts.map +1 -0
  20. package/dist/components/ui/ToastNotification.js +22 -0
  21. package/dist/components/ui/ToastNotification.js.map +1 -0
  22. package/dist/dashboard.js +2 -2
  23. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  24. package/dist/hooks/useActionSystem.js +8 -23
  25. package/dist/hooks/useActionSystem.js.map +1 -1
  26. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  27. package/dist/hooks/useInputHandling.js +16 -2
  28. package/dist/hooks/useInputHandling.js.map +1 -1
  29. package/dist/hooks/useLayoutManagement.d.ts.map +1 -1
  30. package/dist/hooks/useLayoutManagement.js +8 -3
  31. package/dist/hooks/useLayoutManagement.js.map +1 -1
  32. package/dist/hooks/usePaneLoading.js +28 -8
  33. package/dist/hooks/usePaneLoading.js.map +1 -1
  34. package/dist/hooks/usePaneSync.d.ts.map +1 -1
  35. package/dist/hooks/usePaneSync.js +7 -3
  36. package/dist/hooks/usePaneSync.js.map +1 -1
  37. package/dist/hooks/usePanes.js +16 -4
  38. package/dist/hooks/usePanes.js.map +1 -1
  39. package/dist/hooks/useShellDetection.js +20 -6
  40. package/dist/hooks/useShellDetection.js.map +1 -1
  41. package/dist/index.js +58 -46
  42. package/dist/index.js.map +1 -1
  43. package/dist/layout/LayoutCalculator.d.ts.map +1 -1
  44. package/dist/layout/LayoutCalculator.js +0 -3
  45. package/dist/layout/LayoutCalculator.js.map +1 -1
  46. package/dist/layout/SpacerManager.js +15 -7
  47. package/dist/layout/SpacerManager.js.map +1 -1
  48. package/dist/layout/TmuxLayoutApplier.d.ts +4 -1
  49. package/dist/layout/TmuxLayoutApplier.d.ts.map +1 -1
  50. package/dist/layout/TmuxLayoutApplier.js +27 -15
  51. package/dist/layout/TmuxLayoutApplier.js.map +1 -1
  52. package/dist/server/embedded-assets.d.ts.map +1 -1
  53. package/dist/server/embedded-assets.js +118 -67
  54. package/dist/server/embedded-assets.js.map +1 -1
  55. package/dist/server/routes/keysRoutes.d.ts +15 -2
  56. package/dist/server/routes/keysRoutes.d.ts.map +1 -1
  57. package/dist/server/routes/keysRoutes.js +18 -1
  58. package/dist/server/routes/keysRoutes.js.map +1 -1
  59. package/dist/services/AutoUpdater.d.ts.map +1 -1
  60. package/dist/services/AutoUpdater.js +2 -1
  61. package/dist/services/AutoUpdater.js.map +1 -1
  62. package/dist/services/StatusDetector.d.ts.map +1 -1
  63. package/dist/services/StatusDetector.js +5 -7
  64. package/dist/services/StatusDetector.js.map +1 -1
  65. package/dist/services/TmuxService.d.ts +48 -0
  66. package/dist/services/TmuxService.d.ts.map +1 -1
  67. package/dist/services/TmuxService.js +85 -4
  68. package/dist/services/TmuxService.js.map +1 -1
  69. package/dist/services/ToastService.d.ts +71 -0
  70. package/dist/services/ToastService.d.ts.map +1 -0
  71. package/dist/services/ToastService.js +151 -0
  72. package/dist/services/ToastService.js.map +1 -0
  73. package/dist/shared/StateManager.d.ts +22 -0
  74. package/dist/shared/StateManager.d.ts.map +1 -1
  75. package/dist/shared/StateManager.js +68 -1
  76. package/dist/shared/StateManager.js.map +1 -1
  77. package/dist/terminal.js +3 -3
  78. package/dist/types.d.ts +3 -0
  79. package/dist/types.d.ts.map +1 -1
  80. package/dist/utils/asciiArt.js +3 -3
  81. package/dist/utils/asciiArt.js.map +1 -1
  82. package/dist/utils/atomicWrite.d.ts +33 -0
  83. package/dist/utils/atomicWrite.d.ts.map +1 -0
  84. package/dist/utils/atomicWrite.js +89 -0
  85. package/dist/utils/atomicWrite.js.map +1 -0
  86. package/dist/utils/errorHandling.js +34 -8
  87. package/dist/utils/errorHandling.js.map +1 -1
  88. package/dist/utils/generated-agents-doc.d.ts +1 -1
  89. package/dist/utils/generated-agents-doc.js +1 -1
  90. package/dist/utils/hooksDocs.d.ts +1 -1
  91. package/dist/utils/layoutManager.d.ts.map +1 -1
  92. package/dist/utils/layoutManager.js +72 -42
  93. package/dist/utils/layoutManager.js.map +1 -1
  94. package/dist/utils/mergeValidation.d.ts.map +1 -1
  95. package/dist/utils/mergeValidation.js +5 -1
  96. package/dist/utils/mergeValidation.js.map +1 -1
  97. package/dist/utils/paneCreation.d.ts.map +1 -1
  98. package/dist/utils/paneCreation.js +5 -4
  99. package/dist/utils/paneCreation.js.map +1 -1
  100. package/dist/utils/paneRebinding.js +4 -2
  101. package/dist/utils/paneRebinding.js.map +1 -1
  102. package/dist/utils/postPaneCleanup.d.ts.map +1 -1
  103. package/dist/utils/postPaneCleanup.js +1 -11
  104. package/dist/utils/postPaneCleanup.js.map +1 -1
  105. package/dist/utils/shellPaneDetection.js +33 -23
  106. package/dist/utils/shellPaneDetection.js.map +1 -1
  107. package/dist/utils/tmux.d.ts.map +1 -1
  108. package/dist/utils/tmux.js +19 -13
  109. package/dist/utils/tmux.js.map +1 -1
  110. package/dist/utils/welcomePane.d.ts.map +1 -1
  111. package/dist/utils/welcomePane.js +1 -7
  112. package/dist/utils/welcomePane.js.map +1 -1
  113. package/dist/utils/welcomePaneManager.d.ts.map +1 -1
  114. package/dist/utils/welcomePaneManager.js +10 -24
  115. package/dist/utils/welcomePaneManager.js.map +1 -1
  116. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"welcomePane.js","sourceRoot":"","sources":["../../src/utils/welcomePane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcomePane.js","sourceRoot":"","sources":["../../src/utils/welcomePane.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"welcomePaneManager.d.ts","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"AA0CA;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAiD1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CAiDlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf"}
1
+ {"version":3,"file":"welcomePaneManager.d.ts","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"AAyCA;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAkC1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CA2ClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -2,8 +2,7 @@ import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { createWelcomePane, welcomePaneExists, destroyWelcomePane } from './welcomePane.js';
4
4
  import { LogService } from '../services/LogService.js';
5
- import { recalculateAndApplyLayout } from './layoutManager.js';
6
- import { getTerminalDimensions } from './tmux.js';
5
+ import { atomicWriteJsonSync } from './atomicWrite.js';
7
6
  // Global lock to prevent concurrent welcome pane operations
8
7
  let creationLock = false;
9
8
  let lastCreationTime = 0;
@@ -50,26 +49,17 @@ export function destroyWelcomePaneCoordinated(projectRoot) {
50
49
  const configContent = fs.readFileSync(configPath, 'utf-8');
51
50
  const config = JSON.parse(configContent);
52
51
  if (config.welcomePaneId) {
53
- logService.debug(`Destroying welcome pane: ${config.welcomePaneId}`, 'WelcomePaneManager');
54
52
  // Destroy the pane
55
53
  destroyWelcomePane(config.welcomePaneId);
56
- // Clear from config
54
+ // Clear from config (use atomic write to prevent race conditions)
57
55
  delete config.welcomePaneId;
58
56
  config.lastUpdated = new Date().toISOString();
59
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
60
- logService.debug('Welcome pane destroyed and cleared from config', 'WelcomePaneManager');
61
- // Recalculate layout for remaining content panes (if any)
62
- if (config.panes && config.panes.length > 0 && config.controlPaneId) {
63
- try {
64
- const dimensions = getTerminalDimensions();
65
- const contentPaneIds = config.panes.map(p => p.paneId);
66
- recalculateAndApplyLayout(config.controlPaneId, contentPaneIds, dimensions.width, dimensions.height);
67
- logService.debug(`Recalculated layout for ${contentPaneIds.length} content panes`, 'WelcomePaneManager');
68
- }
69
- catch (error) {
70
- logService.debug('Failed to recalculate layout after welcome pane destruction', 'WelcomePaneManager');
71
- }
72
- }
57
+ atomicWriteJsonSync(configPath, config);
58
+ // DO NOT recalculate layout here - layout was already calculated in paneCreation.ts
59
+ // before this function was called. Recalculating now would cause a mismatch because
60
+ // tmux still has 3 panes (sidebar, welcome being destroyed, new content) but we'd
61
+ // calculate for 2 panes (sidebar, new content).
62
+ // The layout application in paneCreation.ts already accounts for the correct final state.
73
63
  }
74
64
  return true;
75
65
  }
@@ -104,22 +94,18 @@ export async function createWelcomePaneCoordinated(projectRoot, controlPaneId) {
104
94
  const config = JSON.parse(configContent);
105
95
  // Check if we already have a valid welcome pane
106
96
  if (config.welcomePaneId && await welcomePaneExists(config.welcomePaneId)) {
107
- logService.debug(`Welcome pane ${config.welcomePaneId} already exists`, 'WelcomePaneManager');
108
97
  return true; // Already exists, that's fine
109
98
  }
110
- logService.debug('Creating new welcome pane', 'WelcomePaneManager');
111
99
  // Create the welcome pane
112
100
  const welcomePaneId = await createWelcomePane(controlPaneId);
113
101
  if (welcomePaneId) {
114
- // Update config with new welcome pane ID
102
+ // Update config with new welcome pane ID (use atomic write)
115
103
  config.welcomePaneId = welcomePaneId;
116
104
  config.lastUpdated = new Date().toISOString();
117
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
118
- logService.debug(`Created welcome pane: ${welcomePaneId}`, 'WelcomePaneManager');
105
+ atomicWriteJsonSync(configPath, config);
119
106
  return true;
120
107
  }
121
108
  else {
122
- logService.debug('createWelcomePane returned undefined', 'WelcomePaneManager');
123
109
  return false;
124
110
  }
125
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"welcomePaneManager.js","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcomePaneManager.js","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dmux",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "Tmux pane manager with AI agent integration for parallel development workflows",
5
5
  "type": "module",
6
6
  "author": "Justin Schroeder",