sensorium-mcp 3.1.0-refactor.19 → 3.1.0-refactor.21
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/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -3
- package/dist/config/index.js.map +1 -1
- package/dist/config/settings-store.d.ts.map +1 -1
- package/dist/config/settings-store.js +2 -3
- package/dist/config/settings-store.js.map +1 -1
- package/dist/dashboard/routes/threads-read.d.ts.map +1 -1
- package/dist/dashboard/routes/threads-read.js +7 -2
- package/dist/dashboard/routes/threads-read.js.map +1 -1
- package/dist/dashboard/routes/threads.d.ts.map +1 -1
- package/dist/dashboard/routes/threads.js +12 -3
- package/dist/dashboard/routes/threads.js.map +1 -1
- package/dist/data/daily-marker.js +3 -3
- package/dist/data/daily-marker.js.map +1 -1
- package/dist/data/file-storage.d.ts.map +1 -1
- package/dist/data/file-storage.js +3 -3
- package/dist/data/file-storage.js.map +1 -1
- package/dist/data/memory/bootstrap.d.ts.map +1 -1
- package/dist/data/memory/bootstrap.js +2 -3
- package/dist/data/memory/bootstrap.js.map +1 -1
- package/dist/data/memory/migration-runner.d.ts.map +1 -1
- package/dist/data/memory/migration-runner.js +2 -3
- package/dist/data/memory/migration-runner.js.map +1 -1
- package/dist/data/memory/schema.js +2 -2
- package/dist/data/memory/schema.js.map +1 -1
- package/dist/index.js +7 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/paths.d.ts +29 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +36 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +44 -15
- package/dist/server/http-server.js.map +1 -1
- package/dist/services/agent-spawn.service.d.ts.map +1 -1
- package/dist/services/agent-spawn.service.js +18 -3
- package/dist/services/agent-spawn.service.js.map +1 -1
- package/dist/services/background-runner.d.ts.map +1 -1
- package/dist/services/background-runner.js +18 -2
- package/dist/services/background-runner.js.map +1 -1
- package/dist/services/broker-client.d.ts +29 -1
- package/dist/services/broker-client.d.ts.map +1 -1
- package/dist/services/broker-client.js +36 -0
- package/dist/services/broker-client.js.map +1 -1
- package/dist/services/dispatcher/broker.js +2 -2
- package/dist/services/dispatcher/broker.js.map +1 -1
- package/dist/services/dispatcher/lock.js +2 -2
- package/dist/services/dispatcher/lock.js.map +1 -1
- package/dist/services/flight-recorder.service.d.ts.map +1 -1
- package/dist/services/flight-recorder.service.js +2 -3
- package/dist/services/flight-recorder.service.js.map +1 -1
- package/dist/services/keeper.service.d.ts.map +1 -1
- package/dist/services/keeper.service.js +15 -7
- package/dist/services/keeper.service.js.map +1 -1
- package/dist/services/maintenance-signal.d.ts.map +1 -1
- package/dist/services/maintenance-signal.js +2 -3
- package/dist/services/maintenance-signal.js.map +1 -1
- package/dist/services/process.service.d.ts +38 -1
- package/dist/services/process.service.d.ts.map +1 -1
- package/dist/services/process.service.js +122 -11
- package/dist/services/process.service.js.map +1 -1
- package/dist/services/reconnect-snapshot.service.js +2 -2
- package/dist/services/reconnect-snapshot.service.js.map +1 -1
- package/dist/services/scheduler.d.ts.map +1 -1
- package/dist/services/scheduler.js +2 -2
- package/dist/services/scheduler.js.map +1 -1
- package/dist/services/self-update.service.js +2 -2
- package/dist/services/self-update.service.js.map +1 -1
- package/dist/services/spawn-common.d.ts.map +1 -1
- package/dist/services/spawn-common.js +3 -3
- package/dist/services/spawn-common.js.map +1 -1
- package/dist/services/spawn-exit-watcher.d.ts +23 -12
- package/dist/services/spawn-exit-watcher.d.ts.map +1 -1
- package/dist/services/spawn-exit-watcher.js +57 -32
- package/dist/services/spawn-exit-watcher.js.map +1 -1
- package/dist/services/thread-health.service.d.ts.map +1 -1
- package/dist/services/thread-health.service.js +6 -2
- package/dist/services/thread-health.service.js.map +1 -1
- package/dist/services/thread-lifecycle.service.js +2 -2
- package/dist/services/thread-lifecycle.service.js.map +1 -1
- package/dist/services/worker-cleanup.service.d.ts.map +1 -1
- package/dist/services/worker-cleanup.service.js +22 -13
- package/dist/services/worker-cleanup.service.js.map +1 -1
- package/dist/test-bootstrap.d.ts +39 -0
- package/dist/test-bootstrap.d.ts.map +1 -0
- package/dist/test-bootstrap.js +78 -0
- package/dist/test-bootstrap.js.map +1 -0
- package/dist/tools/delegate-tool.d.ts.map +1 -1
- package/dist/tools/delegate-tool.js +34 -3
- package/dist/tools/delegate-tool.js.map +1 -1
- package/dist/tools/wait/message-delivery.d.ts.map +1 -1
- package/dist/tools/wait/message-delivery.js +1 -2
- package/dist/tools/wait/message-delivery.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-exit-watcher.d.ts","sourceRoot":"","sources":["../../src/services/spawn-exit-watcher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spawn-exit-watcher.d.ts","sourceRoot":"","sources":["../../src/services/spawn-exit-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAqBH,MAAM,WAAW,YAAY;IAC3B;+EAC2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3C;AAUD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAM9D;AA4DD,kBAAkB;AAClB,wBAAgB,eAAe,IAAI,IAAI,CAMtC;AACD,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD;AACD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AACD;sBACsB;AACtB,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEhE"}
|
|
@@ -5,25 +5,46 @@
|
|
|
5
5
|
* broker-spawned process is the SUPERVISOR's child, so the MCP has no handle to
|
|
6
6
|
* wait on. Communication is strictly one-way (MCP → supervisor — hard
|
|
7
7
|
* criterion), so the supervisor cannot push the event either. Instead this
|
|
8
|
-
* watcher polls
|
|
9
|
-
* traffic while the child is alive and no child process ever spawned), then the
|
|
10
|
-
* broker for the identity-checked verdict + the exit code its handle-wait
|
|
11
|
-
* recorded in the registry.
|
|
8
|
+
* watcher polls.
|
|
12
9
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
10
|
+
* Liveness is JOB-based, keyed on the THREAD — never the raw pid the broker
|
|
11
|
+
* returned at spawn. On Windows both claude.exe and copilot.exe are LAUNCHERS:
|
|
12
|
+
* they fork the real agent (a node child with a different pid) into the thread's
|
|
13
|
+
* job, then the launcher exits. Watching the launcher pid is the liveness
|
|
14
|
+
* regression this replaces — it fired a bogus "exited" the moment the launcher
|
|
15
|
+
* died, decommissioning the still-working child. The worker is "exited" only
|
|
16
|
+
* when its JOB has drained (`/proc/alive?threadId=`), which the broker confirms
|
|
17
|
+
* by recording a terminal ledger row once no member remains.
|
|
18
|
+
*
|
|
19
|
+
* Degradation: broker unreachable → "cannot confirm → treat alive" (the
|
|
20
|
+
* audited-safe direction); the watch is kept, never resolved. A slow cold start
|
|
21
|
+
* (~50s for Copilot) keeps its launcher as a live job member, so it reports
|
|
22
|
+
* alive throughout; a first-connect grace additionally refuses to resolve an
|
|
23
|
+
* UNCONFIRMED "gone" until it elapses, so the degraded no-job path can't misfire
|
|
24
|
+
* during a slow start. A broker-CONFIRMED exit resolves immediately regardless.
|
|
25
|
+
* A watched thread is only resolved ONCE.
|
|
16
26
|
*/
|
|
17
27
|
import { log } from "../lib/logger.js";
|
|
18
28
|
import { errorMessage } from "../lib/utils.js";
|
|
19
|
-
import {
|
|
29
|
+
import { brokerCheckAliveByThread } from "./broker-client.js";
|
|
20
30
|
const SWEEP_INTERVAL_MS = 20_000;
|
|
31
|
+
/** Cold start can be ~50s (Copilot); hold any UNCONFIRMED "gone" until this
|
|
32
|
+
* elapses so a slow start is never judged dead. A broker-confirmed terminal
|
|
33
|
+
* exit bypasses it — fast-exit respawn depends on prompt, accurate reporting. */
|
|
34
|
+
let firstConnectGraceMs = 90_000;
|
|
35
|
+
/** Ledger states that mean the worker is truly, confirmedly gone. NOTE:
|
|
36
|
+
* "kill-failed" is deliberately excluded — it means the kill FAILED and the
|
|
37
|
+
* process may still be ALIVE (e.g. the uncontained Avecto jobAssignFailed path).
|
|
38
|
+
* Treating it as terminal would confirm the death of a live worker and orphan it;
|
|
39
|
+
* instead it falls through to the first-connect grace path. Only a broker-recorded
|
|
40
|
+
* "exited"/"killed" is proof the worker is gone. */
|
|
41
|
+
const CONFIRMED_EXIT_STATES = new Set(["exited", "killed"]);
|
|
21
42
|
const watched = new Map();
|
|
22
43
|
let timer = null;
|
|
23
44
|
let sweepInFlight = false;
|
|
24
|
-
/** Register a broker-spawned
|
|
45
|
+
/** Register a broker-spawned thread for exit detection. Keyed by threadId. */
|
|
25
46
|
export function watchBrokerSpawnExit(entry) {
|
|
26
|
-
watched.set(entry.
|
|
47
|
+
watched.set(entry.threadId, { ...entry, watchedSince: Date.now() });
|
|
27
48
|
if (timer === null) {
|
|
28
49
|
timer = setInterval(() => void sweep(), SWEEP_INTERVAL_MS);
|
|
29
50
|
timer.unref();
|
|
@@ -39,7 +60,7 @@ async function sweep() {
|
|
|
39
60
|
await checkOne(entry);
|
|
40
61
|
}
|
|
41
62
|
catch (err) {
|
|
42
|
-
log.warn(`[exit-watch] sweep failed for
|
|
63
|
+
log.warn(`[exit-watch] sweep failed for thread ${entry.threadId} (pid ${entry.pid}): ${errorMessage(err)}`);
|
|
43
64
|
}
|
|
44
65
|
}
|
|
45
66
|
}
|
|
@@ -52,32 +73,31 @@ async function sweep() {
|
|
|
52
73
|
}
|
|
53
74
|
}
|
|
54
75
|
async function checkOne(entry) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
if (err.code !== "EPERM")
|
|
62
|
-
locallyDead = true;
|
|
63
|
-
}
|
|
64
|
-
// 2. Broker verdict — identity-checked, and carries the recorded exit code.
|
|
65
|
-
const verdict = await brokerCheckAlive(entry.pid, entry.startedAtMs, entry.startTimeTicks);
|
|
66
|
-
if (verdict !== null) {
|
|
67
|
-
if (verdict.alive)
|
|
68
|
-
return; // definitely alive (kill(0) can lie on Windows; this can't)
|
|
69
|
-
resolveExit(entry, verdict.exitCode ?? null, verdict.registryState ?? undefined);
|
|
76
|
+
const verdict = await brokerCheckAliveByThread(entry.threadId);
|
|
77
|
+
// Broker unreachable → cannot confirm the job is empty → treat as alive. A dead
|
|
78
|
+
// launcher pid is NEVER, on its own, evidence the worker died (that was the bug).
|
|
79
|
+
if (verdict === null)
|
|
70
80
|
return;
|
|
81
|
+
if (verdict.known && verdict.alive)
|
|
82
|
+
return; // job still has a live member
|
|
83
|
+
// Not alive. Resolve immediately only when the broker has CONFIRMED the worker is
|
|
84
|
+
// gone — its handle-wait recorded a terminal row once the job drained. Otherwise
|
|
85
|
+
// (a 'running'/'superseded' row still pending, an unknown thread, or the degraded
|
|
86
|
+
// no-job path) hold until the first-connect grace elapses, so a slow cold start is
|
|
87
|
+
// never mistaken for a death.
|
|
88
|
+
const confirmed = verdict.registryState != null && CONFIRMED_EXIT_STATES.has(verdict.registryState);
|
|
89
|
+
const graceElapsed = Date.now() - entry.watchedSince >= firstConnectGraceMs;
|
|
90
|
+
if (confirmed) {
|
|
91
|
+
resolveExit(entry, verdict.exitCode ?? null, verdict.registryState ?? undefined);
|
|
92
|
+
}
|
|
93
|
+
else if (graceElapsed) {
|
|
94
|
+
resolveExit(entry, verdict.exitCode ?? null, "grace-window-elapsed");
|
|
71
95
|
}
|
|
72
|
-
// Broker unreachable: only the local definitive signal may resolve the watch —
|
|
73
|
-
// "cannot confirm" must never count as an exit.
|
|
74
|
-
if (locallyDead)
|
|
75
|
-
resolveExit(entry, null, "broker-unreachable");
|
|
76
96
|
}
|
|
77
97
|
function resolveExit(entry, exitCode, source) {
|
|
78
|
-
if (!watched.delete(entry.
|
|
98
|
+
if (!watched.delete(entry.threadId))
|
|
79
99
|
return; // already resolved
|
|
80
|
-
log.info(`[exit-watch] broker-spawned
|
|
100
|
+
log.info(`[exit-watch] broker-spawned thread ${entry.threadId} (pid ${entry.pid}) exited: code ${exitCode ?? "unknown"}${source ? ` (${source})` : ""}`);
|
|
81
101
|
try {
|
|
82
102
|
entry.onExit(exitCode);
|
|
83
103
|
}
|
|
@@ -99,4 +119,9 @@ export function sweepOnceForTest() {
|
|
|
99
119
|
export function watchedCountForTest() {
|
|
100
120
|
return watched.size;
|
|
101
121
|
}
|
|
122
|
+
/** Shrink (or restore, with null) the first-connect grace so grace-path tests
|
|
123
|
+
* don't wait 90s. */
|
|
124
|
+
export function setExitWatchGraceForTest(ms) {
|
|
125
|
+
firstConnectGraceMs = ms ?? 90_000;
|
|
126
|
+
}
|
|
102
127
|
//# sourceMappingURL=spawn-exit-watcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-exit-watcher.js","sourceRoot":"","sources":["../../src/services/spawn-exit-watcher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spawn-exit-watcher.js","sourceRoot":"","sources":["../../src/services/spawn-exit-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-health.service.d.ts","sourceRoot":"","sources":["../../src/services/thread-health.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAS7D,KAAK,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/D,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"thread-health.service.d.ts","sourceRoot":"","sources":["../../src/services/thread-health.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAS7D,KAAK,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/D,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;CACpB;AA+FD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,YAAY,CAarE;AAED,0FAA0F;AAC1F,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,MAAM,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IAC9B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA+BD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,EAClD,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAmEjB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAllRegisteredTopics } from "../sessions/topic-registry.js";
|
|
2
2
|
import { getDashboardSessions, WAIT_LIVENESS_MS } from "../sessions/dashboard-registry.js";
|
|
3
3
|
import { getAllThreads } from "../data/memory/thread-registry.js";
|
|
4
|
-
import {
|
|
4
|
+
import { isThreadAlive, readPidFiles, spawnedThreads, } from "./process.service.js";
|
|
5
5
|
import { log } from "../lib/logger.js";
|
|
6
6
|
const formatRelativeTime = (ms) => ms < 0
|
|
7
7
|
? "just now"
|
|
@@ -77,8 +77,12 @@ async function collectThreadData(getMemoryDb) {
|
|
|
77
77
|
threadId,
|
|
78
78
|
name: threadNames.get(threadId) ?? regEntry?.name ?? "unnamed",
|
|
79
79
|
pid,
|
|
80
|
+
// THREAD-scoped so a broker-spawned worker isn't shown dead ~20s after
|
|
81
|
+
// spawn (its launcher pid exits while the forked child keeps running in the
|
|
82
|
+
// job). Only consult the broker for threads that actually have a pid, so a
|
|
83
|
+
// pid-less topic/session row costs no broker round-trip.
|
|
80
84
|
alive: pid !== undefined &&
|
|
81
|
-
(await
|
|
85
|
+
(await isThreadAlive(threadId, pid, spawnedEntry?.startedAt ?? pidFileEntry?.startedAt)),
|
|
82
86
|
hasActiveSession: !!activeSession,
|
|
83
87
|
hasRecentWait: anySession?.lastWaitCallAt != null && now - anySession.lastWaitCallAt < WAIT_LIVENESS_MS,
|
|
84
88
|
sessionCount: threadSessions.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-health.service.js","sourceRoot":"","sources":["../../src/services/thread-health.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,aAAa,EAA4B,MAAM,mCAAmC,CAAC;AAE5F,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"thread-health.service.js","sourceRoot":"","sources":["../../src/services/thread-health.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,aAAa,EAA4B,MAAM,mCAAmC,CAAC;AAE5F,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAkBvC,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAE,EAAE,CACxC,EAAE,GAAG,CAAC;IACJ,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,EAAE,GAAG,MAAM;QACX,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO;QACjC,CAAC,CAAC,EAAE,GAAG,SAAS;YACd,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO;YACnC,CAAC,CAAC,EAAE,GAAG,UAAU;gBACf,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO;gBACtC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;AAClD,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,KAAK,GAAG,EAAE,GAAG,CAAC;AACjG,CAAC,CAAC;AAEF,KAAK,UAAU,iBAAiB,CAC9B,WAAkD;IAElD,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAChE,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,mDAAmD,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC3C,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ;QAAE,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI;YAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjG,KAAK,MAAM,CAAC,IAAI,cAAc;QAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI;YAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC5D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI;YAAE,SAAS;QACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACvC,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,YAAY,EAAE,GAAG,IAAI,YAAY,EAAE,GAAG,CAAC;QACnD,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,aAAa,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO;YACL,QAAQ;YACR,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,IAAI,IAAI,SAAS;YAC9D,GAAG;YACH,uEAAuE;YACvE,4EAA4E;YAC5E,2EAA2E;YAC3E,yDAAyD;YACzD,KAAK,EACH,GAAG,KAAK,SAAS;gBACjB,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,IAAI,YAAY,EAAE,SAAS,CAAC,CAAC;YAC1F,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,aAAa,EACX,UAAU,EAAE,cAAc,IAAI,IAAI,IAAI,GAAG,GAAG,UAAU,CAAC,cAAc,GAAG,gBAAgB;YAC1F,YAAY,EAAE,cAAc,CAAC,MAAM;YACnC,YAAY,EACV,UAAU,EAAE,YAAY;gBACxB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,gBAAgB,EAAE,YAAY,EAAE,SAAS;YACzC,cAAc,EAAE,QAAQ,EAAE,MAAM;YAChC,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,KAAK;SACxC,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAkB;IACrD,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,aAAa,CAAC;QAC/F,OAAO,SAAS,CAAC;IACnB,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IACnD,IACE,CAAC,CAAC,cAAc,KAAK,UAAU;QAC/B,CAAC,CAAC,cAAc,KAAK,SAAS;QAC9B,CAAC,CAAC,cAAc,KAAK,QAAQ;QAE7B,OAAO,MAAM,CAAC;IAChB,IAAI,CAAC,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,SAAS,CAAC;AACnB,CAAC;AAYD,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,YAAY,GAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/E,MAAM,aAAa,GAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE7D;;;sFAGsF;AACtF,SAAS,YAAY,CAAC,GAAuB;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,oBAAoB,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;kFACkF;AAClF,SAAS,WAAW,CAAC,GAAwB;IAC3C,OAAO,GAAG,KAAK,IAAI,IAAK,GAAe,KAAK,MAAM,CAAC;AACrD,CAAC;AAED;kFACkF;AAClF,SAAS,aAAa,CAAC,GAAmC;IACxD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,GAAG,KAAK,KAAK,IAAK,YAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1E,GAAG,CAAC,KAAK,CAAC,mDAAmD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAkD,EAClD,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QACtB,OAAO,2EAA2E,CAAC;IACrF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QAClC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC/B,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;QAC9C,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;QAC7E,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;QAClF,MAAM,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG;KAC/E,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAA2B,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,eAAe,GACnB,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK;QACtC,CAAC,CAAC,CAAC,MAAM,CAAC;QACV,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,WAAW;YAC/B,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,aAAa,CAAC;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAU,CAClE,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM;aACrB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,uEAAuE;QACvE,4EAA4E;QAC5E,qDAAqD;QACrD,MAAM,IAAI,GACR,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK;YACtC,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,uCAAuC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,eAAe,SAAS,OAAO,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,gCAAgC,KAAK,EAAE,CAAC,CAAC;IAE3F,OAAO;QACL,yBAAyB;QACzB,EAAE;QACF,wEAAwE;QACxE,wEAAwE;QACxE,GAAG,IAAI,CAAC,GAAG,CACT,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,IAAI,CAC5G;QACD,EAAE;QACF,gBAAgB,OAAO,CAAC,MAAM,qBAAqB,OAAO,CAAC,SAAS,CAAC,aAAa,OAAO,CAAC,SAAS,CAAC,aAAa,OAAO,CAAC,MAAM,CAAC,UAAU,OAAO,CAAC,SAAS,CAAC,UAAU;QACtK,6EAA6E;QAC7E,oEAAoE;QACpE,aAAa,IAAI,CAAC,MAAM,OAAO,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { unlinkSync } from "node:fs";
|
|
2
|
-
import { homedir } from "node:os";
|
|
3
2
|
import { join } from "node:path";
|
|
3
|
+
import { dataDir } from "../lib/paths.js";
|
|
4
4
|
export var ThreadState;
|
|
5
5
|
(function (ThreadState) {
|
|
6
6
|
ThreadState["Created"] = "created";
|
|
@@ -37,7 +37,7 @@ const VALID_TRANSITIONS = {
|
|
|
37
37
|
[ThreadState.Expired]: new Set([ThreadState.Archived]),
|
|
38
38
|
};
|
|
39
39
|
function cleanupThreadFiles(threadId) {
|
|
40
|
-
const base =
|
|
40
|
+
const base = dataDir();
|
|
41
41
|
for (const filePath of [
|
|
42
42
|
join(base, "heartbeats", `${threadId}`),
|
|
43
43
|
join(base, "schedules", `${threadId}.json`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-lifecycle.service.js","sourceRoot":"","sources":["../../src/services/thread-lifecycle.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"thread-lifecycle.service.js","sourceRoot":"","sources":["../../src/services/thread-lifecycle.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-cleanup.service.d.ts","sourceRoot":"","sources":["../../src/services/worker-cleanup.service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAe,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAyBzF,eAAO,MAAM,eAAe,QAGxB,CAAC;AAQL;;;qFAGqF;AACrF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;oFAGoF;AACpF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,EAAE,EAAE,UAAU,CAAC,cAAc,yBAAyB,EAAE,YAAY,CAAC,CAAC;IACtE,QAAQ,EAAE;QAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,sBAAsB,CAAC;CACzC,GACA,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"worker-cleanup.service.d.ts","sourceRoot":"","sources":["../../src/services/worker-cleanup.service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAe,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAyBzF,eAAO,MAAM,eAAe,QAGxB,CAAC;AAQL;;;qFAGqF;AACrF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;oFAGoF;AACpF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,EAAE,EAAE,UAAU,CAAC,cAAc,yBAAyB,EAAE,YAAY,CAAC,CAAC;IACtE,QAAQ,EAAE;QAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,sBAAsB,CAAC;CACzC,GACA,OAAO,CAAC,IAAI,CAAC,CA+Ff;AAoED,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAqEpD,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,UAAU,CAAC,cAAc,yBAAyB,EAAE,YAAY,CAAC,EACrE,QAAQ,EAAE;IACR,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,WAAW,CAAC,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB,EACD,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,sBAAsB,EACvC,KAAK,GAAE,MAA8B,GACpC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkThD"}
|
|
@@ -4,7 +4,7 @@ import { archiveNotesForThread } from "../data/memory/note-archival.js";
|
|
|
4
4
|
import { closeThreadSessions } from "../sessions/mcp-registry.js";
|
|
5
5
|
import { getExplicitTelegramTopicId, updateThread } from "../data/memory/thread-registry.js";
|
|
6
6
|
import { errorMessage } from "../lib/utils.js";
|
|
7
|
-
import { spawnedThreads, readPidFiles,
|
|
7
|
+
import { spawnedThreads, readPidFiles, killThreadTree, isThreadAlive, clearTaskConsumed, deletePendingTaskMailbox, PROCESS_BASE_DIR, } from "./process.service.js";
|
|
8
8
|
import { ThreadState } from "./thread-lifecycle.service.js";
|
|
9
9
|
import { log } from "../lib/logger.js";
|
|
10
10
|
/** True when a deleteForumTopic error means the topic is already gone — which is
|
|
@@ -71,16 +71,20 @@ export async function decommissionWorker(thread, deps) {
|
|
|
71
71
|
// (The old kill-retry circuit breaker is gone with the taskkill machinery:
|
|
72
72
|
// a kill is now one localhost HTTP call to the broker, so re-issuing it each
|
|
73
73
|
// sweep can no longer starve anything.)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
// Kill by THREAD, not by the recorded pid: a launcher-forked worker's pid is the
|
|
75
|
+
// already-exited launcher, and KillByPid(launcher) hits the broker's AlreadyDead
|
|
76
|
+
// fast-path without ever touching the live forked child. Routing by threadId
|
|
77
|
+
// job-kills the real agent. (No-op if already gone.)
|
|
78
|
+
await killThreadTree(thread.threadId, "decommission", thread.pid, thread.startedAt);
|
|
77
79
|
// 2. Tear down MCP transport(s) ONLY once the process is confirmed dead. A dead
|
|
78
80
|
// process's socket is already gone, so this is bookkeeping (and marks the
|
|
79
81
|
// close expected so http-server's onclose does not re-kill). If the kill
|
|
80
82
|
// EPERM-failed and the agent is still alive, LEAVE the transport OPEN so the
|
|
81
83
|
// live agent stays connected and functional instead of being orphaned — an
|
|
82
84
|
// idle unkillable worker simply stays parked in wait, which is harmless.
|
|
83
|
-
|
|
85
|
+
// THREAD-scoped liveness: gate teardown on the broker's job verdict, never on the
|
|
86
|
+
// stale launcher pid (which reads dead ~20s post-spawn and would orphan a live child).
|
|
87
|
+
const processGone = !(await isThreadAlive(thread.threadId, thread.pid, thread.startedAt));
|
|
84
88
|
if (processGone) {
|
|
85
89
|
// Process confirmed gone — drop the unkillable anchor and the breaker entry so
|
|
86
90
|
// neither outlives the thread (and a future thread reusing this id starts clean).
|
|
@@ -310,13 +314,15 @@ export async function cleanupExpiredWorkers(db, telegram, chatId, threadLifecycl
|
|
|
310
314
|
// self-exit — it orphans it (alive, but no MCP connection → wedged). So
|
|
311
315
|
// confirm death via the kill, then tear the transport down only in the
|
|
312
316
|
// confirmed-dead branch below.
|
|
313
|
-
|
|
314
|
-
|
|
317
|
+
// Kill by THREAD (job kill of the real forked child); the recorded pid is
|
|
318
|
+
// only a degraded-path fallback when the broker is unreachable.
|
|
319
|
+
await killThreadTree(row.thread_id, "worker-cleanup-expired", killPid, killStartedAt);
|
|
315
320
|
// Invariant: a worker's topic is deleted ONLY when its process is confirmed
|
|
316
321
|
// gone. If the kill left it alive (EPERM on a wedged child), defer topic
|
|
317
322
|
// deletion to the backstop reaper below, which re-checks liveness — deleting
|
|
318
|
-
// here would orphan the topic of a still-running worker.
|
|
319
|
-
|
|
323
|
+
// here would orphan the topic of a still-running worker. Gate on the broker's
|
|
324
|
+
// thread verdict, not the launcher pid.
|
|
325
|
+
const processGone = !(await isThreadAlive(row.thread_id, killPid, killStartedAt));
|
|
320
326
|
if (processGone) {
|
|
321
327
|
// Confirmed dead — its socket is already gone, so closing the transport
|
|
322
328
|
// is bookkeeping (and marks the close expected). Safe now.
|
|
@@ -447,7 +453,9 @@ export async function cleanupExpiredWorkers(db, telegram, chatId, threadLifecycl
|
|
|
447
453
|
const runnable = row?.status === "active" && !pastTtl;
|
|
448
454
|
if (runnable)
|
|
449
455
|
continue;
|
|
450
|
-
|
|
456
|
+
// THREAD-scoped: the launcher pid reads dead while the forked child lives, so
|
|
457
|
+
// a pid-first check here would finalize (topic-delete + archive) a live worker.
|
|
458
|
+
if (!(await isThreadAlive(entry.threadId, entry.pid, entry.startedAt))) {
|
|
451
459
|
clearUnkillableAttempt(entry.threadId);
|
|
452
460
|
// Process is confirmed dead but its topic/registry can still linger (a
|
|
453
461
|
// zombie whose exit handler never ran). This is the invariant-safe point
|
|
@@ -462,14 +470,15 @@ export async function cleanupExpiredWorkers(db, telegram, chatId, threadLifecycl
|
|
|
462
470
|
// not kill does not make a mid-task agent self-exit — it ORPHANS it (alive,
|
|
463
471
|
// but with no MCP connection → wedged forever). So kill first; only once the
|
|
464
472
|
// process is confirmed dead (below) do we tear the transport down.
|
|
465
|
-
await
|
|
466
|
-
//
|
|
473
|
+
await killThreadTree(entry.threadId, "worker-cleanup-reap", entry.pid, entry.startedAt);
|
|
474
|
+
// killThreadTree resolves even when the kill FAILS (e.g. EPERM on a
|
|
467
475
|
// Windows claude.exe whose wedged bash.exe child makes taskkill /T a
|
|
468
476
|
// no-op). Re-check liveness before claiming success — otherwise we log a
|
|
469
477
|
// phantom "Reaped", drop the tracking entry, and count it as cleaned,
|
|
470
478
|
// hiding a zombie that then reappears and "reaps" forever. If it survived,
|
|
471
479
|
// surface it to the operator (rate-limited) so it gets a manual kill.
|
|
472
|
-
|
|
480
|
+
// THREAD-scoped so a live forked child (dead launcher pid) is not falsely reaped.
|
|
481
|
+
if (await isThreadAlive(entry.threadId, entry.pid, entry.startedAt)) {
|
|
473
482
|
// Still alive after an EPERM kill — LEAVE its MCP transport OPEN so the
|
|
474
483
|
// agent stays connected rather than being orphaned (closing a live agent's
|
|
475
484
|
// socket does not make it self-exit if it is mid-task). An idle unkillable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-cleanup.service.js","sourceRoot":"","sources":["../../src/services/worker-cleanup.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker-cleanup.service.js","sourceRoot":"","sources":["../../src/services/worker-cleanup.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GLOBAL TEST ISOLATION GUARD — preloaded before every test file.
|
|
3
|
+
*
|
|
4
|
+
* Wired in package.json as an `--import` hook that runs BEFORE the test module
|
|
5
|
+
* (and therefore before its first import of config / schema / scheduler / any
|
|
6
|
+
* module that resolves a path from the data dir):
|
|
7
|
+
*
|
|
8
|
+
* node --import tsx --import ./src/test-bootstrap.ts --test "src/**\/*.test.ts"
|
|
9
|
+
*
|
|
10
|
+
* Node's test runner re-spawns each test FILE in its own child process, passing
|
|
11
|
+
* the parent's `--import` flags through to every child. So this runs once per
|
|
12
|
+
* child, before any product code — isolation is STRUCTURAL, not per-file opt-in.
|
|
13
|
+
* (Before this, only 7 of 21 test files set up a temp HOME by hand; a new test
|
|
14
|
+
* that forgot the dance hit the live data dir.)
|
|
15
|
+
*
|
|
16
|
+
* WHY (2026-07-28 live-host incident): running the suite on the machine hosting
|
|
17
|
+
* the live server let test children resolve `os.homedir()` to the REAL
|
|
18
|
+
* `~/.remote-copilot-mcp` and open the production memory.db (WAL), rewrite
|
|
19
|
+
* settings.json, and race server.log rotation — freezing the live MCP for ~20
|
|
20
|
+
* min until the supervisor restarted it. The earlier mitigation only redirected
|
|
21
|
+
* LOGS (SENSORIUM_LOG_DIR); every other real path stayed exposed.
|
|
22
|
+
*
|
|
23
|
+
* This guard closes the whole hole three ways:
|
|
24
|
+
* 1. SENSORIUM_BASE_DIR → a fresh per-run temp dir (the durable follow-up):
|
|
25
|
+
* relocates memory.db, settings.json, schedules, heartbeats, pids,
|
|
26
|
+
* active-sessions.json, files — see src/lib/paths.ts.
|
|
27
|
+
* 2. HOME + USERPROFILE → the same temp dir (belt-and-suspenders): any path
|
|
28
|
+
* that still reaches os.homedir() directly (session-store sibling file,
|
|
29
|
+
* external-tool dirs, a call site not yet routed through paths.ts) also
|
|
30
|
+
* lands in the throwaway dir. os.homedir() reads USERPROFILE on Windows and
|
|
31
|
+
* HOME on POSIX, so both are set.
|
|
32
|
+
* 3. A HARD REFUSAL: if the data dir still resolves to the real one, THROW
|
|
33
|
+
* before a single test runs. The suite can never run against live state.
|
|
34
|
+
*
|
|
35
|
+
* Ports are already safe (the two HTTP tests bind port 0); nothing here needs to
|
|
36
|
+
* touch them.
|
|
37
|
+
*/
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=test-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-bootstrap.d.ts","sourceRoot":"","sources":["../src/test-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GLOBAL TEST ISOLATION GUARD — preloaded before every test file.
|
|
3
|
+
*
|
|
4
|
+
* Wired in package.json as an `--import` hook that runs BEFORE the test module
|
|
5
|
+
* (and therefore before its first import of config / schema / scheduler / any
|
|
6
|
+
* module that resolves a path from the data dir):
|
|
7
|
+
*
|
|
8
|
+
* node --import tsx --import ./src/test-bootstrap.ts --test "src/**\/*.test.ts"
|
|
9
|
+
*
|
|
10
|
+
* Node's test runner re-spawns each test FILE in its own child process, passing
|
|
11
|
+
* the parent's `--import` flags through to every child. So this runs once per
|
|
12
|
+
* child, before any product code — isolation is STRUCTURAL, not per-file opt-in.
|
|
13
|
+
* (Before this, only 7 of 21 test files set up a temp HOME by hand; a new test
|
|
14
|
+
* that forgot the dance hit the live data dir.)
|
|
15
|
+
*
|
|
16
|
+
* WHY (2026-07-28 live-host incident): running the suite on the machine hosting
|
|
17
|
+
* the live server let test children resolve `os.homedir()` to the REAL
|
|
18
|
+
* `~/.remote-copilot-mcp` and open the production memory.db (WAL), rewrite
|
|
19
|
+
* settings.json, and race server.log rotation — freezing the live MCP for ~20
|
|
20
|
+
* min until the supervisor restarted it. The earlier mitigation only redirected
|
|
21
|
+
* LOGS (SENSORIUM_LOG_DIR); every other real path stayed exposed.
|
|
22
|
+
*
|
|
23
|
+
* This guard closes the whole hole three ways:
|
|
24
|
+
* 1. SENSORIUM_BASE_DIR → a fresh per-run temp dir (the durable follow-up):
|
|
25
|
+
* relocates memory.db, settings.json, schedules, heartbeats, pids,
|
|
26
|
+
* active-sessions.json, files — see src/lib/paths.ts.
|
|
27
|
+
* 2. HOME + USERPROFILE → the same temp dir (belt-and-suspenders): any path
|
|
28
|
+
* that still reaches os.homedir() directly (session-store sibling file,
|
|
29
|
+
* external-tool dirs, a call site not yet routed through paths.ts) also
|
|
30
|
+
* lands in the throwaway dir. os.homedir() reads USERPROFILE on Windows and
|
|
31
|
+
* HOME on POSIX, so both are set.
|
|
32
|
+
* 3. A HARD REFUSAL: if the data dir still resolves to the real one, THROW
|
|
33
|
+
* before a single test runs. The suite can never run against live state.
|
|
34
|
+
*
|
|
35
|
+
* Ports are already safe (the two HTTP tests bind port 0); nothing here needs to
|
|
36
|
+
* touch them.
|
|
37
|
+
*/
|
|
38
|
+
import { homedir, tmpdir } from "node:os";
|
|
39
|
+
import { mkdtempSync, rmSync } from "node:fs";
|
|
40
|
+
import { join } from "node:path";
|
|
41
|
+
// Snapshot the REAL data dir BEFORE we override anything, so the refusal check
|
|
42
|
+
// below compares against ground truth.
|
|
43
|
+
const REAL_DATA_DIR = join(homedir(), ".remote-copilot-mcp");
|
|
44
|
+
// One throwaway home per test child. Not cleaned between files (each child gets
|
|
45
|
+
// its own), but removed on this child's exit below.
|
|
46
|
+
const TEST_HOME = mkdtempSync(join(tmpdir(), "sensorium-test-home-"));
|
|
47
|
+
const TEST_BASE_DIR = join(TEST_HOME, ".remote-copilot-mcp");
|
|
48
|
+
process.env.SENSORIUM_BASE_DIR = TEST_BASE_DIR;
|
|
49
|
+
process.env.SENSORIUM_LOG_DIR = join(TEST_BASE_DIR, "logs", "mcp");
|
|
50
|
+
process.env.USERPROFILE = TEST_HOME;
|
|
51
|
+
process.env.HOME = TEST_HOME;
|
|
52
|
+
// config/index.ts calls process.exit(1) at import when these are unset — seed
|
|
53
|
+
// dummies so importing config in any test can never kill the runner. Only fill
|
|
54
|
+
// blanks; never clobber a value a test set on purpose.
|
|
55
|
+
process.env.TELEGRAM_TOKEN ||= "test-token";
|
|
56
|
+
process.env.TELEGRAM_CHAT_ID ||= "test-chat-id";
|
|
57
|
+
// ── HARD REFUSAL ────────────────────────────────────────────────────────────
|
|
58
|
+
// If, after the overrides, the data dir STILL points at the live one, abort the
|
|
59
|
+
// entire process. This can only happen if the override mechanism itself failed
|
|
60
|
+
// (e.g. a future runtime where os.homedir() ignores env); running on would risk
|
|
61
|
+
// the live server, so we refuse rather than proceed.
|
|
62
|
+
const activeBaseDir = process.env.SENSORIUM_BASE_DIR;
|
|
63
|
+
if (!activeBaseDir ||
|
|
64
|
+
activeBaseDir === REAL_DATA_DIR ||
|
|
65
|
+
join(homedir(), ".remote-copilot-mcp") === REAL_DATA_DIR) {
|
|
66
|
+
throw new Error(`[test-isolation] REFUSING TO RUN: the data dir still resolves to the live ` +
|
|
67
|
+
`"${REAL_DATA_DIR}". Isolation overrides did not take effect; running the ` +
|
|
68
|
+
`suite would corrupt the live Sensorium server. Aborting.`);
|
|
69
|
+
}
|
|
70
|
+
process.on("exit", () => {
|
|
71
|
+
try {
|
|
72
|
+
rmSync(TEST_HOME, { recursive: true, force: true });
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
/* best-effort — open log handles on Windows may block removal */
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=test-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-bootstrap.js","sourceRoot":"","sources":["../src/test-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,+EAA+E;AAC/E,uCAAuC;AACvC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAE7D,gFAAgF;AAChF,oDAAoD;AACpD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;AACtE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAE7D,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,aAAa,CAAC;AAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACnE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;AACpC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;AAE7B,8EAA8E;AAC9E,+EAA+E;AAC/E,uDAAuD;AACvD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,YAAY,CAAC;AAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,cAAc,CAAC;AAEhD,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,qDAAqD;AACrD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACrD,IACE,CAAC,aAAa;IACd,aAAa,KAAK,aAAa;IAC/B,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,KAAK,aAAa,EACxD,CAAC;IACD,MAAM,IAAI,KAAK,CACb,4EAA4E;QAC1E,IAAI,aAAa,0DAA0D;QAC3E,0DAA0D,CAC7D,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC;QACH,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC,CAAC,CAAC"}
|