@phenx-inc/ctlsurf 0.15.2 → 0.16.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.
Files changed (32) hide show
  1. package/out/headless/index.mjs +10 -3
  2. package/out/headless/index.mjs.map +2 -2
  3. package/out/main/index.js +54 -4
  4. package/out/preload/index.js +2 -0
  5. package/out/renderer/assets/{cssMode-CPfLk04b.js → cssMode-Xx1-SozN.js} +3 -3
  6. package/out/renderer/assets/{freemarker2-CDHpuFqv.js → freemarker2-DM49yPw1.js} +1 -1
  7. package/out/renderer/assets/{handlebars-CgX9Jz36.js → handlebars-DJJBblpV.js} +1 -1
  8. package/out/renderer/assets/{html-DdgFccDG.js → html-DnMnJOxw.js} +1 -1
  9. package/out/renderer/assets/{htmlMode-CRHIwtvP.js → htmlMode-BG5u2CSH.js} +3 -3
  10. package/out/renderer/assets/{index-DVdWgw7p.js → index-D65QIRev.js} +300 -84
  11. package/out/renderer/assets/{index-3sFJEz7i.css → index-DID1LlMU.css} +88 -0
  12. package/out/renderer/assets/{javascript-CHhxL0s7.js → javascript-Dci_phmN.js} +2 -2
  13. package/out/renderer/assets/{jsonMode-Cy7-eWai.js → jsonMode-Dmp3JJSm.js} +3 -3
  14. package/out/renderer/assets/{liquid-vMkF9pfk.js → liquid-C9KVysk1.js} +1 -1
  15. package/out/renderer/assets/{lspLanguageFeatures-nAygNzuG.js → lspLanguageFeatures-IDD0-KWa.js} +1 -1
  16. package/out/renderer/assets/{mdx-C4UVz5dW.js → mdx-ascmBFXX.js} +1 -1
  17. package/out/renderer/assets/{python-BHemzN9g.js → python-DcbM4Hy5.js} +1 -1
  18. package/out/renderer/assets/{razor-DH6NPzbo.js → razor-XJROxpYK.js} +1 -1
  19. package/out/renderer/assets/{tsMode-DxBdlGZB.js → tsMode-EXbzul3n.js} +1 -1
  20. package/out/renderer/assets/{typescript-BRCOaBQ5.js → typescript-DhTtFBLt.js} +1 -1
  21. package/out/renderer/assets/{xml-DVv9gDP1.js → xml-BLfEkVl1.js} +1 -1
  22. package/out/renderer/assets/{yaml-jB-C3CdS.js → yaml-DpzsqvWa.js} +1 -1
  23. package/out/renderer/index.html +2 -2
  24. package/package.json +1 -1
  25. package/src/main/index.ts +52 -1
  26. package/src/main/orchestrator.ts +18 -3
  27. package/src/preload/index.ts +4 -0
  28. package/src/renderer/App.tsx +179 -50
  29. package/src/renderer/components/AgentPicker.tsx +61 -10
  30. package/src/renderer/components/ProjectPicker.tsx +44 -13
  31. package/src/renderer/components/TerminalPanel.tsx +34 -7
  32. package/src/renderer/styles.css +88 -0
@@ -17314,7 +17314,7 @@ var require_package = __commonJS({
17314
17314
  "package.json"(exports, module) {
17315
17315
  module.exports = {
17316
17316
  name: "@phenx-inc/ctlsurf",
17317
- version: "0.15.2",
17317
+ version: "0.16.0",
17318
17318
  description: "Agent-agnostic terminal and desktop app for ctlsurf \u2014 run Claude Code, Codex, or any coding agent with live session logging and remote control",
17319
17319
  main: "out/main/index.js",
17320
17320
  bin: {
@@ -21114,8 +21114,11 @@ var Orchestrator = class {
21114
21114
  const existing = this.tabs.get(tabId);
21115
21115
  if (existing) {
21116
21116
  if (existing.termStreamTimer) clearTimeout(existing.termStreamTimer);
21117
- existing.ptyManager.kill();
21118
21117
  this.tabs.delete(tabId);
21118
+ this.stateMonitor.removeTab(tabId);
21119
+ void this.observer.endTab(tabId, existing.projectRootPath);
21120
+ existing.ptyManager.kill();
21121
+ await this.timeTracker.endSession(tabId);
21119
21122
  }
21120
21123
  this.currentAgent = agent;
21121
21124
  const prevCwd = this.currentCwd;
@@ -21146,9 +21149,12 @@ var Orchestrator = class {
21146
21149
  }
21147
21150
  });
21148
21151
  ptyManager.onExit(async (exitCode) => {
21152
+ if (this.tabs.get(tabId) !== tab) return;
21149
21153
  this.events.onPtyExit(tabId, exitCode);
21154
+ const observerEnd = this.observer.endTab(tabId, tab.projectRootPath);
21150
21155
  await this.timeTracker.endSession(tabId);
21151
- void this.observer.endTab(tabId, this.tabs.get(tabId)?.projectRootPath);
21156
+ void observerEnd;
21157
+ if (this.tabs.get(tabId) !== tab) return;
21152
21158
  if (tabId === this.activeTabId) {
21153
21159
  this.stopChatLogging();
21154
21160
  if (this.currentAgent && isCodingAgent(this.currentAgent)) {
@@ -21157,6 +21163,7 @@ var Orchestrator = class {
21157
21163
  }
21158
21164
  const t = this.tabs.get(tabId);
21159
21165
  if (t?.termStreamTimer) clearTimeout(t.termStreamTimer);
21166
+ this.tabs.delete(tabId);
21160
21167
  this.stateMonitor.removeTab(tabId);
21161
21168
  });
21162
21169
  this.startChatLogging(agent, cwd);