tmux-ide 2.9.3 → 2.9.5

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 (85) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +120 -139
  3. package/bin/cli.js +4847 -3585
  4. package/package.json +16 -9
  5. package/packages/contracts/src/session-runtime.ts +2 -0
  6. package/packages/contracts/src/terminal-delivery.ts +4 -0
  7. package/packages/core/src/terminal-compact-capability.ts +31 -1
  8. package/packages/core/src/terminal-delivery.ts +234 -32
  9. package/packages/core/src/terminal-replica-hash-cache.ts +162 -21
  10. package/packages/core/src/terminal-replica-owned-row.ts +165 -10
  11. package/packages/core/src/terminal-replica.ts +43 -21
  12. package/packages/daemon/dist/lib/daemon-embed.js +19 -34
  13. package/packages/daemon/dist/lib/runtime-trace-writer.js +133 -0
  14. package/packages/daemon/dist/lib/tmux-client-execution.js +37 -2
  15. package/packages/daemon/dist/lib/tmux-server-owner.js +20 -4
  16. package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/Info.plist +2 -2
  17. package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/MacOS/tmux-ide-notifier +0 -0
  18. package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/Resources/Assets.car +0 -0
  19. package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/_CodeSignature/CodeResources +2 -2
  20. package/packages/daemon/dist/native/tmux/darwin-arm64/manifest.json +5 -1
  21. package/packages/daemon/dist/native/tmux/darwin-arm64/tmux +0 -0
  22. package/packages/daemon/dist/native/tmux/darwin-x64/manifest.json +5 -1
  23. package/packages/daemon/dist/native/tmux/darwin-x64/tmux +0 -0
  24. package/packages/daemon/dist/native/tmux/linux-arm64/manifest.json +5 -1
  25. package/packages/daemon/dist/native/tmux/linux-arm64/tmux +0 -0
  26. package/packages/daemon/dist/native/tmux/linux-x64/licenses/libevent_core-2.1.so.7.txt +0 -0
  27. package/packages/daemon/dist/native/tmux/linux-x64/manifest.json +5 -1
  28. package/packages/daemon/dist/native/tmux/linux-x64/tmux +0 -0
  29. package/packages/daemon/dist/terminal/attachments/native-runtime.js +6 -6
  30. package/packages/daemon/dist/terminal/mirror/control-channel.js +379 -75
  31. package/packages/daemon/dist/terminal/mirror/mirror-service.js +43 -3
  32. package/packages/daemon/dist/terminal/mirror/native-grid-projection.js +20 -11
  33. package/packages/daemon/dist/terminal/mirror/session-channel.js +639 -811
  34. package/packages/daemon/dist/terminal/mirror/stock-pane-snapshot.js +177 -0
  35. package/packages/daemon/dist/terminal/session-runtime/causal-cell-ledger.js +1 -1
  36. package/packages/daemon/dist/terminal/session-runtime/registry.js +145 -15
  37. package/packages/daemon/dist/terminal/session-runtime/stock-capture-fidelity.js +12 -0
  38. package/packages/daemon/dist/terminal/session-runtime/terminal-delivery-hub.js +128 -10
  39. package/packages/daemon/dist/terminal/session-runtime/terminal-replica-interpreter.js +21 -4
  40. package/packages/daemon/dist/terminal/session-runtime/terminal-replica-owner.js +19 -2
  41. package/packages/daemon/dist/terminal/session-runtime/xterm-terminal-interpreter-backend.js +17 -19
  42. package/packages/daemon/dist/tui/integrations/claude-agent-teams.js +264 -0
  43. package/packages/daemon/dist/tui/mirror/open-tui-workspace-runtime-port.js +64 -4
  44. package/packages/daemon/dist/tui/mirror/pane-surface.jsx +10 -1
  45. package/packages/daemon/dist/tui/mirror/reference-performance-trace.js +117 -71
  46. package/packages/daemon/dist/tui/mirror/runtime/application-terminal-input-ingress.js +27 -3
  47. package/packages/daemon/dist/tui/mirror/runtime/pane-scoped-terminal-surface.jsx +17 -4
  48. package/packages/daemon/dist/tui/mirror/runtime/terminal-fast-lane-renderer-adapter.js +19 -0
  49. package/packages/daemon/dist/tui/mirror/runtime/terminal-input-adapter.js +10 -2
  50. package/packages/daemon/dist/tui/mirror/testing/styled-frame-oracle.js +156 -0
  51. package/packages/daemon/src/lib/daemon-embed.ts +22 -34
  52. package/packages/daemon/src/lib/runtime-trace-writer.ts +132 -0
  53. package/packages/daemon/src/lib/tmux-client-execution.ts +47 -2
  54. package/packages/daemon/src/lib/tmux-server-owner.ts +19 -3
  55. package/packages/daemon/src/terminal/attachments/native-runtime.ts +6 -0
  56. package/packages/daemon/src/terminal/mirror/control-channel.ts +428 -84
  57. package/packages/daemon/src/terminal/mirror/events.ts +7 -7
  58. package/packages/daemon/src/terminal/mirror/mirror-service.ts +49 -3
  59. package/packages/daemon/src/terminal/mirror/native-grid-projection.ts +21 -11
  60. package/packages/daemon/src/terminal/mirror/pane-feed.ts +9 -4
  61. package/packages/daemon/src/terminal/mirror/session-channel.ts +705 -859
  62. package/packages/daemon/src/terminal/mirror/stock-pane-snapshot.ts +228 -0
  63. package/packages/daemon/src/terminal/session-runtime/causal-cell-ledger.ts +1 -1
  64. package/packages/daemon/src/terminal/session-runtime/registry.ts +203 -32
  65. package/packages/daemon/src/terminal/session-runtime/runtime-observability.ts +7 -0
  66. package/packages/daemon/src/terminal/session-runtime/stock-capture-fidelity.ts +13 -0
  67. package/packages/daemon/src/terminal/session-runtime/terminal-delivery-hub.ts +142 -8
  68. package/packages/daemon/src/terminal/session-runtime/terminal-replica-interpreter.ts +26 -3
  69. package/packages/daemon/src/terminal/session-runtime/terminal-replica-owner.ts +25 -1
  70. package/packages/daemon/src/terminal/session-runtime/xterm-terminal-interpreter-backend.ts +26 -20
  71. package/packages/daemon/src/tui/integrations/claude-agent-teams.ts +334 -0
  72. package/packages/daemon/src/tui/mirror/open-tui-workspace-runtime-port.ts +63 -4
  73. package/packages/daemon/src/tui/mirror/pane-surface.tsx +9 -1
  74. package/packages/daemon/src/tui/mirror/reference-performance-trace.ts +141 -90
  75. package/packages/daemon/src/tui/mirror/runtime/application-terminal-input-ingress.ts +27 -4
  76. package/packages/daemon/src/tui/mirror/runtime/pane-scoped-terminal-surface.tsx +61 -31
  77. package/packages/daemon/src/tui/mirror/runtime/terminal-fast-lane-renderer-adapter.ts +31 -3
  78. package/packages/daemon/src/tui/mirror/runtime/terminal-input-adapter.ts +9 -6
  79. package/packages/daemon/src/tui/mirror/testing/styled-frame-oracle.ts +209 -0
  80. package/packages/daemon-client/src/terminal-fast-lane.ts +53 -4
  81. package/packages/daemon-client/src/workspace-client-types.ts +1 -0
  82. package/packages/daemon-client/src/workspace-client.ts +78 -5
  83. package/packages/tmux-bridge/src/index.ts +1 -0
  84. package/packages/tmux-bridge/src/runner.ts +25 -1
  85. package/skill/SKILL.md +30 -30
