botmux 2.82.0 → 2.82.2

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 (119) hide show
  1. package/dist/adapters/backend/tmux-backend.d.ts +30 -6
  2. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  3. package/dist/adapters/backend/tmux-backend.js +40 -6
  4. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  5. package/dist/adapters/backend/zellij-backend.d.ts +11 -0
  6. package/dist/adapters/backend/zellij-backend.d.ts.map +1 -1
  7. package/dist/adapters/backend/zellij-backend.js +16 -0
  8. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  9. package/dist/adapters/cli/pi.d.ts.map +1 -1
  10. package/dist/adapters/cli/pi.js +1 -0
  11. package/dist/adapters/cli/pi.js.map +1 -1
  12. package/dist/adapters/cli/relay.d.ts +16 -22
  13. package/dist/adapters/cli/relay.d.ts.map +1 -1
  14. package/dist/adapters/cli/relay.js +27 -42
  15. package/dist/adapters/cli/relay.js.map +1 -1
  16. package/dist/adapters/cli/seed.d.ts.map +1 -1
  17. package/dist/adapters/cli/seed.js +4 -1
  18. package/dist/adapters/cli/seed.js.map +1 -1
  19. package/dist/adapters/cli/traex.d.ts.map +1 -1
  20. package/dist/adapters/cli/traex.js +4 -1
  21. package/dist/adapters/cli/traex.js.map +1 -1
  22. package/dist/adapters/cli/types.d.ts +9 -0
  23. package/dist/adapters/cli/types.d.ts.map +1 -1
  24. package/dist/bot-registry.d.ts +12 -0
  25. package/dist/bot-registry.d.ts.map +1 -1
  26. package/dist/bot-registry.js +5 -0
  27. package/dist/bot-registry.js.map +1 -1
  28. package/dist/cli.d.ts.map +1 -1
  29. package/dist/cli.js +1 -84
  30. package/dist/cli.js.map +1 -1
  31. package/dist/config.d.ts +17 -0
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/config.js +31 -0
  34. package/dist/config.js.map +1 -1
  35. package/dist/core/command-handler.d.ts +2 -9
  36. package/dist/core/command-handler.d.ts.map +1 -1
  37. package/dist/core/command-handler.js +42 -30
  38. package/dist/core/command-handler.js.map +1 -1
  39. package/dist/core/cost-calculator.js +2 -2
  40. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  41. package/dist/core/dashboard-ipc-server.js +47 -1
  42. package/dist/core/dashboard-ipc-server.js.map +1 -1
  43. package/dist/core/idle-worker-sweeper.d.ts +30 -4
  44. package/dist/core/idle-worker-sweeper.d.ts.map +1 -1
  45. package/dist/core/idle-worker-sweeper.js +32 -12
  46. package/dist/core/idle-worker-sweeper.js.map +1 -1
  47. package/dist/core/passthrough-commands.d.ts +48 -0
  48. package/dist/core/passthrough-commands.d.ts.map +1 -0
  49. package/dist/core/passthrough-commands.js +76 -0
  50. package/dist/core/passthrough-commands.js.map +1 -0
  51. package/dist/core/persistent-backend.d.ts +12 -0
  52. package/dist/core/persistent-backend.d.ts.map +1 -1
  53. package/dist/core/persistent-backend.js +18 -0
  54. package/dist/core/persistent-backend.js.map +1 -1
  55. package/dist/core/session-manager.d.ts.map +1 -1
  56. package/dist/core/session-manager.js +37 -4
  57. package/dist/core/session-manager.js.map +1 -1
  58. package/dist/core/worker-pool.d.ts.map +1 -1
  59. package/dist/core/worker-pool.js +18 -1
  60. package/dist/core/worker-pool.js.map +1 -1
  61. package/dist/daemon.d.ts.map +1 -1
  62. package/dist/daemon.js +12 -4
  63. package/dist/daemon.js.map +1 -1
  64. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  65. package/dist/dashboard/web/bot-defaults.js +100 -1
  66. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  67. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  68. package/dist/dashboard/web/i18n.js +18 -0
  69. package/dist/dashboard/web/i18n.js.map +1 -1
  70. package/dist/dashboard-web/app.js +371 -354
  71. package/dist/dashboard.js +20 -0
  72. package/dist/dashboard.js.map +1 -1
  73. package/dist/global-config.d.ts +0 -7
  74. package/dist/global-config.d.ts.map +1 -1
  75. package/dist/global-config.js +0 -21
  76. package/dist/global-config.js.map +1 -1
  77. package/dist/i18n/en.d.ts.map +1 -1
  78. package/dist/i18n/en.js +4 -2
  79. package/dist/i18n/en.js.map +1 -1
  80. package/dist/i18n/zh.d.ts.map +1 -1
  81. package/dist/i18n/zh.js +4 -2
  82. package/dist/i18n/zh.js.map +1 -1
  83. package/dist/im/lark/card-builder.d.ts.map +1 -1
  84. package/dist/im/lark/card-builder.js +2 -0
  85. package/dist/im/lark/card-builder.js.map +1 -1
  86. package/dist/im/lark/card-handler.d.ts.map +1 -1
  87. package/dist/im/lark/card-handler.js +20 -2
  88. package/dist/im/lark/card-handler.js.map +1 -1
  89. package/dist/im/lark/client.d.ts.map +1 -1
  90. package/dist/im/lark/client.js +63 -53
  91. package/dist/im/lark/client.js.map +1 -1
  92. package/dist/services/bot-config-store.d.ts +6 -4
  93. package/dist/services/bot-config-store.d.ts.map +1 -1
  94. package/dist/services/bot-config-store.js +21 -7
  95. package/dist/services/bot-config-store.js.map +1 -1
  96. package/dist/services/git-worktree.d.ts +19 -4
  97. package/dist/services/git-worktree.d.ts.map +1 -1
  98. package/dist/services/git-worktree.js +47 -2
  99. package/dist/services/git-worktree.js.map +1 -1
  100. package/dist/services/worktree-slug-ai.d.ts +3 -0
  101. package/dist/services/worktree-slug-ai.d.ts.map +1 -0
  102. package/dist/services/worktree-slug-ai.js +80 -0
  103. package/dist/services/worktree-slug-ai.js.map +1 -0
  104. package/dist/skills/definitions.d.ts.map +1 -1
  105. package/dist/skills/definitions.js +4 -25
  106. package/dist/skills/definitions.js.map +1 -1
  107. package/dist/types.d.ts +10 -0
  108. package/dist/types.d.ts.map +1 -1
  109. package/dist/utils/pending-input-queue.d.ts +6 -0
  110. package/dist/utils/pending-input-queue.d.ts.map +1 -0
  111. package/dist/utils/pending-input-queue.js +9 -0
  112. package/dist/utils/pending-input-queue.js.map +1 -0
  113. package/dist/worker.js +103 -5
  114. package/dist/worker.js.map +1 -1
  115. package/package.json +1 -1
  116. package/dist/core/worker-budget.d.ts +0 -19
  117. package/dist/core/worker-budget.d.ts.map +0 -1
  118. package/dist/core/worker-budget.js +0 -50
  119. package/dist/core/worker-budget.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-slug-ai.js","sourceRoot":"","sources":["../../src/services/worktree-slug-ai.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/skills/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB;AAy5BD,eAAO,MAAM,SAAS,wjJAiErB,CAAC;AAoGF,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,eAAO,MAAM,cAAc,EAAE,QAAQ,EAUpC,CAAC;AAEF;;qCAEqC;AACrC,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAKvC,CAAC"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/skills/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB;AAy5BD,eAAO,MAAM,SAAS,wjJAiErB,CAAC;AA2EF,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,eAAO,MAAM,cAAc,EAAE,QAAQ,EASpC,CAAC;AAEF;;qCAEqC;AACrC,eAAO,MAAM,mBAAmB,EAAE,MAAM,EASvC,CAAC"}
