@songsid/agend 2.1.0-beta.29 → 2.1.0-beta.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-cli.js +1 -1
- package/dist/agent-cli.js.map +1 -1
- package/dist/channel/mcp-tools.js +17 -1
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +3 -0
- package/dist/config-validator.js.map +1 -1
- package/dist/daemon.d.ts +26 -1
- package/dist/daemon.js +200 -61
- package/dist/daemon.js.map +1 -1
- package/dist/fleet-manager.d.ts +27 -0
- package/dist/fleet-manager.js +127 -9
- package/dist/fleet-manager.js.map +1 -1
- package/dist/outbound-handlers.js +164 -1
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +38 -0
- package/dist/outbound-schemas.js +35 -0
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/tmux-control.d.ts +7 -0
- package/dist/tmux-control.js +22 -1
- package/dist/tmux-control.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts
CHANGED
|
@@ -8,7 +8,10 @@ import type { TmuxControlClient } from "./tmux-control.js";
|
|
|
8
8
|
/** Point a resumed CLI at its one backend-native instruction source. */
|
|
9
9
|
export declare function buildInstructionReloadNotice(binaryName: string, instanceName: string, instanceDir: string): string;
|
|
10
10
|
export declare const DEFAULT_STUCK_TIMEOUT_MS: number;
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const DEFAULT_STATE_IDLE_DEBOUNCE_MS = 2000;
|
|
12
|
+
export declare const DEFAULT_STATE_SAFETY_SWEEP_MS = 60000;
|
|
13
|
+
/** @deprecated State detection is event-driven; this now aliases the safety sweep. */
|
|
14
|
+
export declare const DEFAULT_STATE_POLL_INTERVAL_MS = 60000;
|
|
12
15
|
/** Read the last real channel inbound timestamp persisted across daemon restarts. */
|
|
13
16
|
export declare function readLastInboundAt(instanceDir: string, now?: number): number | null;
|
|
14
17
|
/** Atomically persist the last real channel inbound timestamp. */
|
|
@@ -44,6 +47,8 @@ export declare class PaneStateMachine {
|
|
|
44
47
|
private currentState;
|
|
45
48
|
constructor(readyPattern: RegExp, stuckTimeoutMs?: number, now?: number);
|
|
46
49
|
observe(pane: string, now?: number): InstanceStateSnapshot;
|
|
50
|
+
/** Record pane motion from tmux control mode without capturing pane content. */
|
|
51
|
+
recordOutput(now?: number): InstanceStateSnapshot;
|
|
47
52
|
snapshot(now?: number): InstanceStateSnapshot;
|
|
48
53
|
}
|
|
49
54
|
/** Tracks whether an inbound arrived after the most recent confirmed idle prompt. */
|
|
@@ -116,7 +121,18 @@ export declare class Daemon extends EventEmitter {
|
|
|
116
121
|
private instanceState;
|
|
117
122
|
private instanceStateMachine;
|
|
118
123
|
private pendingWork;
|
|
124
|
+
/** Fallback safety sweep used only when no shared tmux control client exists. */
|
|
119
125
|
private instanceStateMonitorTimer;
|
|
126
|
+
private instanceStateIdleTimer;
|
|
127
|
+
private instanceStateStuckTimer;
|
|
128
|
+
private instanceStateOutputListener;
|
|
129
|
+
private instanceStateOutputEventName;
|
|
130
|
+
private instanceStateSafetyListener;
|
|
131
|
+
private instanceStateLastOutputAt;
|
|
132
|
+
private instanceStateIdleDebounceMs;
|
|
133
|
+
private instanceStateStuckTimeoutMs;
|
|
134
|
+
private instanceStateReadyPattern;
|
|
135
|
+
private instanceStateMonitorActive;
|
|
120
136
|
private statePollInFlight;
|
|
121
137
|
private autoPauseController;
|
|
122
138
|
private pauseRequested;
|
|
@@ -181,7 +197,16 @@ export declare class Daemon extends EventEmitter {
|
|
|
181
197
|
pause(): Promise<void>;
|
|
182
198
|
/** Respawn the CLI in the preserved window and block until its prompt is ready. */
|
|
183
199
|
wake(timeoutMs?: number): Promise<void>;
|
|
200
|
+
private applyInstanceStateSnapshot;
|
|
201
|
+
private clearInstanceStateIdleTimer;
|
|
202
|
+
private clearInstanceStateStuckTimer;
|
|
203
|
+
private scheduleInstanceStateStuckDeadline;
|
|
204
|
+
private scheduleInstanceStateIdleCapture;
|
|
205
|
+
private captureAndEvaluateInstanceState;
|
|
206
|
+
private handleInstancePaneOutput;
|
|
207
|
+
private bindInstanceStateOutputListener;
|
|
184
208
|
private startInstanceStateMonitor;
|
|
209
|
+
private stopInstanceStateMonitor;
|
|
185
210
|
private handleStuckTransition;
|
|
186
211
|
/** Stop every runtime poller/watcher while preserving IPC and daemon state. */
|
|
187
212
|
private freezeRuntimeMonitors;
|
package/dist/daemon.js
CHANGED
|
@@ -35,7 +35,10 @@ export function buildInstructionReloadNotice(binaryName, instanceName, instanceD
|
|
|
35
35
|
return `[system] Your AgEnD instructions have been updated. Reload only ${source}; do not scan other instruction directories. Do not reply to this message.`;
|
|
36
36
|
}
|
|
37
37
|
export const DEFAULT_STUCK_TIMEOUT_MS = 10 * 60_000;
|
|
38
|
-
export const
|
|
38
|
+
export const DEFAULT_STATE_IDLE_DEBOUNCE_MS = 2_000;
|
|
39
|
+
export const DEFAULT_STATE_SAFETY_SWEEP_MS = 60_000;
|
|
40
|
+
/** @deprecated State detection is event-driven; this now aliases the safety sweep. */
|
|
41
|
+
export const DEFAULT_STATE_POLL_INTERVAL_MS = DEFAULT_STATE_SAFETY_SWEEP_MS;
|
|
39
42
|
const LAST_INBOUND_FILE = "last-inbound-at";
|
|
40
43
|
/** Read the last real channel inbound timestamp persisted across daemon restarts. */
|
|
41
44
|
export function readLastInboundAt(instanceDir, now = Date.now()) {
|
|
@@ -142,6 +145,16 @@ export class PaneStateMachine {
|
|
|
142
145
|
}
|
|
143
146
|
return this.snapshot(now);
|
|
144
147
|
}
|
|
148
|
+
/** Record pane motion from tmux control mode without capturing pane content. */
|
|
149
|
+
recordOutput(now = Date.now()) {
|
|
150
|
+
this.lastPaneChangeAt = now;
|
|
151
|
+
this.lastObservedAt = now;
|
|
152
|
+
if (this.currentState !== "working") {
|
|
153
|
+
this.currentState = "working";
|
|
154
|
+
this.stateChangedAt = now;
|
|
155
|
+
}
|
|
156
|
+
return this.snapshot(now);
|
|
157
|
+
}
|
|
145
158
|
snapshot(now = Date.now()) {
|
|
146
159
|
return {
|
|
147
160
|
state: this.currentState,
|
|
@@ -275,7 +288,18 @@ export class Daemon extends EventEmitter {
|
|
|
275
288
|
instanceState = "idle";
|
|
276
289
|
instanceStateMachine = null;
|
|
277
290
|
pendingWork = new PendingWorkTracker();
|
|
291
|
+
/** Fallback safety sweep used only when no shared tmux control client exists. */
|
|
278
292
|
instanceStateMonitorTimer = null;
|
|
293
|
+
instanceStateIdleTimer = null;
|
|
294
|
+
instanceStateStuckTimer = null;
|
|
295
|
+
instanceStateOutputListener = null;
|
|
296
|
+
instanceStateOutputEventName = null;
|
|
297
|
+
instanceStateSafetyListener = null;
|
|
298
|
+
instanceStateLastOutputAt = 0;
|
|
299
|
+
instanceStateIdleDebounceMs = DEFAULT_STATE_IDLE_DEBOUNCE_MS;
|
|
300
|
+
instanceStateStuckTimeoutMs = DEFAULT_STUCK_TIMEOUT_MS;
|
|
301
|
+
instanceStateReadyPattern = null;
|
|
302
|
+
instanceStateMonitorActive = false;
|
|
279
303
|
statePollInFlight = false;
|
|
280
304
|
autoPauseController;
|
|
281
305
|
pauseRequested = false;
|
|
@@ -1242,68 +1266,184 @@ export class Daemon extends EventEmitter {
|
|
|
1242
1266
|
this.pauseWakeTransition = null;
|
|
1243
1267
|
}
|
|
1244
1268
|
}
|
|
1269
|
+
applyInstanceStateSnapshot(snapshot, pane) {
|
|
1270
|
+
const previous = this.instanceState;
|
|
1271
|
+
this.instanceState = snapshot.state;
|
|
1272
|
+
// Only a transition back to idle completes pending work. Repeated idle
|
|
1273
|
+
// observations between enqueue and paste must not clear a newer inbound.
|
|
1274
|
+
if (snapshot.state === "idle" && previous !== "idle") {
|
|
1275
|
+
this.pendingWork.recordIdle(snapshot.observedAt);
|
|
1276
|
+
}
|
|
1277
|
+
if (snapshot.state !== previous) {
|
|
1278
|
+
this.logger.info({
|
|
1279
|
+
previousState: previous,
|
|
1280
|
+
state: snapshot.state,
|
|
1281
|
+
unchangedForMs: snapshot.unchangedForMs,
|
|
1282
|
+
}, "Instance execution state changed");
|
|
1283
|
+
this.emit("instance_state", { name: this.name, ...snapshot });
|
|
1284
|
+
this.ipcServer?.broadcast({ type: "instance_state", instanceName: this.name, ...snapshot });
|
|
1285
|
+
if (snapshot.state === "stuck" && pane && this.instanceStateReadyPattern) {
|
|
1286
|
+
this.handleStuckTransition(pane, snapshot, this.instanceStateReadyPattern);
|
|
1287
|
+
}
|
|
1288
|
+
}
|
|
1289
|
+
if (snapshot.state !== "idle")
|
|
1290
|
+
this.pauseRequested = false;
|
|
1291
|
+
if (!this.pauseRequested && this.pasteQueueDepth === 0 && this.autoPauseController.observe(snapshot.state)) {
|
|
1292
|
+
this.pauseRequested = true;
|
|
1293
|
+
this.emit("auto_pause_requested", { name: this.name, idleSince: snapshot.stateChangedAt });
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
clearInstanceStateIdleTimer() {
|
|
1297
|
+
if (this.instanceStateIdleTimer)
|
|
1298
|
+
clearTimeout(this.instanceStateIdleTimer);
|
|
1299
|
+
this.instanceStateIdleTimer = null;
|
|
1300
|
+
}
|
|
1301
|
+
clearInstanceStateStuckTimer() {
|
|
1302
|
+
if (this.instanceStateStuckTimer)
|
|
1303
|
+
clearTimeout(this.instanceStateStuckTimer);
|
|
1304
|
+
this.instanceStateStuckTimer = null;
|
|
1305
|
+
}
|
|
1306
|
+
scheduleInstanceStateStuckDeadline(changeAt) {
|
|
1307
|
+
// Keep one deadline timer per instance. High-volume TUIs can emit hundreds
|
|
1308
|
+
// of %output records per second; replacing a long timeout for every chunk
|
|
1309
|
+
// would trade tmux subprocess CPU for timer churn.
|
|
1310
|
+
if (this.instanceStateStuckTimer)
|
|
1311
|
+
return;
|
|
1312
|
+
const delay = Math.max(0, changeAt + this.instanceStateStuckTimeoutMs - Date.now());
|
|
1313
|
+
this.instanceStateStuckTimer = setTimeout(() => {
|
|
1314
|
+
this.instanceStateStuckTimer = null;
|
|
1315
|
+
const latestChangeAt = this.instanceStateLastOutputAt || changeAt;
|
|
1316
|
+
if (latestChangeAt + this.instanceStateStuckTimeoutMs > Date.now()) {
|
|
1317
|
+
this.scheduleInstanceStateStuckDeadline(latestChangeAt);
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1320
|
+
void this.captureAndEvaluateInstanceState("stuck_deadline", this.instanceStateLastOutputAt);
|
|
1321
|
+
}, delay);
|
|
1322
|
+
}
|
|
1323
|
+
scheduleInstanceStateIdleCapture() {
|
|
1324
|
+
if (this.instanceStateIdleTimer)
|
|
1325
|
+
return;
|
|
1326
|
+
const expectedOutputAt = this.instanceStateLastOutputAt;
|
|
1327
|
+
const delay = Math.max(0, expectedOutputAt + this.instanceStateIdleDebounceMs - Date.now());
|
|
1328
|
+
this.instanceStateIdleTimer = setTimeout(() => {
|
|
1329
|
+
this.instanceStateIdleTimer = null;
|
|
1330
|
+
const latestOutputAt = this.instanceStateLastOutputAt;
|
|
1331
|
+
if (latestOutputAt > expectedOutputAt
|
|
1332
|
+
&& latestOutputAt + this.instanceStateIdleDebounceMs > Date.now()) {
|
|
1333
|
+
this.scheduleInstanceStateIdleCapture();
|
|
1334
|
+
return;
|
|
1335
|
+
}
|
|
1336
|
+
void this.captureAndEvaluateInstanceState("idle_debounce", latestOutputAt);
|
|
1337
|
+
}, delay);
|
|
1338
|
+
}
|
|
1339
|
+
async captureAndEvaluateInstanceState(reason, expectedOutputAt = 0) {
|
|
1340
|
+
if (!this.instanceStateMonitorActive || this.runtimeMonitorsFrozen || !this.tmux || !this.instanceStateMachine || this.spawning)
|
|
1341
|
+
return;
|
|
1342
|
+
if (this.statePollInFlight) {
|
|
1343
|
+
if (reason === "idle_debounce")
|
|
1344
|
+
this.scheduleInstanceStateIdleCapture();
|
|
1345
|
+
return;
|
|
1346
|
+
}
|
|
1347
|
+
this.statePollInFlight = true;
|
|
1348
|
+
const captureStartedAt = Date.now();
|
|
1349
|
+
try {
|
|
1350
|
+
const pane = await this.tmux.capturePane();
|
|
1351
|
+
// Output received while capture-pane was in flight makes this snapshot
|
|
1352
|
+
// stale. Its output handler has already armed a new debounce.
|
|
1353
|
+
if ((expectedOutputAt > 0 && this.instanceStateLastOutputAt > expectedOutputAt)
|
|
1354
|
+
|| (this.instanceStateLastOutputAt > 0 && this.instanceStateLastOutputAt >= captureStartedAt))
|
|
1355
|
+
return;
|
|
1356
|
+
const observedChangeAt = expectedOutputAt || captureStartedAt;
|
|
1357
|
+
this.instanceStateMachine.observe(pane, observedChangeAt);
|
|
1358
|
+
const snapshot = this.instanceStateMachine.observe(pane, Date.now());
|
|
1359
|
+
this.applyInstanceStateSnapshot(snapshot, pane);
|
|
1360
|
+
if (snapshot.state === "idle") {
|
|
1361
|
+
this.clearInstanceStateStuckTimer();
|
|
1362
|
+
}
|
|
1363
|
+
else if (snapshot.state === "working") {
|
|
1364
|
+
// If control mode missed the pane change, the safety capture becomes
|
|
1365
|
+
// the new progress timestamp and re-arms both deadlines.
|
|
1366
|
+
if (!expectedOutputAt)
|
|
1367
|
+
this.instanceStateLastOutputAt = captureStartedAt;
|
|
1368
|
+
this.scheduleInstanceStateStuckDeadline(this.instanceStateLastOutputAt || captureStartedAt);
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
catch (err) {
|
|
1372
|
+
this.logger.debug({ err: err.message, reason }, "Instance state capture failed");
|
|
1373
|
+
}
|
|
1374
|
+
finally {
|
|
1375
|
+
this.statePollInFlight = false;
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
handleInstancePaneOutput(event) {
|
|
1379
|
+
if (!this.instanceStateMonitorActive || this.runtimeMonitorsFrozen)
|
|
1380
|
+
return;
|
|
1381
|
+
const windowId = this.tmux?.getWindowId();
|
|
1382
|
+
if (!windowId || event.windowId !== windowId || !this.instanceStateMachine)
|
|
1383
|
+
return;
|
|
1384
|
+
this.instanceStateLastOutputAt = event.at;
|
|
1385
|
+
const snapshot = this.instanceStateMachine.recordOutput(event.at);
|
|
1386
|
+
this.applyInstanceStateSnapshot(snapshot);
|
|
1387
|
+
this.scheduleInstanceStateIdleCapture();
|
|
1388
|
+
this.scheduleInstanceStateStuckDeadline(event.at);
|
|
1389
|
+
}
|
|
1390
|
+
bindInstanceStateOutputListener(windowId) {
|
|
1391
|
+
if (!this.controlClient || !this.instanceStateMonitorActive)
|
|
1392
|
+
return;
|
|
1393
|
+
if (!this.instanceStateOutputListener) {
|
|
1394
|
+
this.instanceStateOutputListener = event => this.handleInstancePaneOutput(event);
|
|
1395
|
+
}
|
|
1396
|
+
if (this.instanceStateOutputEventName) {
|
|
1397
|
+
this.controlClient.removeListener(this.instanceStateOutputEventName, this.instanceStateOutputListener);
|
|
1398
|
+
}
|
|
1399
|
+
this.instanceStateOutputEventName = `output:${windowId}`;
|
|
1400
|
+
this.controlClient.on(this.instanceStateOutputEventName, this.instanceStateOutputListener);
|
|
1401
|
+
}
|
|
1245
1402
|
startInstanceStateMonitor() {
|
|
1246
|
-
if (this.runtimeMonitorsFrozen || !this.tmux || !this.backend || this.
|
|
1403
|
+
if (this.runtimeMonitorsFrozen || !this.tmux || !this.backend || this.instanceStateMonitorActive)
|
|
1247
1404
|
return;
|
|
1248
1405
|
const rawConfig = this.config.hang_detector;
|
|
1249
1406
|
const timeoutMinutes = rawConfig?.timeout_minutes;
|
|
1250
|
-
|
|
1407
|
+
this.instanceStateStuckTimeoutMs = typeof timeoutMinutes === "number" && timeoutMinutes > 0
|
|
1251
1408
|
? timeoutMinutes * 60_000
|
|
1252
1409
|
: DEFAULT_STUCK_TIMEOUT_MS;
|
|
1253
|
-
|
|
1254
|
-
? rawConfig.
|
|
1255
|
-
:
|
|
1256
|
-
|
|
1257
|
-
this.instanceStateMachine = new PaneStateMachine(
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
this.
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
this.
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
this.pauseRequested = false;
|
|
1291
|
-
if (!this.pauseRequested && this.pasteQueueDepth === 0 && this.autoPauseController.observe(snapshot.state)) {
|
|
1292
|
-
this.pauseRequested = true;
|
|
1293
|
-
this.emit("auto_pause_requested", { name: this.name, idleSince: snapshot.stateChangedAt });
|
|
1294
|
-
}
|
|
1295
|
-
}
|
|
1296
|
-
catch (err) {
|
|
1297
|
-
// A pane can disappear between status and capture during restart. Keep
|
|
1298
|
-
// the last known state and retry on the next poll.
|
|
1299
|
-
this.logger.debug({ err: err.message }, "Instance state poll failed");
|
|
1300
|
-
}
|
|
1301
|
-
finally {
|
|
1302
|
-
this.statePollInFlight = false;
|
|
1303
|
-
}
|
|
1304
|
-
};
|
|
1305
|
-
void poll();
|
|
1306
|
-
this.instanceStateMonitorTimer = setInterval(() => { void poll(); }, pollIntervalMs);
|
|
1410
|
+
this.instanceStateIdleDebounceMs = typeof rawConfig?.idle_debounce_ms === "number" && rawConfig.idle_debounce_ms >= 0
|
|
1411
|
+
? rawConfig.idle_debounce_ms
|
|
1412
|
+
: DEFAULT_STATE_IDLE_DEBOUNCE_MS;
|
|
1413
|
+
this.instanceStateReadyPattern = this.backend.getReadyPattern();
|
|
1414
|
+
this.instanceStateMachine = new PaneStateMachine(this.instanceStateReadyPattern, this.instanceStateStuckTimeoutMs);
|
|
1415
|
+
this.instanceStateLastOutputAt = 0;
|
|
1416
|
+
this.instanceStateMonitorActive = true;
|
|
1417
|
+
if (this.controlClient) {
|
|
1418
|
+
this.instanceStateSafetyListener = () => { void this.captureAndEvaluateInstanceState("safety_sweep"); };
|
|
1419
|
+
this.bindInstanceStateOutputListener(this.tmux.getWindowId());
|
|
1420
|
+
this.controlClient.on("safety_sweep", this.instanceStateSafetyListener);
|
|
1421
|
+
}
|
|
1422
|
+
else {
|
|
1423
|
+
// Standalone/test fallback. Fleet production uses the one shared control
|
|
1424
|
+
// client and therefore one fleet-level safety sweep instead of N timers.
|
|
1425
|
+
this.instanceStateMonitorTimer = setInterval(() => {
|
|
1426
|
+
void this.captureAndEvaluateInstanceState("safety_sweep");
|
|
1427
|
+
}, DEFAULT_STATE_SAFETY_SWEEP_MS);
|
|
1428
|
+
}
|
|
1429
|
+
void this.captureAndEvaluateInstanceState("initial");
|
|
1430
|
+
}
|
|
1431
|
+
stopInstanceStateMonitor() {
|
|
1432
|
+
this.instanceStateMonitorActive = false;
|
|
1433
|
+
this.clearInstanceStateIdleTimer();
|
|
1434
|
+
this.clearInstanceStateStuckTimer();
|
|
1435
|
+
if (this.instanceStateMonitorTimer)
|
|
1436
|
+
clearInterval(this.instanceStateMonitorTimer);
|
|
1437
|
+
this.instanceStateMonitorTimer = null;
|
|
1438
|
+
if (this.controlClient && this.instanceStateOutputListener && this.instanceStateOutputEventName) {
|
|
1439
|
+
this.controlClient.removeListener(this.instanceStateOutputEventName, this.instanceStateOutputListener);
|
|
1440
|
+
}
|
|
1441
|
+
if (this.controlClient && this.instanceStateSafetyListener) {
|
|
1442
|
+
this.controlClient.removeListener("safety_sweep", this.instanceStateSafetyListener);
|
|
1443
|
+
}
|
|
1444
|
+
this.instanceStateOutputListener = null;
|
|
1445
|
+
this.instanceStateOutputEventName = null;
|
|
1446
|
+
this.instanceStateSafetyListener = null;
|
|
1307
1447
|
}
|
|
1308
1448
|
handleStuckTransition(pane, snapshot, readyPattern) {
|
|
1309
1449
|
const deterministicReadyPattern = new RegExp(readyPattern.source, readyPattern.flags.replace(/[gy]/g, ""));
|
|
@@ -1333,10 +1473,7 @@ export class Daemon extends EventEmitter {
|
|
|
1333
1473
|
clearInterval(this.errorMonitorTimer);
|
|
1334
1474
|
this.errorMonitorTimer = null;
|
|
1335
1475
|
}
|
|
1336
|
-
|
|
1337
|
-
clearInterval(this.instanceStateMonitorTimer);
|
|
1338
|
-
this.instanceStateMonitorTimer = null;
|
|
1339
|
-
}
|
|
1476
|
+
this.stopInstanceStateMonitor();
|
|
1340
1477
|
this.transcriptMonitor?.stop();
|
|
1341
1478
|
this.guardian?.stop();
|
|
1342
1479
|
}
|
|
@@ -1607,6 +1744,7 @@ export class Daemon extends EventEmitter {
|
|
|
1607
1744
|
this.tmux = new TmuxManager(this.tmuxSessionName, match.id);
|
|
1608
1745
|
writeFileSync(join(this.instanceDir, "window-id"), match.id);
|
|
1609
1746
|
await this.controlClient?.registerWindow(match.id);
|
|
1747
|
+
this.bindInstanceStateOutputListener(match.id);
|
|
1610
1748
|
this.logger.info({ windowId: match.id }, "Recovered window ID for message delivery");
|
|
1611
1749
|
return match.id;
|
|
1612
1750
|
}
|
|
@@ -2132,6 +2270,7 @@ export class Daemon extends EventEmitter {
|
|
|
2132
2270
|
}
|
|
2133
2271
|
// Register with control client and wait for output + idle
|
|
2134
2272
|
await this.controlClient?.registerWindow(windowId);
|
|
2273
|
+
this.bindInstanceStateOutputListener(windowId);
|
|
2135
2274
|
if (this.controlClient) {
|
|
2136
2275
|
const total = startupTimeoutMs ?? this.config.startup_timeout_ms ?? 25_000;
|
|
2137
2276
|
const outputTimeout = Math.round(total * 0.6);
|