@@ -19,7 +19,8 @@ import { createNativeTmuxSessionCreator } from "./tmux-server-session-create.ts"
19
19
  import type { WorkspacePaneCreateMutationRequest } from "@tmux-ide/contracts";
20
20
  import { createTmuxSessionMutationFence } from "./tmux-session-mutation-fence.ts";
21
21
  import { createNativeTmuxSessionOpener } from "./tmux-server-session-open.ts";
22
- import { randomUUID } from "node:crypto";
22
+ import { createHash, randomUUID } from "node:crypto";
23
+ import { WorkspaceIdSchemaZ } from "@tmux-ide/contracts";
23
24
  import { mkdirSync } from "node:fs";
24
25
  import { z } from "zod";
25
26
  import type { WorkspaceMultiplexerBackend } from "../command-center/actions/handlers/workspace-multiplexer.ts";
@@ -61,6 +62,22 @@ export interface NativeTmuxServerOwnerOptions {
61
62
  readonly nativeServerIdentity?: NativeTmuxServerIdentity;
62
63
  }
63
64
 
65
+ /** Native display names are not necessarily valid shared-contract record identities. */
66
+ function discoveredWorkspaceName(registry: WorkspaceRegistry, sessionName: string): string {
67
+ if (WorkspaceIdSchemaZ.safeParse(sessionName).success && !registry.has(sessionName))
68
+ return sessionName;
69
+ // Existing intent wins even if it occupies a derived ID. Each candidate is
70
+ // deterministic; repeated refreshes retain the already-adopted session alias.
71
+ for (let suffix = 0; suffix <= registry.list().length; suffix += 1) {
72
+ const digest = createHash("sha256")
73
+ .update(`tmux-ide.discovered-workspace.v1\0${sessionName}\0${suffix}`)
74
+ .digest("hex");
75
+ const name = `session-${digest}`;
76
+ if (!registry.has(name)) return name;
77
+ }
78
+ throw new Error("Unable to allocate discovered workspace identity");
79
+ }
80
+
64
81
  /** Refresh discovered live membership without changing durable workspace intent or aliases. */
