@cluesmith/codev 1.5.22 → 1.5.23
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-handler.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/utils/orphan-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"orphan-handler.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/utils/orphan-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkFH;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCvB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAU9D"}
|
|
@@ -12,6 +12,19 @@ import { resolve } from 'node:path';
|
|
|
12
12
|
import { logger } from './logger.js';
|
|
13
13
|
import { run } from './shell.js';
|
|
14
14
|
import { getConfig } from './config.js';
|
|
15
|
+
import { loadState, setArchitect } from '../state.js';
|
|
16
|
+
/**
|
|
17
|
+
* Check if a process is still running
|
|
18
|
+
*/
|
|
19
|
+
function isProcessAlive(pid) {
|
|
20
|
+
try {
|
|
21
|
+
process.kill(pid, 0);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
15
28
|
/**
|
|
16
29
|
* Find tmux sessions that match THIS project's agent-farm patterns
|
|
17
30
|
* Only matches sessions with this project's port to avoid killing other projects
|
|
@@ -19,27 +32,32 @@ import { getConfig } from './config.js';
|
|
|
19
32
|
async function findOrphanedSessions() {
|
|
20
33
|
const config = getConfig();
|
|
21
34
|
const architectPort = config.architectPort;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/^util-[A-Z0-9]+$/, // Util sessions (already unique)
|
|
27
|
-
/^af-architect$/, // Legacy pattern (no port) - safe to clean
|
|
28
|
-
];
|
|
35
|
+
const state = loadState();
|
|
36
|
+
// Project-specific patterns - only match THIS project's architect session
|
|
37
|
+
const architectPattern = new RegExp(`^af-architect-${architectPort}$`);
|
|
38
|
+
const legacyArchitectPattern = /^af-architect$/;
|
|
29
39
|
try {
|
|
30
40
|
const result = await run('tmux list-sessions -F "#{session_name}" 2>/dev/null');
|
|
31
41
|
const sessions = result.stdout.trim().split('\n').filter(Boolean);
|
|
32
42
|
const orphans = [];
|
|
33
43
|
for (const name of sessions) {
|
|
34
|
-
if
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
// Check architect sessions - only orphaned if PID is dead
|
|
45
|
+
if (architectPattern.test(name) || legacyArchitectPattern.test(name)) {
|
|
46
|
+
// If we have state for this architect, check if PID is still alive
|
|
47
|
+
if (state.architect) {
|
|
48
|
+
if (!isProcessAlive(state.architect.pid)) {
|
|
49
|
+
// PID is dead but session exists - this is orphaned
|
|
50
|
+
orphans.push({ name, type: 'architect' });
|
|
51
|
+
}
|
|
52
|
+
// If PID is alive, session is NOT orphaned - skip it
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// No state entry but session exists - orphaned
|
|
56
|
+
orphans.push({ name, type: 'architect' });
|
|
57
|
+
}
|
|
42
58
|
}
|
|
59
|
+
// Note: builder and util sessions use different naming now (af-shell-UXXXXXX)
|
|
60
|
+
// Those are managed by their own state entries and don't need orphan detection
|
|
43
61
|
}
|
|
44
62
|
return orphans;
|
|
45
63
|
}
|
|
@@ -81,6 +99,10 @@ export async function handleOrphanedSessions(options = {}) {
|
|
|
81
99
|
for (const orphan of orphans) {
|
|
82
100
|
if (await killSession(orphan.name)) {
|
|
83
101
|
killed++;
|
|
102
|
+
// Clear state entry for killed architects
|
|
103
|
+
if (orphan.type === 'architect') {
|
|
104
|
+
setArchitect(null);
|
|
105
|
+
}
|
|
84
106
|
if (!options.silent) {
|
|
85
107
|
logger.debug(` Killed: ${orphan.name}`);
|
|
86
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-handler.js","sourceRoot":"","sources":["../../../src/agent-farm/utils/orphan-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"orphan-handler.js","sourceRoot":"","sources":["../../../src/agent-farm/utils/orphan-handler.ts"],"names":[],"mappings":"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"}
|