@dsiloed/silo-link 1.19.9 → 1.19.11
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/dist/core/agent-launcher.d.ts +7 -0
- package/dist/core/agent-launcher.d.ts.map +1 -1
- package/dist/core/base-tmux-launcher.d.ts +64 -2
- package/dist/core/base-tmux-launcher.d.ts.map +1 -1
- package/dist/core/base-tmux-launcher.js +112 -3
- package/dist/core/base-tmux-launcher.js.map +1 -1
- package/dist/core/baseline-verify.d.ts +54 -0
- package/dist/core/baseline-verify.d.ts.map +1 -0
- package/dist/core/baseline-verify.js +164 -0
- package/dist/core/baseline-verify.js.map +1 -0
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +20 -0
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/claude-launcher.d.ts +9 -6
- package/dist/core/claude-launcher.d.ts.map +1 -1
- package/dist/core/claude-launcher.js +97 -96
- package/dist/core/claude-launcher.js.map +1 -1
- package/dist/core/codex-launcher.d.ts.map +1 -1
- package/dist/core/codex-launcher.js +11 -2
- package/dist/core/codex-launcher.js.map +1 -1
- package/dist/core/gemini-launcher.d.ts.map +1 -1
- package/dist/core/gemini-launcher.js +12 -2
- package/dist/core/gemini-launcher.js.map +1 -1
- package/dist/index.js +0 -0
- package/package.json +1 -1
|
@@ -121,6 +121,13 @@ export interface AgentLauncher {
|
|
|
121
121
|
* by the next buildLaunchPrompt.
|
|
122
122
|
*/
|
|
123
123
|
setPendingSessionPrompt(prompt: string | null): void;
|
|
124
|
+
/**
|
|
125
|
+
* Type a line into a conversation's pane and submit it, verifying the submit
|
|
126
|
+
* actually landed (separate Enter + retry). Returns false when the
|
|
127
|
+
* conversation has no live pane. Prefer this over raw send_keys for TEXT —
|
|
128
|
+
* a single combined text+Enter send can strand the text silently.
|
|
129
|
+
*/
|
|
130
|
+
sendTextAndSubmit(conversationId: number, text: string): boolean;
|
|
124
131
|
/** Store the last resume/session ID for future resume */
|
|
125
132
|
setLastResumeId(resumeId: string, conversationId?: number): void;
|
|
126
133
|
/** Launch a session triggered by an inbound message */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-launcher.d.ts","sourceRoot":"","sources":["../../src/core/agent-launcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-launcher.d.ts","sourceRoot":"","sources":["../../src/core/agent-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
|
|
|
46
46
|
protected static readonly FROZEN_THRESHOLD_MS: number;
|
|
47
47
|
protected static readonly ORPHAN_PANE_GRACE_MS: number;
|
|
48
48
|
protected orphanPaneNoted: Set<string>;
|
|
49
|
+
protected static readonly WEDGED_SESSION_MS: number;
|
|
49
50
|
protected promptStalls: Map<string, {
|
|
50
51
|
since: number;
|
|
51
52
|
notifiedAt: number | null;
|
|
@@ -86,8 +87,39 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
|
|
|
86
87
|
protected getPostReadyDelayMs(): number;
|
|
87
88
|
/** Format the prompt text for this specific agent */
|
|
88
89
|
protected abstract formatPrompt(prompt: string): string;
|
|
89
|
-
/**
|
|
90
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Set up MCP config files in the working directory for this agent.
|
|
92
|
+
* May return extra CLI args the launch must append so the spawned CLI
|
|
93
|
+
* loads that config explicitly (e.g. ClaudeLauncher returns
|
|
94
|
+
* `--mcp-config <file> --strict-mcp-config`); a void return means the
|
|
95
|
+
* CLI discovers the config from files alone (gemini/codex).
|
|
96
|
+
*/
|
|
97
|
+
protected abstract setupMcpConfig(cwd: string, toolAllowlist?: string[] | null): Promise<string[] | void>;
|
|
98
|
+
/**
|
|
99
|
+
* Absolute path to `npx` for MCP server entries in generated configs.
|
|
100
|
+
*
|
|
101
|
+
* The MCP server processes are spawned by the CODING CLI inside the tmux
|
|
102
|
+
* pane, which inherits the tmux SERVER's environment — not this daemon's.
|
|
103
|
+
* A tmux server (re)started from a PATH-poor shell (systemd, ssh) has no
|
|
104
|
+
* nvm bin dir, so a bare `npx` dies with ENOENT and the session comes up
|
|
105
|
+
* with ZERO MCP tools (Doug v6, 2026-08-23 — same failure class as the
|
|
106
|
+
* bare-`claude` mcp-register ENOENT). npm installs `npx` beside `node`,
|
|
107
|
+
* and this daemon IS a node process, so resolve against our own binary;
|
|
108
|
+
* fall back to the bare name for exotic layouts where that misses.
|
|
109
|
+
*/
|
|
110
|
+
protected resolveNpxCommand(): string;
|
|
111
|
+
/**
|
|
112
|
+
* PATH value to inject into generated MCP server `env` blocks.
|
|
113
|
+
*
|
|
114
|
+
* An absolute `npx` command alone is NOT enough: npx is a `#!/usr/bin/env
|
|
115
|
+
* node` script, so a pane env whose PATH lacks the node bin dir still dies
|
|
116
|
+
* with "env: 'node': No such file or directory" (verified against CC
|
|
117
|
+
* 2.1.241 on the fleet). The daemon can, by definition, find its own node —
|
|
118
|
+
* so hand the session's MCP servers the daemon's PATH with the node bin dir
|
|
119
|
+
* guaranteed present. MCP clients merge server `env` over the inherited
|
|
120
|
+
* environment, so this pins PATH for the server process only.
|
|
121
|
+
*/
|
|
122
|
+
protected mcpSpawnPathEnv(): string;
|
|
91
123
|
/** Check whether this launcher is properly configured */
|
|
92
124
|
protected abstract checkEnabled(): boolean;
|
|
93
125
|
/** Return the working directory from config */
|
|
@@ -201,6 +233,19 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
|
|
|
201
233
|
setLlmAgentId(agentId: number | null): void;
|
|
202
234
|
setMcpToolAllowlist(tools: string[] | null): void;
|
|
203
235
|
setPendingSessionPrompt(prompt: string | null): void;
|
|
236
|
+
/**
|
|
237
|
+
* Type a line into a conversation's pane and SUBMIT it, with verification.
|
|
238
|
+
*
|
|
239
|
+
* The control channel's send_keys used to push the text and `Enter` as one
|
|
240
|
+
* `tmux send-keys` call and report success on the spawn's exit code alone. A
|
|
241
|
+
* swallowed Enter (TUI mid-render/mid-paste) then stranded the text in the
|
|
242
|
+
* input box forever while the platform was told it had been delivered — an
|
|
243
|
+
* orch-204 worker sat 7h that way (2026-08-14) answering heartbeats with
|
|
244
|
+
* "Idle, no pending messages" while its actual instruction was never sent.
|
|
245
|
+
* Routing text through sendLineToPane gets the separate Enter AND the
|
|
246
|
+
* verify/retry that 1.19.5–1.19.7 built for nudges.
|
|
247
|
+
*/
|
|
248
|
+
sendTextAndSubmit(conversationId: number, text: string): boolean;
|
|
204
249
|
/**
|
|
205
250
|
* Read and clear the one-shot session prompt. Called ONCE per launch, at the
|
|
206
251
|
* top of buildLaunchPrompt, so a prompt can never survive into a later launch
|
|
@@ -467,6 +512,23 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
|
|
|
467
512
|
* that is BOTH unregistered and showing no new output gets recycled.
|
|
468
513
|
*/
|
|
469
514
|
protected reapOrphanedPanes(now: number): void;
|
|
515
|
+
/**
|
|
516
|
+
* Recycle REGISTERED sessions that are wedged — the inverse of an orphaned
|
|
517
|
+
* pane, and previously just as invisible.
|
|
518
|
+
*
|
|
519
|
+
* SessionManager keeps a session registered as long as its tmux is alive
|
|
520
|
+
* ("idle Nmin but tmux still alive — keeping registered"), and idle-kill is
|
|
521
|
+
* the only thing that ever escalated. On daemons with
|
|
522
|
+
* claude_idle_kill_after_ms: 0 (all the orchestration ones) that meant NO
|
|
523
|
+
* escalation existed: an orch-204 worker sat registered and idle for 7h,
|
|
524
|
+
* answering heartbeats while its real instruction was stranded unsent.
|
|
525
|
+
*
|
|
526
|
+
* Safe because a healthy agent polls constantly: lastActivity advances every
|
|
527
|
+
* few seconds, so only a genuinely dead poll loop reaches WEDGED_SESSION_MS.
|
|
528
|
+
* The frozen-pane check is a second guard so a session doing a long stretch
|
|
529
|
+
* of purely local work is never recycled.
|
|
530
|
+
*/
|
|
531
|
+
protected reapWedgedSessions(sessions: Session[], now: number): void;
|
|
470
532
|
protected isActivelyThinking(tmuxSession: string): boolean;
|
|
471
533
|
/**
|
|
472
534
|
* Capture the recent pane tail for progress detection. Isolated as a seam so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-tmux-launcher.d.ts","sourceRoot":"","sources":["../../src/core/base-tmux-launcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAElG,UAAU,eAAe;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAIhB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,8BAAsB,gBAAiB,YAAW,aAAa;IAC7D,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACzC,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpD,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5C,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAa;IACjE,SAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACjE,SAAS,CAAC,gBAAgB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAQ;IACzE,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAQ;IAEvE,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAC7D,SAAS,CAAC,QAAQ,CAAC,6BAA6B,UAAW;IAC3D,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAI1C,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAa;IACjE,SAAS,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAC1D,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,UAAU,SAAK;IACzB,SAAS,CAAC,eAAe,SAAK;IAC9B,SAAS,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAMhE,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAC7F;IAGZ,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,QAAQ;IAKzD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAAkB;IAI/D,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,SAAkB;IAGhE,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;
|
|
1
|
+
{"version":3,"file":"base-tmux-launcher.d.ts","sourceRoot":"","sources":["../../src/core/base-tmux-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn, execFileSync } from 'node:child_process';
|
|
2
2
|
import { createHash } from 'node:crypto';
|
|
3
3
|
import { existsSync, copyFileSync, writeFileSync, unlinkSync, readdirSync } from 'node:fs';
|
|
4
|
-
import { join } from 'node:path';
|
|
4
|
+
import { join, dirname } from 'node:path';
|
|
5
5
|
import { tmpdir, homedir } from 'node:os';
|
|
6
6
|
/**
|
|
7
7
|
* Abstract base class for tmux-based agent launchers.
|
|
@@ -53,6 +53,13 @@ export class BaseTmuxLauncher {
|
|
|
53
53
|
// Panes already reported as orphaned-but-working, so the warning is logged
|
|
54
54
|
// once rather than every idle cycle.
|
|
55
55
|
orphanPaneNoted = new Set();
|
|
56
|
+
// A REGISTERED session with a live pane that has made no MCP call at all for
|
|
57
|
+
// this long is wedged, not busy: a healthy SiloLink agent polls every few
|
|
58
|
+
// seconds, so lastActivity advances constantly and a working session can
|
|
59
|
+
// never reach this bound. Deliberately NOT gated on claude_idle_kill_after_ms
|
|
60
|
+
// — that is often 0 (idle-kill disabled) precisely on the orchestration
|
|
61
|
+
// daemons, which left a wedged worker with no escalation path at all.
|
|
62
|
+
static WEDGED_SESSION_MS = 60 * 60 * 1000;
|
|
56
63
|
// Per-session prompt-stall tracking: tmux session name → { when a
|
|
57
64
|
// human-input prompt was first seen on screen, when we last notified }. A
|
|
58
65
|
// session whose pane shows a humanPromptPatterns() dialog CONTINUOUSLY past
|
|
@@ -129,6 +136,42 @@ export class BaseTmuxLauncher {
|
|
|
129
136
|
getMinReadyWaitMs() { return 0; }
|
|
130
137
|
/** Additional wait after ready indicator detected, before sending prompt (e.g., for MCP server warmup) */
|
|
131
138
|
getPostReadyDelayMs() { return 0; }
|
|
139
|
+
/**
|
|
140
|
+
* Absolute path to `npx` for MCP server entries in generated configs.
|
|
141
|
+
*
|
|
142
|
+
* The MCP server processes are spawned by the CODING CLI inside the tmux
|
|
143
|
+
* pane, which inherits the tmux SERVER's environment — not this daemon's.
|
|
144
|
+
* A tmux server (re)started from a PATH-poor shell (systemd, ssh) has no
|
|
145
|
+
* nvm bin dir, so a bare `npx` dies with ENOENT and the session comes up
|
|
146
|
+
* with ZERO MCP tools (Doug v6, 2026-08-23 — same failure class as the
|
|
147
|
+
* bare-`claude` mcp-register ENOENT). npm installs `npx` beside `node`,
|
|
148
|
+
* and this daemon IS a node process, so resolve against our own binary;
|
|
149
|
+
* fall back to the bare name for exotic layouts where that misses.
|
|
150
|
+
*/
|
|
151
|
+
resolveNpxCommand() {
|
|
152
|
+
if (process.platform === 'win32')
|
|
153
|
+
return 'npx';
|
|
154
|
+
const candidate = join(dirname(process.execPath), 'npx');
|
|
155
|
+
return existsSync(candidate) ? candidate : 'npx';
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* PATH value to inject into generated MCP server `env` blocks.
|
|
159
|
+
*
|
|
160
|
+
* An absolute `npx` command alone is NOT enough: npx is a `#!/usr/bin/env
|
|
161
|
+
* node` script, so a pane env whose PATH lacks the node bin dir still dies
|
|
162
|
+
* with "env: 'node': No such file or directory" (verified against CC
|
|
163
|
+
* 2.1.241 on the fleet). The daemon can, by definition, find its own node —
|
|
164
|
+
* so hand the session's MCP servers the daemon's PATH with the node bin dir
|
|
165
|
+
* guaranteed present. MCP clients merge server `env` over the inherited
|
|
166
|
+
* environment, so this pins PATH for the server process only.
|
|
167
|
+
*/
|
|
168
|
+
mcpSpawnPathEnv() {
|
|
169
|
+
const base = process.env.PATH || '/usr/local/bin:/usr/bin:/bin';
|
|
170
|
+
if (process.platform === 'win32')
|
|
171
|
+
return base;
|
|
172
|
+
const nodeBin = dirname(process.execPath);
|
|
173
|
+
return base.split(':').includes(nodeBin) ? base : `${nodeBin}:${base}`;
|
|
174
|
+
}
|
|
132
175
|
/** Idle-kill threshold in ms; 0 disables. Override in subclass. */
|
|
133
176
|
getIdleKillAfterMs() { return 0; }
|
|
134
177
|
// A session making zero MCP progress past this HARD CEILING is wedged and
|
|
@@ -528,6 +571,25 @@ export class BaseTmuxLauncher {
|
|
|
528
571
|
setLlmAgentId(agentId) { this.pendingLlmAgentId = agentId; }
|
|
529
572
|
setMcpToolAllowlist(tools) { this.pendingMcpToolAllowlist = tools; }
|
|
530
573
|
setPendingSessionPrompt(prompt) { this.pendingSessionPrompt = prompt; }
|
|
574
|
+
/**
|
|
575
|
+
* Type a line into a conversation's pane and SUBMIT it, with verification.
|
|
576
|
+
*
|
|
577
|
+
* The control channel's send_keys used to push the text and `Enter` as one
|
|
578
|
+
* `tmux send-keys` call and report success on the spawn's exit code alone. A
|
|
579
|
+
* swallowed Enter (TUI mid-render/mid-paste) then stranded the text in the
|
|
580
|
+
* input box forever while the platform was told it had been delivered — an
|
|
581
|
+
* orch-204 worker sat 7h that way (2026-08-14) answering heartbeats with
|
|
582
|
+
* "Idle, no pending messages" while its actual instruction was never sent.
|
|
583
|
+
* Routing text through sendLineToPane gets the separate Enter AND the
|
|
584
|
+
* verify/retry that 1.19.5–1.19.7 built for nudges.
|
|
585
|
+
*/
|
|
586
|
+
sendTextAndSubmit(conversationId, text) {
|
|
587
|
+
const name = this.tmuxNameForConversation(conversationId);
|
|
588
|
+
if (!name)
|
|
589
|
+
return false;
|
|
590
|
+
this.sendLineToPane(name, text);
|
|
591
|
+
return true;
|
|
592
|
+
}
|
|
531
593
|
/**
|
|
532
594
|
* Read and clear the one-shot session prompt. Called ONCE per launch, at the
|
|
533
595
|
* top of buildLaunchPrompt, so a prompt can never survive into a later launch
|
|
@@ -958,10 +1020,15 @@ export class BaseTmuxLauncher {
|
|
|
958
1020
|
if (conversationId && (workspaceSessionId || existingWorkspaceCwd)) {
|
|
959
1021
|
this.lastWorkspaceByConversation.set(conversationId, cwd);
|
|
960
1022
|
}
|
|
961
|
-
// Set up MCP config
|
|
1023
|
+
// Set up MCP config. A launcher may return extra CLI args that point the
|
|
1024
|
+
// spawned CLI at the generated config explicitly (Claude's --mcp-config /
|
|
1025
|
+
// --strict-mcp-config) — append them so the session's MCP surface is
|
|
1026
|
+
// deterministic and independent of racy shared-state approvals.
|
|
962
1027
|
const mcpToolAllowlist = this.pendingMcpToolAllowlist;
|
|
963
1028
|
this.pendingMcpToolAllowlist = null;
|
|
964
|
-
await this.setupMcpConfig(cwd, mcpToolAllowlist);
|
|
1029
|
+
const mcpExtraArgs = await this.setupMcpConfig(cwd, mcpToolAllowlist);
|
|
1030
|
+
if (Array.isArray(mcpExtraArgs) && mcpExtraArgs.length > 0)
|
|
1031
|
+
args.push(...mcpExtraArgs);
|
|
965
1032
|
// Fetch agent launch context
|
|
966
1033
|
let agentContext = '';
|
|
967
1034
|
const agentIdForContext = this.pendingLlmAgentId;
|
|
@@ -1648,6 +1715,15 @@ export class BaseTmuxLauncher {
|
|
|
1648
1715
|
}
|
|
1649
1716
|
if (sessions.length === 0)
|
|
1650
1717
|
return;
|
|
1718
|
+
// Wedged REGISTERED sessions. Runs before the startup-grace/all-idle gates
|
|
1719
|
+
// below, which are about nudging live work — a wedged session must not be
|
|
1720
|
+
// masked by a healthy sibling being active.
|
|
1721
|
+
try {
|
|
1722
|
+
this.reapWedgedSessions(sessions, now);
|
|
1723
|
+
}
|
|
1724
|
+
catch (err) {
|
|
1725
|
+
console.warn(`${this.getLogTag()} wedged-session sweep failed: ${err}`);
|
|
1726
|
+
}
|
|
1651
1727
|
// Prompt-stall detection runs BEFORE the startup-grace and all-idle gates:
|
|
1652
1728
|
// a launch-time trust dialog stalls a brand-new session, and one active
|
|
1653
1729
|
// session must not mask another one stuck on a permission prompt.
|
|
@@ -1876,6 +1952,39 @@ export class BaseTmuxLauncher {
|
|
|
1876
1952
|
this.killByConversation(convId, 'orphaned-pane:unregistered-and-idle');
|
|
1877
1953
|
}
|
|
1878
1954
|
}
|
|
1955
|
+
/**
|
|
1956
|
+
* Recycle REGISTERED sessions that are wedged — the inverse of an orphaned
|
|
1957
|
+
* pane, and previously just as invisible.
|
|
1958
|
+
*
|
|
1959
|
+
* SessionManager keeps a session registered as long as its tmux is alive
|
|
1960
|
+
* ("idle Nmin but tmux still alive — keeping registered"), and idle-kill is
|
|
1961
|
+
* the only thing that ever escalated. On daemons with
|
|
1962
|
+
* claude_idle_kill_after_ms: 0 (all the orchestration ones) that meant NO
|
|
1963
|
+
* escalation existed: an orch-204 worker sat registered and idle for 7h,
|
|
1964
|
+
* answering heartbeats while its real instruction was stranded unsent.
|
|
1965
|
+
*
|
|
1966
|
+
* Safe because a healthy agent polls constantly: lastActivity advances every
|
|
1967
|
+
* few seconds, so only a genuinely dead poll loop reaches WEDGED_SESSION_MS.
|
|
1968
|
+
* The frozen-pane check is a second guard so a session doing a long stretch
|
|
1969
|
+
* of purely local work is never recycled.
|
|
1970
|
+
*/
|
|
1971
|
+
reapWedgedSessions(sessions, now) {
|
|
1972
|
+
for (const s of sessions) {
|
|
1973
|
+
const idleMs = now - s.lastActivity.getTime();
|
|
1974
|
+
if (idleMs < BaseTmuxLauncher.WEDGED_SESSION_MS)
|
|
1975
|
+
continue;
|
|
1976
|
+
const tmuxName = this.tmuxNameForConversation(s.conversationId);
|
|
1977
|
+
if (!tmuxName)
|
|
1978
|
+
continue; // no pane — the dead-pane reconcile owns it
|
|
1979
|
+
if (this.isActivelyThinking(tmuxName))
|
|
1980
|
+
continue; // genuine local work
|
|
1981
|
+
const idleMin = Math.round(idleMs / 60000);
|
|
1982
|
+
console.error(`${this.getLogTag()} WEDGED session ${s.sessionId} (conv ${s.conversationId}): no MCP activity for ` +
|
|
1983
|
+
`${idleMin}min and pane frozen — recycling. A healthy agent polls every few seconds, so this is a ` +
|
|
1984
|
+
'dead poll loop (commonly an instruction stranded unsent in the input box).');
|
|
1985
|
+
this.killByConversation(s.conversationId, `wedged-session:${idleMin}min`);
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1879
1988
|
isActivelyThinking(tmuxSession) {
|
|
1880
1989
|
const now = Date.now();
|
|
1881
1990
|
const prev = this.paneProgress.get(tmuxSession);
|