65
82
  export function createNativeTmuxServerCatalog(
66
83
  workspaceRegistry: WorkspaceRegistry,
@@ -114,11 +131,10 @@ export function createNativeTmuxServerCatalog(
114
131
  workspaceRegistry.remove(workspace.name);
115
132
  for (const { summary, dir } of rows.values())
116
133
  if (
117
- !workspaceRegistry.has(summary.sessionName) &&
118
134
  !workspaceRegistry.list().some((workspace) => workspace.sessionName === summary.sessionName)
119
135
  )
120
136
  workspaceRegistry.add({
121
- name: summary.sessionName,
137
+ name: discoveredWorkspaceName(workspaceRegistry, summary.sessionName),
122
138
  sessionName: summary.sessionName,
123
139
  projectDir: dir,
124
140
  persistence: "volatile",
@@ -620,6 +620,7 @@ function analyzeInventoryPanes(panes: readonly NativeTerminalInventoryPaneSnapsh
620
620
  active: _active,
621
621
  role: _role,
622
622
  name: _name,
623
+ nameSource: _nameSource,
623
624
  type: _type,
624
625
  missionStamp: _missionStamp,
625
626
  dir: _dir,
@@ -989,6 +990,7 @@ export async function discoverWorkspaceRegistryTerminalInventory(
989
990
  active: _active,
990
991
  role: _role,
991
992
  name: _name,
993
+ nameSource: _nameSource,
992
994
  type: _type,
993
995
  missionStamp: _missionStamp,
994
996
  dir: _dir,
@@ -1018,6 +1020,7 @@ export async function discoverWorkspaceRegistrySemanticPanes(
1018
1020
  active: _active,
1019
1021
  role: _role,
1020
1022
  name: _name,
1023
+ nameSource: _nameSource,
1021
1024
  type: _type,
1022
1025
  missionStamp: _missionStamp,
1023
1026
  dir: _dir,
@@ -1349,6 +1352,7 @@ export class WorkspaceTerminalInventoryRuntime {
1349
1352
  active: _active,
1350
1353
  role: _role,
1351
1354
  name: _name,
1355
+ nameSource: _nameSource,
1352
1356
  type: _type,
1353
1357
  missionStamp: _missionStamp,
1354
1358
  dir: _dir,
@@ -2066,6 +2070,7 @@ export class NativeTerminalAttachmentRuntime {
2066
2070
  active: _active,
2067
2071
  role: _role,
2068
2072
  name: _name,
2073
+ nameSource: _nameSource,
2069
2074
  type: _type,
2070
2075
  missionStamp: _missionStamp,
2071
2076
  dir: _dir,
@@ -2341,6 +2346,7 @@ export class NativeTerminalAttachmentRuntime {
2341
2346
  active: _active,
2342
2347
  role: _role,
2343
2348
  name: _name,
2349
+ nameSource: _nameSource,
2344
2350
  type: _type,
2345
2351
  missionStamp: _missionStamp,
2346
2352
  dir: _dir,