baxian 2.0.28 → 2.0.30

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.
@@ -4,6 +4,9 @@ export interface ExecResult {
4
4
  stderr: string;
5
5
  exitCode: number;
6
6
  }
7
+ export declare class ExecNotStartedError extends Error {
8
+ constructor(message: string);
9
+ }
7
10
  export type RemoteShellMode = 'login' | 'login-interactive';
8
11
  export interface ExecOptions {
9
12
  timeout?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC3F;AAKD,qBAAa,WAAY,YAAW,aAAa;IACzC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIrE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC;CAGvB;AA2HD,wBAAgB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAU5C;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAoBD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,EAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,UAAU,GAAG,SAAS,CAIxB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAOlF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAOzF;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,UAAU,GAAG,SAAS,GAChC,OAAO,CAgBT;AAoED,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAElD;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAS1F;AAID,wBAAsB,WAAW,CAAC,KAAK,GAAE,aAAiC,GAAG,OAAO,CAAC,IAAI,CAAC,CAczF;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,EAAE,CASlE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAmBpG;AAED,qBAAa,SAAU,YAAW,aAAa;IAG3C,OAAO,CAAC,IAAI;IAFd,OAAO,CAAC,KAAK,CAAgB;gBAEnB,IAAI,EAAE,UAAU,EACxB,KAAK,CAAC,EAAE,aAAa;IAKvB,OAAO,CAAC,YAAY;YAON,UAAU;IAMlB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAQrE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC;IAQhB,sBAAsB,CAC1B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC;CAMvB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,eAAyB,GAAG,MAAM,CAI1F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa,CAMvF"}
@@ -3,6 +3,12 @@ import { mkdir, writeFile as fsWriteFile, chmod } from 'node:fs/promises';
3
3
  import { homedir, userInfo } from 'node:os';
4
4
  import { isIP } from 'node:net';
5
5
  import { dirname, join } from 'node:path';
6
+ export class ExecNotStartedError extends Error {
7
+ constructor(message) {
8
+ super(message);
9
+ this.name = 'ExecNotStartedError';
10
+ }
11
+ }
6
12
  const KILL_GRACE_MS = 2000;
7
13
  const DEFAULT_MAX_BUFFER = 16 * 1024 * 1024;
8
14
  export class LocalRunner {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
@@ -55,25 +55,35 @@ export declare class TmuxProbePoller {
55
55
  private concurrency;
56
56
  private failureThreshold;
57
57
  private lastRecordedIssue;
58
+ private shellSightings;
59
+ private paneProbeFailures;
58
60
  private lastScreen;
59
- private validInstances;
61
+ private instances;
62
+ private generations;
63
+ private inFlight;
60
64
  private debouncers;
61
65
  private lastPublishedState;
62
66
  private now;
63
67
  constructor(options: TmuxProbePollerOptions);
64
68
  replaceConfig(validated: BaxianConfig): void;
65
69
  purgeAgent(id: string): void;
70
+ private resetPaneIssueState;
66
71
  private resetDetectionBaseline;
72
+ private indexInstances;
67
73
  private isCurrentInstance;
68
- private commitObservation;
69
74
  private detectViaManifest;
70
75
  start(): void;
71
76
  stop(): void;
72
77
  pollOnce(): Promise<void>;
78
+ confirmReplReady(agentId: string): Promise<void>;
79
+ probeAgent(agentId: string): Promise<void>;
73
80
  private probeConfiguredAgents;
74
81
  private probe;
82
+ private probeInstance;
75
83
  private observePresentSession;
76
84
  private screenStaticForGrace;
85
+ private trackShellSightings;
86
+ private breakUnconfirmedShellStreak;
77
87
  private issueForPaneState;
78
88
  private recordRuntimeIssue;
79
89
  private recordProbeError;
@@ -1 +1 @@
1
- {"version":3,"file":"tmux-probe-poller.d.ts","sourceRoot":"","sources":["../../src/agent/tmux-probe-poller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux-probe-poller.d.ts","sourceRoot":"","sources":["../../src/agent/tmux-probe-poller.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { createRunner, resolveAgentHost } from './runner.js';
2
+ import { createRunner, hostGroupKey, resolveAgentHost } from './runner.js';
3
3
  import { TmuxManager } from './tmux.js';
4
4
  import { classifyScreen } from './detect/classify.js';
5
5
  import { WorkingToIdleDebounce } from './detect/debounce.js';
@@ -57,6 +57,8 @@ export class TmuxSessionStatusStore {
57
57
  }
58
58
  const DEFAULT_FAILURE_THRESHOLD = 2;
59
59
  const PENDING_IDLE_AFTER_MS = 5 * 60 * 1000;
60
+ // 探测间隔可低至 1s,只按次数计会把 runtime 冷启动/远程慢 shell 的正常窗口记成退出:还要求 shell 持续满这段时间
61
+ const RUNTIME_EXIT_GRACE_MS = 20 * 1000;
60
62
  export class TmuxProbePoller {
61
63
  periodicRunner;
62
64
  failureCounts = new Map();
@@ -71,8 +73,12 @@ export class TmuxProbePoller {
71
73
  concurrency;
72
74
  failureThreshold;
73
75
  lastRecordedIssue = new Map();
76
+ shellSightings = new Map();
77
+ paneProbeFailures = new Map();
74
78
  lastScreen = new Map();
75
- validInstances = new Map();
79
+ instances = new Map();
80
+ generations = 0;
81
+ inFlight = new Map();
76
82
  debouncers = new Map();
77
83
  lastPublishedState = new Map();
78
84
  now;
@@ -88,7 +94,7 @@ export class TmuxProbePoller {
88
94
  this.probeTimeoutMs = options.probeTimeoutMs ?? options.config.server.tmuxProbeTimeoutMs;
89
95
  this.concurrency = options.concurrency ?? options.config.server.tmuxProbeConcurrency;
90
96
  this.failureThreshold = options.failureThreshold ?? DEFAULT_FAILURE_THRESHOLD;
91
- this.validInstances = buildInstanceIndex(options.config);
97
+ this.instances = this.indexInstances(options.config);
92
98
  this.periodicRunner = new PeriodicTaskRunner({
93
99
  name: 'tmux-probe-poller',
94
100
  intervalMs: this.pollIntervalMs,
@@ -98,15 +104,26 @@ export class TmuxProbePoller {
98
104
  }
99
105
  replaceConfig(validated) {
100
106
  this.config = validated;
101
- this.validInstances = buildInstanceIndex(validated);
107
+ const previous = this.instances;
108
+ this.instances = this.indexInstances(validated);
109
+ for (const [id, instance] of this.instances) {
110
+ const before = previous.get(id);
111
+ // 换代即另一个实例:失败计数、连击、去重键、检测基线与旧观测都不得跨代延续
112
+ if (before && before.generation !== instance.generation)
113
+ this.purgeAgent(id);
114
+ // 连续失败计数属于连接:凭据或端点换了从零数起,旧连接的失败不给新连接垫底;pane 侧状态照旧保留
115
+ else if (before && before.connection !== instance.connection)
116
+ this.failureCounts.delete(id);
117
+ }
102
118
  const allKnownIds = new Set([
103
119
  ...this.failureCounts.keys(),
120
+ ...this.paneProbeFailures.keys(),
104
121
  ...this.lastRecordedIssue.keys(),
105
122
  ...this.lastScreen.keys(),
106
123
  ...this.store.keys(),
107
124
  ]);
108
125
  for (const id of allKnownIds) {
109
- if (!this.validInstances.has(id))
126
+ if (!this.instances.has(id))
110
127
  this.purgeAgent(id);
111
128
  }
112
129
  this.probeTimeoutMs = validated.server.tmuxProbeTimeoutMs;
@@ -117,26 +134,41 @@ export class TmuxProbePoller {
117
134
  this.periodicRunner.reschedule(nextIntervalMs);
118
135
  }
119
136
  }
137
+ // purge 也让在途探测作废:已拿到 absent、正卡在 reconcile 等锁的旧探测不能再对重建后的 agent 生效,换代是它们唯一认的栅栏
120
138
  purgeAgent(id) {
139
+ const instance = this.instances.get(id);
140
+ if (instance)
141
+ this.instances.set(id, { ...instance, generation: ++this.generations });
121
142
  this.failureCounts.delete(id);
143
+ this.resetPaneIssueState(id);
144
+ this.store.delete(id);
145
+ }
146
+ resetPaneIssueState(id) {
122
147
  this.lastRecordedIssue.delete(id);
148
+ this.shellSightings.delete(id);
149
+ this.paneProbeFailures.delete(id);
123
150
  this.resetDetectionBaseline(id);
124
- this.store.delete(id);
125
151
  }
126
152
  resetDetectionBaseline(id) {
127
153
  this.lastScreen.delete(id);
128
154
  this.debouncers.delete(id);
129
155
  this.lastPublishedState.delete(id);
130
156
  }
131
- isCurrentInstance(agent) {
132
- return this.validInstances.get(agent.id) === agent;
133
- }
134
- commitObservation(agent, entry) {
135
- if (!this.isCurrentInstance(agent)) {
136
- this.purgeAgent(agent.id);
137
- return;
157
+ // 热重载会重建整棵配置对象树,实例身份只能按内容认:同 ID 且被探测的 pane 与解读方式没变才是同一代
158
+ indexInstances(config) {
159
+ const next = new Map();
160
+ for (const [id, agent] of buildInstanceIndex(config)) {
161
+ const signature = probeSignature(config, agent);
162
+ const previous = this.instances.get(id);
163
+ const generation = previous?.signature === signature ? previous.generation : ++this.generations;
164
+ next.set(id, { agent, signature, connection: connectionSignature(config, agent), generation });
138
165
  }
139
- this.store.set(agent.id, entry);
166
+ return next;
167
+ }
168
+ // 换代/换连接只发生在 await 期间:每个 await 之后先 fencing 再碰按实例累计的状态;过期探测直接放弃,不清当前代的状态
169
+ isCurrentInstance({ agent, generation, connection }) {
170
+ const current = this.instances.get(agent.id);
171
+ return current?.generation === generation && current.connection === connection;
140
172
  }
141
173
  detectViaManifest(agentId, runtime, runtimeScreen, oscTitle) {
142
174
  const detection = classifyScreen(runtime, runtimeScreen, oscTitle);
@@ -161,11 +193,40 @@ export class TmuxProbePoller {
161
193
  async pollOnce() {
162
194
  await this.periodicRunner.runOnce();
163
195
  }
196
+ // 维护路径(restart-repl / retry)刚亲眼确认 REPL 就绪:作废旧结论后先按这一事实落 present,再立即重看;重看瞬时失败(未到阈值不落库)时留下的是已确认的 present 而不是 unknown
197
+ async confirmReplReady(agentId) {
198
+ this.purgeAgent(agentId);
199
+ if (!this.instances.has(agentId))
200
+ return;
201
+ const now = new Date().toISOString();
202
+ this.store.set(agentId, { tmuxSessionStatus: 'present', observedAt: now, lastPresentAt: now, paneState: 'live-runtime' });
203
+ await this.probeAgent(agentId);
204
+ }
205
+ async probeAgent(agentId) {
206
+ if (this.instances.has(agentId))
207
+ await this.probe(agentId);
208
+ }
164
209
  async probeConfiguredAgents() {
165
- const agents = uniqueAgents(this.config);
166
- await runWithConcurrency(agents, Math.max(1, this.concurrency), agent => this.probe(agent));
210
+ const ids = [...this.instances.keys()];
211
+ await runWithConcurrency(ids, Math.max(1, this.concurrency), id => this.probe(id));
212
+ }
213
+ // 同一 agent 的探测串行:即时探测排在进行中的定时探测之后,最后落库的一定是最新的观测
214
+ // 排队的是 agent id 而不是实例:轮到执行才取当前实例,排队期间热重载换掉的 host 引用不会拿去查新配置树
215
+ probe(id) {
216
+ const run = (this.inFlight.get(id) ?? Promise.resolve()).then(() => {
217
+ const instance = this.instances.get(id);
218
+ return instance ? this.probeInstance(instance) : undefined;
219
+ });
220
+ const settled = run.catch(() => undefined);
221
+ this.inFlight.set(id, settled);
222
+ void settled.then(() => {
223
+ if (this.inFlight.get(id) === settled)
224
+ this.inFlight.delete(id);
225
+ });
226
+ return run;
167
227
  }
168
- async probe(agent) {
228
+ async probeInstance(instance) {
229
+ const { agent } = instance;
169
230
  let tmux;
170
231
  let result;
171
232
  try {
@@ -181,43 +242,50 @@ export class TmuxProbePoller {
181
242
  error: err instanceof Error ? err.message : String(err),
182
243
  };
183
244
  }
184
- if (!this.isCurrentInstance(agent)) {
185
- this.purgeAgent(agent.id);
245
+ if (!this.isCurrentInstance(instance))
186
246
  return;
187
- }
247
+ // 只有确实看到 pane 的探测才能延续 shell 候选连击;已发布的 RUNTIME_EXITED 不因一次瞬时探测失败而"假恢复"
248
+ if (result.tmuxSessionStatus !== 'present')
249
+ this.breakUnconfirmedShellStreak(agent.id);
188
250
  const now = new Date().toISOString();
189
251
  const previousEntry = this.store.get(agent.id);
190
252
  const previous = previousEntry.tmuxSessionStatus;
191
253
  if (result.tmuxSessionStatus === 'unreachable') {
192
254
  const failures = (this.failureCounts.get(agent.id) ?? 0) + 1;
193
- this.failureCounts.set(agent.id, failures);
194
- if (failures >= this.failureThreshold) {
195
- this.resetDetectionBaseline(agent.id);
196
- const latestError = await this.recordProbeError(agent, now, result.error);
197
- this.commitObservation(agent, {
198
- tmuxSessionStatus: 'unreachable',
199
- observedAt: now,
200
- ...(previousEntry.lastPresentAt ? { lastPresentAt: previousEntry.lastPresentAt } : {}),
201
- error: result.error,
202
- ...(latestError ? { latestError } : {}),
203
- });
204
- this.logTransition(agent.id, previous, 'unreachable', result.error);
255
+ if (failures < this.failureThreshold) {
256
+ this.failureCounts.set(agent.id, failures);
257
+ return;
205
258
  }
259
+ const latestError = await this.recordProbeError(agent, now, result.error);
260
+ // 计数、pane 结论作废与发布都落在落盘之后的 fence 后面:落盘期间连接换了,这次旧凭据失败对新连接什么都不留
261
+ if (!this.isCurrentInstance(instance))
262
+ return;
263
+ this.failureCounts.set(agent.id, failures);
264
+ // 发布 unreachable 即失去对 pane 的确认:pane 级结论、连击与去重键一并作废,恢复后重新确认并落新记录
265
+ this.resetPaneIssueState(agent.id);
266
+ this.store.set(agent.id, {
267
+ tmuxSessionStatus: 'unreachable',
268
+ observedAt: now,
269
+ ...(previousEntry.lastPresentAt ? { lastPresentAt: previousEntry.lastPresentAt } : {}),
270
+ error: result.error,
271
+ ...(latestError ? { latestError } : {}),
272
+ });
273
+ this.logTransition(agent.id, previous, 'unreachable', result.error);
206
274
  return;
207
275
  }
208
276
  this.failureCounts.delete(agent.id);
209
277
  const presentProbe = result.tmuxSessionStatus === 'present' && tmux
210
- ? await this.observePresentSession(agent, tmux, now)
278
+ ? await this.observePresentSession(instance, tmux, now)
211
279
  : {};
280
+ if (presentProbe === 'stale' || !this.isCurrentInstance(instance))
281
+ return;
212
282
  const effectiveStatus = result.tmuxSessionStatus === 'present' && presentProbe === undefined
213
283
  ? 'absent'
214
284
  : result.tmuxSessionStatus;
215
285
  const presentDetails = presentProbe === undefined ? {} : presentProbe;
216
- if (effectiveStatus !== 'present') {
217
- this.lastRecordedIssue.delete(agent.id);
218
- this.resetDetectionBaseline(agent.id);
219
- }
220
- this.commitObservation(agent, {
286
+ if (effectiveStatus !== 'present')
287
+ this.resetPaneIssueState(agent.id);
288
+ this.store.set(agent.id, {
221
289
  tmuxSessionStatus: effectiveStatus,
222
290
  observedAt: now,
223
291
  ...(effectiveStatus === 'present' ? { lastPresentAt: now } : {}),
@@ -226,20 +294,26 @@ export class TmuxProbePoller {
226
294
  this.logTransition(agent.id, previous, effectiveStatus);
227
295
  if (effectiveStatus === 'absent') {
228
296
  try {
229
- await this.agentManager.reconcileFailedAgent(agent.id);
297
+ await this.agentManager.reconcileFailedAgent(agent.id, { stillCurrent: () => this.isCurrentInstance(instance) });
230
298
  }
231
299
  catch (err) {
232
300
  console.error(`[tmux-probe] reconcileFailedAgent ${agent.id} threw:`, err);
233
301
  }
234
302
  }
235
303
  }
236
- async observePresentSession(agent, tmux, occurredAt) {
304
+ async observePresentSession(instance, tmux, occurredAt) {
305
+ const { agent } = instance;
306
+ let paneState;
237
307
  try {
238
308
  const snapshot = await tmux.getSessionSnapshot(agent.id, { timeout: this.probeTimeoutMs });
239
309
  if (!snapshot || snapshot.claim !== agent.id)
240
310
  return undefined;
241
311
  const pane = await tmux.getSinglePaneByRef(snapshot.ref, agent.id, { timeout: this.probeTimeoutMs });
242
- const paneState = await tmux.classifyPaneForAdopt(pane, agent.runtime, { timeout: this.probeTimeoutMs });
312
+ paneState = await tmux.classifyPaneForAdopt(pane, agent.runtime, { timeout: this.probeTimeoutMs });
313
+ if (!this.isCurrentInstance(instance))
314
+ return 'stale';
315
+ this.paneProbeFailures.delete(agent.id);
316
+ const runtimeExited = this.trackShellSightings(agent.id, paneState);
243
317
  const liveRuntime = paneState.kind === 'live-runtime';
244
318
  const [runtimeScreen, currentTaskId, oscTitle, paneWidth] = liveRuntime
245
319
  ? await Promise.all([
@@ -258,6 +332,8 @@ export class TmuxProbePoller {
258
332
  .catch(() => 0),
259
333
  ])
260
334
  : ['', null, '', 0];
335
+ if (!this.isCurrentInstance(instance))
336
+ return 'stale';
261
337
  const manifestResult = liveRuntime
262
338
  ? this.detectViaManifest(agent.id, agent.runtime, runtimeScreen, oscTitle)
263
339
  : undefined;
@@ -282,13 +358,15 @@ export class TmuxProbePoller {
282
358
  this.resetDetectionBaseline(agent.id);
283
359
  }
284
360
  if (manifestResult === 'skip') {
285
- const prev = this.store.get(agent.id);
361
+ // skip 只说明屏幕不可读,能继承的只有同样来自 live-runtime 的上一轮观察;RUNTIME_EXITED 这类 pane 级结论已被 live-runtime 推翻
362
+ const last = this.store.get(agent.id);
363
+ const inherit = last.paneState === 'live-runtime';
364
+ // 不继承即视为该问题已解除:去重键一并清掉,否则下一次同类问题会命中旧键而不再落 error record
365
+ if (!inherit)
366
+ this.lastRecordedIssue.delete(agent.id);
286
367
  return {
368
+ ...(inherit ? paneConclusionOf(last) : {}),
287
369
  paneState: paneState.kind,
288
- ...(prev.runtimeStatusHint ? { runtimeStatusHint: prev.runtimeStatusHint } : {}),
289
- ...(prev.reason ? { reason: prev.reason } : {}),
290
- ...(prev.message ? { message: prev.message } : {}),
291
- ...(prev.latestError ? { latestError: prev.latestError } : {}),
292
370
  };
293
371
  }
294
372
  const pending = detected?.published === 'pending';
@@ -296,7 +374,7 @@ export class TmuxProbePoller {
296
374
  const screenStatic = !pending && this.screenStaticForGrace(agent.id, paneState);
297
375
  const stuckBusy = busy && screenStatic && (detected?.visibleWorking ?? false);
298
376
  const pendingIdle = !busy && screenStatic;
299
- const issue = this.issueForPaneState(paneState, pending, pendingIdle, stuckBusy);
377
+ const issue = this.issueForPaneState(paneState, pending, pendingIdle, stuckBusy, runtimeExited);
300
378
  if (!issue) {
301
379
  this.lastRecordedIssue.delete(agent.id);
302
380
  return {
@@ -314,7 +392,19 @@ export class TmuxProbePoller {
314
392
  };
315
393
  }
316
394
  catch (err) {
395
+ if (!this.isCurrentInstance(instance))
396
+ return 'stale';
397
+ const failures = (this.paneProbeFailures.get(agent.id) ?? 0) + 1;
398
+ this.paneProbeFailures.set(agent.id, failures);
399
+ const last = this.store.get(agent.id);
400
+ // 一次看不到 pane 推翻不了已确认的 RUNTIME_EXITED(与 unreachable 同一阈值);但前台已确认不是 shell 就是直接反证,不延续
401
+ const foregroundStillShell = paneState === undefined || paneState.kind === 'shell';
402
+ if (foregroundStillShell && last.reason === 'RUNTIME_EXITED' && failures < this.failureThreshold) {
403
+ console.warn(`[tmux-probe] ${agent.id} pane probe failed (${failures}/${this.failureThreshold}); keeping RUNTIME_EXITED:`, err);
404
+ return paneConclusionOf(last);
405
+ }
317
406
  this.resetDetectionBaseline(agent.id);
407
+ this.shellSightings.delete(agent.id);
318
408
  const message = err instanceof Error ? err.message : String(err);
319
409
  const issue = {
320
410
  runtimeStatusHint: 'error',
@@ -338,7 +428,31 @@ export class TmuxProbePoller {
338
428
  return false;
339
429
  return this.now() - entry.changedAt > PENDING_IDLE_AFTER_MS;
340
430
  }
341
- issueForPaneState(paneState, pendingRuntimeMenu, pendingIdle, stuckBusy) {
431
+ // 启动与 Restart REPL 都会让 pane 短暂停在 shell:连续多次且持续够久才算 runtime 真的退出
432
+ trackShellSightings(agentId, paneState) {
433
+ if (paneState.kind !== 'shell') {
434
+ this.shellSightings.delete(agentId);
435
+ return false;
436
+ }
437
+ const now = this.now();
438
+ const streak = this.shellSightings.get(agentId) ?? { count: 0, since: now };
439
+ streak.count += 1;
440
+ this.shellSightings.set(agentId, streak);
441
+ return streak.count >= this.failureThreshold && now - streak.since >= RUNTIME_EXIT_GRACE_MS;
442
+ }
443
+ breakUnconfirmedShellStreak(agentId) {
444
+ if (this.store.get(agentId).reason !== 'RUNTIME_EXITED')
445
+ this.shellSightings.delete(agentId);
446
+ }
447
+ issueForPaneState(paneState, pendingRuntimeMenu, pendingIdle, stuckBusy, runtimeExited) {
448
+ if (runtimeExited) {
449
+ return {
450
+ runtimeStatusHint: 'error',
451
+ reason: 'RUNTIME_EXITED',
452
+ message: 'Agent runtime is no longer running — the pane sits at a shell prompt, so prompts sent to it would land in the shell.',
453
+ recommendation: 'Use Restart REPL on the agent card to relaunch the runtime, then inspect why it exited.',
454
+ };
455
+ }
342
456
  if (pendingRuntimeMenu) {
343
457
  return {
344
458
  runtimeStatusHint: 'pending',
@@ -380,10 +494,12 @@ export class TmuxProbePoller {
380
494
  if (!this.errorRecordStore)
381
495
  return undefined;
382
496
  const key = `${issue.reason}:${issue.message}`;
383
- if (this.lastRecordedIssue.get(agent.id) === key) {
384
- return this.store.get(agent.id).latestError;
385
- }
386
- this.lastRecordedIssue.set(agent.id, key);
497
+ const recorded = this.lastRecordedIssue.get(agent.id);
498
+ // 去重命中要返回这个键自己的记录:store 里的 latestError 可能已被中途发布的 unreachable 记录顶掉
499
+ if (recorded?.key === key)
500
+ return recorded.summary;
501
+ const entry = { key };
502
+ this.lastRecordedIssue.set(agent.id, entry);
387
503
  const projectId = projectIdForAgent(this.config, agent.id) ?? '';
388
504
  try {
389
505
  const record = await this.errorRecordStore.append({
@@ -397,11 +513,12 @@ export class TmuxProbePoller {
397
513
  tmuxSessionStatus: 'present',
398
514
  runtimeStatusHint: issue.runtimeStatusHint,
399
515
  },
400
- recommendation: issue.runtimeStatusHint === 'pending'
516
+ recommendation: issue.recommendation ?? (issue.runtimeStatusHint === 'pending'
401
517
  ? 'Open the web terminal and complete the pending prompt.'
402
- : 'Inspect the pane before assigning more work to this agent.',
518
+ : 'Inspect the pane before assigning more work to this agent.'),
403
519
  });
404
- return this.errorRecordStore.toSummary(record);
520
+ entry.summary = this.errorRecordStore.toSummary(record);
521
+ return entry.summary;
405
522
  }
406
523
  catch (err) {
407
524
  console.warn(`[tmux-probe] record runtime issue for ${agent.id} failed:`, err);
@@ -443,8 +560,33 @@ export class TmuxProbePoller {
443
560
  }
444
561
  }
445
562
  }
446
- function uniqueAgents(config) {
447
- return [...buildInstanceIndex(config).values()];
563
+ // alias / 密码 / 模型 / workdir 这类展示与启动参数改了,正在运行的 pane 与它的屏幕解读都不变,不算换代
564
+ function probeSignature(config, agent) {
565
+ return JSON.stringify({
566
+ runtime: agent.runtime,
567
+ mode: agent.mode,
568
+ host: hostGroupKey(agent.mode, resolveAgentHost(config.host, agent.host)),
569
+ });
570
+ }
571
+ // 凭据只影响那一次连接:密码轮换不换代(pane 状态保留),但持旧凭据建立的在途探测结果一律作废,失败不能记到新配置头上
572
+ function connectionSignature(config, agent) {
573
+ const host = resolveAgentHost(config.host, agent.host);
574
+ return JSON.stringify({
575
+ mode: agent.mode,
576
+ hostname: host?.hostname,
577
+ port: host?.port,
578
+ user: host?.user,
579
+ password: host?.password,
580
+ });
581
+ }
582
+ function paneConclusionOf(last) {
583
+ return {
584
+ ...(last.paneState ? { paneState: last.paneState } : {}),
585
+ ...(last.runtimeStatusHint ? { runtimeStatusHint: last.runtimeStatusHint } : {}),
586
+ ...(last.reason ? { reason: last.reason } : {}),
587
+ ...(last.message ? { message: last.message } : {}),
588
+ ...(last.latestError ? { latestError: last.latestError } : {}),
589
+ };
448
590
  }
449
591
  function buildInstanceIndex(config) {
450
592
  const byId = new Map();