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.
- package/dist/agent/bootstrap.js +2 -2
- package/dist/agent/bootstrap.js.map +1 -1
- package/dist/agent/manager.d.ts +27 -1
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +352 -130
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/runner.d.ts +3 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +6 -0
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tmux-probe-poller.d.ts +12 -2
- package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
- package/dist/agent/tmux-probe-poller.js +199 -57
- package/dist/agent/tmux-probe-poller.js.map +1 -1
- package/dist/agent/tmux.d.ts +21 -5
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +289 -51
- package/dist/agent/tmux.js.map +1 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +38 -4
- package/dist/api/config.js.map +1 -1
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +112 -92
- package/dist/api/projects.js.map +1 -1
- package/dist/web/assets/{index-CItUtzU7.js → index-vQFMnvpO.js} +3 -3
- package/dist/web/index.html +1 -1
- package/package.json +2 -1
package/dist/agent/runner.d.ts
CHANGED
|
@@ -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":"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"}
|
package/dist/agent/runner.js
CHANGED
|
@@ -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 {
|
package/dist/agent/runner.js.map
CHANGED
|
@@ -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
|
|
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":"AACA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAe,KAAK,cAAc,EAAyB,MAAM,WAAW,CAAC;AAKpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,gCAAgC,GAAG,KAAK,GAAG,QAAQ,CAAC;AAChE,MAAM,MAAM,8BAA8B,GAAG,CAC3C,IAAI,EAAE,gCAAgC,EACtC,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;AAEV,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,SAAS,CAA6C;IAE9D,QAAQ,CAAC,EAAE,EAAE,8BAA8B,GAAG,MAAM,IAAI;IAKxD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB;IAI5C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAqBzD,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIhC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM7B,OAAO,CAAC,IAAI;CASb;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,aAAa,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
this.
|
|
137
|
-
|
|
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
|
-
|
|
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
|
|
166
|
-
await runWithConcurrency(
|
|
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
|
|
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(
|
|
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.
|
|
194
|
-
|
|
195
|
-
|
|
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(
|
|
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.
|
|
218
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
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
|
-
|
|
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
|
-
|
|
447
|
-
|
|
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();
|