@@ -985,30 +985,6 @@ stdout 为一行 JSON。注意:\`--json\` 覆盖所有结果类型;超时 /
985
985
  - 不支持 comment / multi-select / free-form text(v0.1.7 范围外)
986
986
  - 默认超时 300 秒,可用 \`--timeout <seconds>\` 调整
987
987
  `;
988
- const WORKER_BUDGET_SKILL = `---
989
- name: botmux-worker-budget
990
- description: 查看或调整 botmux idle worker 自动暂停预算。触发场景:用户提到 OOM、内存占用、live worker 太多、闲置会话暂停、maxLiveWorkers、idleSuspendMs,或要求 agent 修改 worker 预算配置。必须使用 botmux worker-budget 命令,不要手写 ~/.botmux/config.json。
991
- ---
992
-
993
- # botmux-worker-budget — worker 预算配置
994
-
995
- 当用户要求查看或调整 botmux worker 资源预算时,使用 \`botmux worker-budget\`。不要直接编辑 \`~/.botmux/config.json\`;命令会校验正整数、保留未知配置,并写入 daemon 读取的全局配置。
996
-
997
- ## 用法
998
-
999
- \`\`\`bash
1000
- # 查看自动推导值、当前覆盖值、配置文件路径
1001
- botmux worker-budget status
1002
-
1003
- # 覆盖 live worker 上限;idle 阈值可选
1004
- botmux worker-budget set --max-live-workers 12 --idle-minutes 45
1005
-
1006
- # 清除覆盖,恢复按 CPU/内存自动推导
1007
- botmux worker-budget unset
1008
- \`\`\`
1009
-
1010
- \`maxLiveWorkers\` 控制多少个 live worker 以内保持常驻;超过预算时 daemon 会优先暂停最久未活跃的 worker。\`idleSuspendMs\` 控制 worker 需要闲置多久才允许被暂停。
1011
- `;
1012
988
  const ORCHESTRATE_SKILL = `---
1013
989
  name: botmux-orchestrate
1014
990
  description: 作为「主 bot/编排者」把一个大项目拆成多个子项目,在普通群里自动开多话题、把不同 bot(常 coder+reviewer 一组)派进各话题并行干活,用飞书任务清单当共享进度板,收齐结果再汇总。触发:用户提到「多话题协作模式」,或要「把大项目拆给多个机器人并行做」「协调多个 bot」「多话题并行推进」「你当总控/编排」「一个写一个 review 多组并行」,或显式提到 botmux orchestrate / botmux dispatch 派活。
@@ -1090,7 +1066,6 @@ export const BUILTIN_SKILLS = [
1090
1066
  { name: 'botmux-bots', content: BOTS_SKILL },
1091
1067
  { name: 'botmux-handoff', content: HANDOFF_SKILL },
1092
1068
  { name: 'botmux-workflow-create', content: WORKFLOW_CREATE_SKILL },
1093
- { name: 'botmux-worker-budget', content: WORKER_BUDGET_SKILL },
1094
1069
  { name: 'botmux-orchestrate', content: ORCHESTRATE_SKILL },
1095
1070
  ];
1096
1071
  /** Skills that earlier botmux versions installed but no longer ship. The
@@ -1101,5 +1076,9 @@ export const RETIRED_SKILL_NAMES = [
1101
1076
  // Folded into botmux-send as the `--attention` flag. Installer prunes the old
1102
1077
  // standalone skill dir.
1103
1078
  'botmux-needs-help',
1079
+ // Retired in favour of a per-bot "max live sessions" dashboard field
1080
+ // (Groups & Bots → bot card). The CLI subcommand was removed too, so the
1081
+ // skill has nothing to drive — prune it from every CLI's skills dir on upgrade.
1082
+ 'botmux-worker-budget',
1104
1083
  ];
1105
1084
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/skills/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/skills/definitions.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -120,6 +120,16 @@ export interface Session {
120
120
  lastCliInput?: string;
121
121
  /** CLI-native resume id when it differs from botmux's sessionId (for example Codex thread id). */
122
122
  cliSessionId?: string;
123
+ /**
124
+ * Set true when the idle-worker sweeper suspends this session over the per-bot
125
+ * live cap: the worker AND the backing tmux/herdr/zellij session (+ CLI) were
126
+ * intentionally killed to reclaim memory, but the session stays `active` and
127
+ * cold-resumes from its on-disk transcript on the next message. Distinguishes
128
+ * this deliberate state from a real zombie (pane gone while the server runs):
129
+ * `restoreActiveSessions` must NOT close a suspended session whose backing
130
+ * session probes 'missing'. Cleared once a live worker is re-established.
131
+ */
132
+ suspendedColdResume?: boolean;
123
133
  /** CLI used to spawn this session — stamped on every save so closed sessions retain it. */
124
134
  cliId?: import('./adapters/cli/types.js').CliId;
125
135
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface PendingCliInput {
2
+ content: string;
3
+ turnId?: string;
4
+ }
5
+ export declare function mergeQueuedCliInput(pending: PendingCliInput[], next: PendingCliInput): boolean;
6
+ //# sourceMappingURL=pending-input-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-input-queue.d.ts","sourceRoot":"","sources":["../../src/utils/pending-input-queue.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,EAAE,EAC1B,IAAI,EAAE,eAAe,GACpB,OAAO,CAMT"}
@@ -0,0 +1,9 @@
1
+ export function mergeQueuedCliInput(pending, next) {
2
+ const tail = pending[pending.length - 1];
3
+ if (!tail)
4
+ return false;
5
+ tail.content = `${tail.content}\n\n${next.content}`;
6
+ tail.turnId = next.turnId ?? tail.turnId;
7
+ return true;
8
+ }
9
+ //# sourceMappingURL=pending-input-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-input-queue.js","sourceRoot":"","sources":["../../src/utils/pending-input-queue.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,mBAAmB,CACjC,OAA0B,EAC1B,IAAqB;IAErB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/worker.js CHANGED
@@ -20,6 +20,7 @@ import { drainTranscript, joinAssistantText, trailingAssistantText, findJsonlCon
20
20
  import { BridgeTurnQueue, makeFingerprint, normaliseForFingerprint } from './services/bridge-turn-queue.js';
21
21
  import { shouldSuppressBridgeEmit } from './services/bridge-fallback-gate.js';
22
22
  import { shouldWriteNow } from './utils/input-gate.js';
23
+ import { mergeQueuedCliInput } from './utils/pending-input-queue.js';
23
24
  import { ReadyGate, shouldArmReadyGate } from './utils/ready-gate.js';
24
25
  import { InflightInputTracker } from './core/inflight-input-tracker.js';
25
26
  import { shouldRunQuietRotation, evaluatePidResolverPullback, decideFingerprintSwitch, shouldHealAbsentBaseline, sessionIdFromJsonlPath, SESSION_ID_FILENAME_RE, } from './services/bridge-rotation-policy.js';
@@ -86,6 +87,10 @@ let consecutiveInWorkerRestarts = 0;
86
87
  * lifecycle so a 4× crash loop does not spam the Lark thread with 4 copies
87
88
  * of the same warning. */
88
89
  let resumeFallbackNotified = false;
90
+ const IDLE_PROBE_INTERVAL_MS = 3_500;
91
+ const IDLE_PROBE_MAX_ATTEMPTS = 24;
92
+ let busyPatternIdleProbeTimer = null;
93
+ let reattachIdleProbeTimer = null;
89
94
  /** The effectiveResume flag used by the most recent spawnCli call. Written
90
95
  * immediately after the two-tier fallback check so late-attach timers
91
96
  * (hermes, cursor, etc.) can read THE SAME semantics the spawn used,
@@ -2855,6 +2860,7 @@ function onPtyData(data) {
2855
2860
  function markPromptReady() {
2856
2861
  if (isPromptReady)
2857
2862
  return; // guard against duplicate calls
2863
+ stopBusyPatternIdleProbe();
2858
2864
  // Ready-gate: a startup selector's ❯ (cjadk et al.) falsely matches
2859
2865
  // readyPattern → the IdleDetector fires idle while the CLI is NOT actually at
2860
2866
  // its input box. Hold off declaring ready until the SessionStart hook signal
@@ -3116,6 +3122,7 @@ async function flushPending() {
3116
3122
  let result;
3117
3123
  try {
3118
3124
  result = await cliAdapter.writeInput(backend, msg);
3125
+ scheduleBusyPatternIdleProbe(`${cliName()} post-submit`);
3119
3126
  }
3120
3127
  catch (err) {
3121
3128
  log(`writeInput threw: ${err?.message ?? err}`);
@@ -3162,7 +3169,20 @@ async function flushPending() {
3162
3169
  function sendToPty(content, turnId) {
3163
3170
  if (!backend || !cliAdapter)
3164
3171
  return;
3165
- pendingMessages.push({ content, turnId });
3172
+ const next = { content, turnId };
3173
+ const shouldMergeQueued = !isFlushing && !shouldWriteNow({
3174
+ isPromptReady,
3175
+ isFlushing,
3176
+ supportsTypeAhead: cliAdapter.supportsTypeAhead === true,
3177
+ awaitingFirstPrompt,
3178
+ }) && cliAdapter.mergeQueuedInput === true;
3179
+ const mergedQueued = shouldMergeQueued && mergeQueuedCliInput(pendingMessages, next);
3180
+ if (mergedQueued) {
3181
+ log(`Merged queued message (${pendingMessages.length} pending): "${content.substring(0, 80)}" — ${cliName()} ${awaitingFirstPrompt ? 'still booting' : 'is busy'}`);
3182
+ }
3183
+ else {
3184
+ pendingMessages.push(next);
3185
+ }
3166
3186
  // User-override semantics: a fresh Lark message while a TUI prompt is "active"
3167
3187
  // takes precedence over the AI-detected prompt. The screen analyzer can be
3168
3188
  // wrong (false positive on a question that has no rendered options) and a
@@ -3187,11 +3207,13 @@ function sendToPty(content, turnId) {
3187
3207
  // delivers queued messages instead. See input-gate.ts; this fixes dispatch's
3188
3208
  // brief reaching Codex before its first idle and never landing.
3189
3209
  if (shouldWriteNow({ isPromptReady, isFlushing, supportsTypeAhead: cliAdapter.supportsTypeAhead === true, awaitingFirstPrompt })) {
3190
- log(`Writing to PTY: "${content.substring(0, 80)}"`);
3210
+ if (!mergedQueued)
3211
+ log(`Writing to PTY: "${content.substring(0, 80)}"`);
3191
3212
  flushPending(); // fire-and-forget async; no-op if already flushing
3192
3213
  }
3193
3214
  else {
3194
- log(`Queued message (${pendingMessages.length} pending): "${content.substring(0, 80)}" — ${cliName()} ${awaitingFirstPrompt ? 'still booting' : 'is busy'}`);
3215
+ if (!mergedQueued)
3216
+ log(`Queued message (${pendingMessages.length} pending): "${content.substring(0, 80)}" — ${cliName()} ${awaitingFirstPrompt ? 'still booting' : 'is busy'}`);
3195
3217
  }
3196
3218
  }
3197
3219
  // ─── Screen Update Timer ─────────────────────────────────────────────────────
@@ -3460,6 +3482,71 @@ function seedBackendScreen(source, be) {
3460
3482
  log(`${source} captureCurrentScreen failed: ${err.message}`);
3461
3483
  }
3462
3484
  }
3485
+ function captureBackendScreen(be) {
3486
+ return be.captureViewport?.() ?? be.captureCurrentScreen?.() ?? '';
3487
+ }
3488
+ function probeBusyPatternIdle(source, be) {
3489
+ try {
3490
+ const content = captureBackendScreen(be);
3491
+ if (!content)
3492
+ return false;
3493
+ if (cliAdapter?.busyPattern) {
3494
+ if (cliAdapter.busyPattern.test(content))
3495
+ return false;
3496
+ log(`${source} idle probe: busy marker absent, marking prompt ready`);
3497
+ markPromptReady();
3498
+ return true;
3499
+ }
3500
+ }
3501
+ catch (err) {
3502
+ log(`${source} idle probe captureCurrentScreen failed: ${err.message}`);
3503
+ }
3504
+ return false;
3505
+ }
3506
+ function scheduleReattachIdleProbe(source, be) {
3507
+ stopReattachIdleProbe();
3508
+ if (!cliAdapter?.busyPattern || (!be.captureCurrentScreen && !be.captureViewport))
3509
+ return;
3510
+ reattachIdleProbeTimer = setTimeout(() => {
3511
+ reattachIdleProbeTimer = null;
3512
+ if (backend !== be || !awaitingFirstPrompt || isPromptReady)
3513
+ return;
3514
+ probeBusyPatternIdle(source, be);
3515
+ }, IDLE_PROBE_INTERVAL_MS);
3516
+ reattachIdleProbeTimer.unref?.();
3517
+ }
3518
+ function stopReattachIdleProbe() {
3519
+ if (reattachIdleProbeTimer) {
3520
+ clearTimeout(reattachIdleProbeTimer);
3521
+ reattachIdleProbeTimer = null;
3522
+ }
3523
+ }
3524
+ function stopBusyPatternIdleProbe() {
3525
+ if (busyPatternIdleProbeTimer) {
3526
+ clearTimeout(busyPatternIdleProbeTimer);
3527
+ busyPatternIdleProbeTimer = null;
3528
+ }
3529
+ }
3530
+ function scheduleBusyPatternIdleProbe(source) {
3531
+ stopBusyPatternIdleProbe();
3532
+ if (!cliAdapter?.busyPattern || (!backend?.captureCurrentScreen && !backend?.captureViewport))
3533
+ return;
3534
+ let attempts = 0;
3535
+ const tick = () => {
3536
+ busyPatternIdleProbeTimer = null;
3537
+ if (!backend || isPromptReady)
3538
+ return;
3539
+ attempts += 1;
3540
+ if (probeBusyPatternIdle(source, backend))
3541
+ return;
3542
+ if (attempts < IDLE_PROBE_MAX_ATTEMPTS && !isPromptReady) {
3543
+ busyPatternIdleProbeTimer = setTimeout(tick, IDLE_PROBE_INTERVAL_MS);
3544
+ busyPatternIdleProbeTimer.unref?.();
3545
+ }
3546
+ };
3547
+ busyPatternIdleProbeTimer = setTimeout(tick, IDLE_PROBE_INTERVAL_MS);
3548
+ busyPatternIdleProbeTimer.unref?.();
3549
+ }
3463
3550
  function spawnCli(cfg) {
3464
3551
  // Re-deliver inputs that were in-flight when the previous CLI died (see
3465
3552
  // backend.onExit). killCli() already wiped pendingMessages, so these go to
@@ -4239,6 +4326,7 @@ function spawnCli(cfg) {
4239
4326
  if (isPipeMode && backend && 'isReattach' in backend && backend.isReattach) {
4240
4327
  log(`Re-attached to existing ${effectiveBackendType} session via pipe backend: ${persistentSessionName}`);
4241
4328
  seedBackendScreen(`${effectiveBackendType} reattach`, backend);
4329
+ scheduleReattachIdleProbe(`${effectiveBackendType} reattach`, backend);
4242
4330
  }
4243
4331
  // Fallback: if the CLI takes too long to show its prompt (e.g. slow
4244
4332
  // plugin init, or a spinner blocks the idle detector), unblock screen
@@ -4264,6 +4352,8 @@ function spawnCli(cfg) {
4264
4352
  function killCli() {
4265
4353
  idleDetector?.dispose();
4266
4354
  idleDetector = null;
4355
+ stopReattachIdleProbe();
4356
+ stopBusyPatternIdleProbe();
4267
4357
  // Cancel any pending ready-gate fallback / settle timers; spawnCli re-arms on respawn.
4268
4358
  if (readySignalTimer) {
4269
4359
  clearTimeout(readySignalTimer);
@@ -5149,10 +5239,18 @@ process.on('message', async (raw) => {
5149
5239
  log('Suspend requested');
5150
5240
  stopScreenshotLoop();
5151
5241
  stopBridgeWatcher();
5242
+ // Free the CLI's memory, not just the worker's: destroySession kills the
5243
+ // backing tmux/herdr/zellij session AND the CLI process inside it (kill()
5244
+ // would only detach the pty viewer and leave the CLI running in the
5245
+ // background — defeating the whole point of a session cap, since the CLI
5246
+ // is the memory hog). On the next message the session cold-resumes via
5247
+ // forkWorker(resume=true) → a fresh `new-session --resume <cliSessionId>`
5248
+ // that rebuilds context from the on-disk transcript (same path the daemon
5249
+ // uses to recover sessions after a reboot kills the tmux server).
5152
5250
  try {
5153
- backend?.kill();
5251
+ (backend?.destroySession ?? backend?.kill)?.call(backend);
5154
5252
  }
5155
- catch { /* detach best-effort */ }
5253
+ catch { /* best-effort */ }
5156
5254
  backend = null;
5157
5255
  isPromptReady = false;
5158
5256
  // Suspend INTENDS to resume later: preserve the sandbox overlay mount + the