steroids-cli 0.12.6 → 0.12.8
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/README.md +52 -0
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +10 -0
- package/dist/commands/gc.js.map +1 -1
- package/dist/commands/llm-content.d.ts +2 -0
- package/dist/commands/llm-content.d.ts.map +1 -0
- package/dist/commands/llm-content.js +319 -0
- package/dist/commands/llm-content.js.map +1 -0
- package/dist/commands/llm.d.ts.map +1 -1
- package/dist/commands/llm.js +22 -290
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/loop-phases-coder.js +1 -1
- package/dist/commands/loop-phases-coder.js.map +1 -1
- package/dist/commands/loop-phases-reviewer-follow-ups.d.ts +7 -0
- package/dist/commands/loop-phases-reviewer-follow-ups.d.ts.map +1 -0
- package/dist/commands/loop-phases-reviewer-follow-ups.js +44 -0
- package/dist/commands/loop-phases-reviewer-follow-ups.js.map +1 -0
- package/dist/commands/loop-phases-reviewer.d.ts.map +1 -1
- package/dist/commands/loop-phases-reviewer.js +6 -45
- package/dist/commands/loop-phases-reviewer.js.map +1 -1
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +12 -1
- package/dist/commands/web.js.map +1 -1
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +27 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +111 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +74 -0
- package/dist/config/validator.js.map +1 -1
- package/dist/database/intake-queries.d.ts +51 -0
- package/dist/database/intake-queries.d.ts.map +1 -0
- package/dist/database/intake-queries.js +250 -0
- package/dist/database/intake-queries.js.map +1 -0
- package/dist/database/queries.d.ts +4 -0
- package/dist/database/queries.d.ts.map +1 -1
- package/dist/database/queries.js.map +1 -1
- package/dist/database/schema.d.ts +2 -2
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +49 -0
- package/dist/database/schema.js.map +1 -1
- package/dist/git/section-pr.d.ts +3 -2
- package/dist/git/section-pr.d.ts.map +1 -1
- package/dist/git/section-pr.js +95 -15
- package/dist/git/section-pr.js.map +1 -1
- package/dist/hooks/events.d.ts +10 -1
- package/dist/hooks/events.d.ts.map +1 -1
- package/dist/hooks/events.js +23 -1
- package/dist/hooks/events.js.map +1 -1
- package/dist/hooks/integration.d.ts +22 -0
- package/dist/hooks/integration.d.ts.map +1 -1
- package/dist/hooks/integration.js +52 -0
- package/dist/hooks/integration.js.map +1 -1
- package/dist/hooks/payload-factories.d.ts +17 -0
- package/dist/hooks/payload-factories.d.ts.map +1 -0
- package/dist/hooks/payload-factories.js +69 -0
- package/dist/hooks/payload-factories.js.map +1 -0
- package/dist/hooks/payload-types.d.ts +169 -0
- package/dist/hooks/payload-types.d.ts.map +1 -0
- package/dist/hooks/payload-types.js +3 -0
- package/dist/hooks/payload-types.js.map +1 -0
- package/dist/hooks/payload-validation.d.ts +6 -0
- package/dist/hooks/payload-validation.d.ts.map +1 -0
- package/dist/hooks/payload-validation.js +186 -0
- package/dist/hooks/payload-validation.js.map +1 -0
- package/dist/hooks/payload.d.ts +6 -334
- package/dist/hooks/payload.d.ts.map +1 -1
- package/dist/hooks/payload.js +21 -307
- package/dist/hooks/payload.js.map +1 -1
- package/dist/hooks/template-resolvers.d.ts +9 -0
- package/dist/hooks/template-resolvers.d.ts.map +1 -0
- package/dist/hooks/template-resolvers.js +133 -0
- package/dist/hooks/template-resolvers.js.map +1 -0
- package/dist/hooks/templates.d.ts +13 -0
- package/dist/hooks/templates.d.ts.map +1 -1
- package/dist/hooks/templates.js +40 -118
- package/dist/hooks/templates.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/intake/github-gate-api.d.ts +37 -0
- package/dist/intake/github-gate-api.d.ts.map +1 -0
- package/dist/intake/github-gate-api.js +210 -0
- package/dist/intake/github-gate-api.js.map +1 -0
- package/dist/intake/github-gate.d.ts +22 -0
- package/dist/intake/github-gate.d.ts.map +1 -0
- package/dist/intake/github-gate.js +261 -0
- package/dist/intake/github-gate.js.map +1 -0
- package/dist/intake/github-issues-connector.d.ts +26 -0
- package/dist/intake/github-issues-connector.d.ts.map +1 -0
- package/dist/intake/github-issues-connector.js +350 -0
- package/dist/intake/github-issues-connector.js.map +1 -0
- package/dist/intake/index.d.ts +10 -0
- package/dist/intake/index.d.ts.map +1 -0
- package/dist/intake/index.js +26 -0
- package/dist/intake/index.js.map +1 -0
- package/dist/intake/pipeline-glue.d.ts +61 -0
- package/dist/intake/pipeline-glue.d.ts.map +1 -0
- package/dist/intake/pipeline-glue.js +137 -0
- package/dist/intake/pipeline-glue.js.map +1 -0
- package/dist/intake/poller.d.ts +28 -0
- package/dist/intake/poller.d.ts.map +1 -0
- package/dist/intake/poller.js +186 -0
- package/dist/intake/poller.js.map +1 -0
- package/dist/intake/post-pr.d.ts +17 -0
- package/dist/intake/post-pr.d.ts.map +1 -0
- package/dist/intake/post-pr.js +78 -0
- package/dist/intake/post-pr.js.map +1 -0
- package/dist/intake/registry.d.ts +17 -0
- package/dist/intake/registry.d.ts.map +1 -0
- package/dist/intake/registry.js +57 -0
- package/dist/intake/registry.js.map +1 -0
- package/dist/intake/reviewer-approval.d.ts +10 -0
- package/dist/intake/reviewer-approval.d.ts.map +1 -0
- package/dist/intake/reviewer-approval.js +70 -0
- package/dist/intake/reviewer-approval.js.map +1 -0
- package/dist/intake/task-reference.d.ts +10 -0
- package/dist/intake/task-reference.d.ts.map +1 -0
- package/dist/intake/task-reference.js +23 -0
- package/dist/intake/task-reference.js.map +1 -0
- package/dist/intake/task-templates.d.ts +25 -0
- package/dist/intake/task-templates.d.ts.map +1 -0
- package/dist/intake/task-templates.js +98 -0
- package/dist/intake/task-templates.js.map +1 -0
- package/dist/intake/types.d.ts +103 -0
- package/dist/intake/types.d.ts.map +1 -0
- package/dist/intake/types.js +3 -0
- package/dist/intake/types.js.map +1 -0
- package/dist/orchestrator/coder.d.ts +2 -0
- package/dist/orchestrator/coder.d.ts.map +1 -1
- package/dist/orchestrator/coder.js +25 -2
- package/dist/orchestrator/coder.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +7 -14
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/interface.d.ts.map +1 -1
- package/dist/providers/interface.js +50 -0
- package/dist/providers/interface.js.map +1 -1
- package/dist/runners/orchestrator-loop.d.ts.map +1 -1
- package/dist/runners/orchestrator-loop.js +7 -0
- package/dist/runners/orchestrator-loop.js.map +1 -1
- package/dist/runners/system-pressure.d.ts +26 -0
- package/dist/runners/system-pressure.d.ts.map +1 -0
- package/dist/runners/system-pressure.js +128 -0
- package/dist/runners/system-pressure.js.map +1 -0
- package/dist/runners/wakeup-checks.d.ts.map +1 -1
- package/dist/runners/wakeup-checks.js +16 -1
- package/dist/runners/wakeup-checks.js.map +1 -1
- package/dist/runners/wakeup-global-cleanup.d.ts +20 -0
- package/dist/runners/wakeup-global-cleanup.d.ts.map +1 -0
- package/dist/runners/wakeup-global-cleanup.js +317 -0
- package/dist/runners/wakeup-global-cleanup.js.map +1 -0
- package/dist/runners/wakeup-needed.d.ts +5 -0
- package/dist/runners/wakeup-needed.d.ts.map +1 -0
- package/dist/runners/wakeup-needed.js +42 -0
- package/dist/runners/wakeup-needed.js.map +1 -0
- package/dist/runners/wakeup-project-parallel.d.ts +13 -0
- package/dist/runners/wakeup-project-parallel.d.ts.map +1 -0
- package/dist/runners/wakeup-project-parallel.js +238 -0
- package/dist/runners/wakeup-project-parallel.js.map +1 -0
- package/dist/runners/wakeup-project.d.ts +10 -0
- package/dist/runners/wakeup-project.d.ts.map +1 -0
- package/dist/runners/wakeup-project.js +209 -0
- package/dist/runners/wakeup-project.js.map +1 -0
- package/dist/runners/wakeup-registration.d.ts +2 -0
- package/dist/runners/wakeup-registration.d.ts.map +1 -0
- package/dist/runners/wakeup-registration.js +42 -0
- package/dist/runners/wakeup-registration.js.map +1 -0
- package/dist/runners/wakeup-types.d.ts +25 -0
- package/dist/runners/wakeup-types.d.ts.map +1 -0
- package/dist/runners/wakeup-types.js +3 -0
- package/dist/runners/wakeup-types.js.map +1 -0
- package/dist/runners/wakeup.d.ts +4 -24
- package/dist/runners/wakeup.d.ts.map +1 -1
- package/dist/runners/wakeup.js +25 -601
- package/dist/runners/wakeup.js.map +1 -1
- package/dist/workspace/pool.d.ts.map +1 -1
- package/dist/workspace/pool.js +37 -4
- package/dist/workspace/pool.js.map +1 -1
- package/migrations/025_add_intake_tables.sql +51 -0
- package/migrations/026_add_section_coder_and_pr_fields.sql +11 -0
- package/migrations/manifest.json +18 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-loop.js","sourceRoot":"","sources":["../../src/runners/orchestrator-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator-loop.js","sourceRoot":"","sources":["../../src/runners/orchestrator-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System pressure monitoring — prevents runners from consuming all
|
|
3
|
+
* available memory/disk and crashing the host.
|
|
4
|
+
*
|
|
5
|
+
* On macOS, swap files live on the boot APFS container and share free
|
|
6
|
+
* space with the system volume. A single runaway provider process can
|
|
7
|
+
* generate 20+ GB of swap and fill the drive.
|
|
8
|
+
*/
|
|
9
|
+
export interface PressureSnapshot {
|
|
10
|
+
bootVolumeFreeBytes: number;
|
|
11
|
+
memoryFreePct: number;
|
|
12
|
+
swapUsedMb: number;
|
|
13
|
+
}
|
|
14
|
+
export interface PressureCheckResult {
|
|
15
|
+
ok: boolean;
|
|
16
|
+
reason?: string;
|
|
17
|
+
snapshot: PressureSnapshot;
|
|
18
|
+
}
|
|
19
|
+
export declare function takePressureSnapshot(): PressureSnapshot;
|
|
20
|
+
export declare function checkSystemPressure(snapshot?: PressureSnapshot): PressureCheckResult;
|
|
21
|
+
/**
|
|
22
|
+
* Wait for system pressure to drop below thresholds.
|
|
23
|
+
* Returns true if pressure cleared, false if timed out.
|
|
24
|
+
*/
|
|
25
|
+
export declare function waitForPressureRelief(log?: (msg: string) => void): Promise<boolean>;
|
|
26
|
+
//# sourceMappingURL=system-pressure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-pressure.d.ts","sourceRoot":"","sources":["../../src/runners/system-pressure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwBH,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAyCD,wBAAgB,oBAAoB,IAAI,gBAAgB,CAMvD;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,CA6BpF;AAID;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,GACvC,OAAO,CAAC,OAAO,CAAC,CA0BlB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* System pressure monitoring — prevents runners from consuming all
|
|
4
|
+
* available memory/disk and crashing the host.
|
|
5
|
+
*
|
|
6
|
+
* On macOS, swap files live on the boot APFS container and share free
|
|
7
|
+
* space with the system volume. A single runaway provider process can
|
|
8
|
+
* generate 20+ GB of swap and fill the drive.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.takePressureSnapshot = takePressureSnapshot;
|
|
12
|
+
exports.checkSystemPressure = checkSystemPressure;
|
|
13
|
+
exports.waitForPressureRelief = waitForPressureRelief;
|
|
14
|
+
const node_child_process_1 = require("node:child_process");
|
|
15
|
+
const node_fs_1 = require("node:fs");
|
|
16
|
+
// ── Thresholds ──────────────────────────────────────────────────────
|
|
17
|
+
/** Minimum free bytes on the boot volume before we refuse to spawn. */
|
|
18
|
+
const BOOT_VOLUME_MIN_FREE_BYTES = 10 * 1024 * 1024 * 1024; // 10 GB
|
|
19
|
+
/** Memory-free percentage below which we pause (macOS `memory_pressure`). */
|
|
20
|
+
const MEMORY_FREE_MIN_PCT = 20;
|
|
21
|
+
/** Maximum swap-used MB before we pause. */
|
|
22
|
+
const SWAP_USED_MAX_MB = 8_000; // 8 GB
|
|
23
|
+
/** How long to wait between pressure checks when paused (ms). */
|
|
24
|
+
const PRESSURE_POLL_INTERVAL_MS = 15_000;
|
|
25
|
+
/** Maximum total time we'll wait for pressure to drop before aborting (ms). */
|
|
26
|
+
const PRESSURE_MAX_WAIT_MS = 5 * 60 * 1000; // 5 minutes
|
|
27
|
+
// ── Snapshot collection ─────────────────────────────────────────────
|
|
28
|
+
function getBootVolumeFreeBytes() {
|
|
29
|
+
try {
|
|
30
|
+
const stats = (0, node_fs_1.statfsSync)('/');
|
|
31
|
+
return stats.bfree * stats.bsize;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return Number.MAX_SAFE_INTEGER; // Can't check → don't block
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function getMemoryFreePct() {
|
|
38
|
+
if (process.platform !== 'darwin')
|
|
39
|
+
return 100;
|
|
40
|
+
try {
|
|
41
|
+
const out = (0, node_child_process_1.execFileSync)('memory_pressure', [], {
|
|
42
|
+
timeout: 5000,
|
|
43
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
44
|
+
}).toString();
|
|
45
|
+
const match = out.match(/free percentage:\s*(\d+)%/);
|
|
46
|
+
return match ? parseInt(match[1], 10) : 100;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return 100; // Can't check → don't block
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function getSwapUsedMb() {
|
|
53
|
+
if (process.platform !== 'darwin')
|
|
54
|
+
return 0;
|
|
55
|
+
try {
|
|
56
|
+
const out = (0, node_child_process_1.execFileSync)('sysctl', ['vm.swapusage'], {
|
|
57
|
+
timeout: 5000,
|
|
58
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
59
|
+
}).toString();
|
|
60
|
+
const match = out.match(/used\s*=\s*([\d.]+)M/);
|
|
61
|
+
return match ? parseFloat(match[1]) : 0;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function takePressureSnapshot() {
|
|
68
|
+
return {
|
|
69
|
+
bootVolumeFreeBytes: getBootVolumeFreeBytes(),
|
|
70
|
+
memoryFreePct: getMemoryFreePct(),
|
|
71
|
+
swapUsedMb: getSwapUsedMb(),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// ── Pressure check ──────────────────────────────────────────────────
|
|
75
|
+
function checkSystemPressure(snapshot) {
|
|
76
|
+
const s = snapshot ?? takePressureSnapshot();
|
|
77
|
+
if (s.bootVolumeFreeBytes < BOOT_VOLUME_MIN_FREE_BYTES) {
|
|
78
|
+
const freeGb = (s.bootVolumeFreeBytes / (1024 * 1024 * 1024)).toFixed(1);
|
|
79
|
+
return {
|
|
80
|
+
ok: false,
|
|
81
|
+
reason: `Boot volume critically low: ${freeGb} GB free (min ${BOOT_VOLUME_MIN_FREE_BYTES / (1024 * 1024 * 1024)} GB)`,
|
|
82
|
+
snapshot: s,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (s.memoryFreePct < MEMORY_FREE_MIN_PCT) {
|
|
86
|
+
return {
|
|
87
|
+
ok: false,
|
|
88
|
+
reason: `Memory pressure critical: ${s.memoryFreePct}% free (min ${MEMORY_FREE_MIN_PCT}%)`,
|
|
89
|
+
snapshot: s,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
if (s.swapUsedMb > SWAP_USED_MAX_MB) {
|
|
93
|
+
return {
|
|
94
|
+
ok: false,
|
|
95
|
+
reason: `Swap usage excessive: ${s.swapUsedMb.toFixed(0)} MB (max ${SWAP_USED_MAX_MB} MB)`,
|
|
96
|
+
snapshot: s,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return { ok: true, snapshot: s };
|
|
100
|
+
}
|
|
101
|
+
// ── Blocking wait with backoff ──────────────────────────────────────
|
|
102
|
+
/**
|
|
103
|
+
* Wait for system pressure to drop below thresholds.
|
|
104
|
+
* Returns true if pressure cleared, false if timed out.
|
|
105
|
+
*/
|
|
106
|
+
async function waitForPressureRelief(log = console.log) {
|
|
107
|
+
const initial = checkSystemPressure();
|
|
108
|
+
if (initial.ok)
|
|
109
|
+
return true;
|
|
110
|
+
log(`[pressure] Pausing: ${initial.reason}`);
|
|
111
|
+
const deadline = Date.now() + PRESSURE_MAX_WAIT_MS;
|
|
112
|
+
let waited = 0;
|
|
113
|
+
while (Date.now() < deadline) {
|
|
114
|
+
await new Promise((r) => setTimeout(r, PRESSURE_POLL_INTERVAL_MS));
|
|
115
|
+
waited += PRESSURE_POLL_INTERVAL_MS;
|
|
116
|
+
const check = checkSystemPressure();
|
|
117
|
+
if (check.ok) {
|
|
118
|
+
log(`[pressure] Pressure cleared after ${(waited / 1000).toFixed(0)}s — resuming`);
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
if (waited % 60_000 < PRESSURE_POLL_INTERVAL_MS) {
|
|
122
|
+
log(`[pressure] Still waiting (${(waited / 1000).toFixed(0)}s): ${check.reason}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
log(`[pressure] Timed out after ${(PRESSURE_MAX_WAIT_MS / 1000).toFixed(0)}s — aborting task`);
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=system-pressure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-pressure.js","sourceRoot":"","sources":["../../src/runners/system-pressure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wakeup-checks.d.ts","sourceRoot":"","sources":["../../src/runners/wakeup-checks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wakeup-checks.d.ts","sourceRoot":"","sources":["../../src/runners/wakeup-checks.ts"],"names":[],"mappings":"AAiCA;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BjF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CActE;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAqB/E"}
|
|
@@ -5,6 +5,7 @@ exports.hasActiveRunnerForProject = hasActiveRunnerForProject;
|
|
|
5
5
|
exports.hasActiveParallelSessionForProject = hasActiveParallelSessionForProject;
|
|
6
6
|
const connection_js_1 = require("../database/connection.js");
|
|
7
7
|
const global_db_js_1 = require("./global-db.js");
|
|
8
|
+
const loader_js_1 = require("../config/loader.js");
|
|
8
9
|
/**
|
|
9
10
|
* Project state checks for wakeup
|
|
10
11
|
*/
|
|
@@ -12,6 +13,20 @@ const node_fs_1 = require("node:fs");
|
|
|
12
13
|
const node_path_1 = require("node:path");
|
|
13
14
|
const task_selector_js_1 = require("../orchestrator/task-selector.js");
|
|
14
15
|
const parallel_session_state_js_1 = require("./parallel-session-state.js");
|
|
16
|
+
function hasPendingGitHubGateWork(projectPath, db) {
|
|
17
|
+
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
18
|
+
if (config.intake?.enabled !== true || config.intake.connectors?.github?.enabled !== true) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const row = db
|
|
22
|
+
.prepare(`SELECT COUNT(*) as count
|
|
23
|
+
FROM intake_reports
|
|
24
|
+
WHERE source = 'github'
|
|
25
|
+
AND linked_task_id IS NULL
|
|
26
|
+
AND status NOT IN ('resolved', 'ignored')`)
|
|
27
|
+
.get();
|
|
28
|
+
return row.count > 0;
|
|
29
|
+
}
|
|
15
30
|
/**
|
|
16
31
|
* Check if a project has pending work
|
|
17
32
|
*/
|
|
@@ -34,7 +49,7 @@ async function projectHasPendingWork(projectPath) {
|
|
|
34
49
|
FROM tasks
|
|
35
50
|
WHERE status IN ('pending', 'in_progress', 'review')`)
|
|
36
51
|
.get();
|
|
37
|
-
return row.count > 0;
|
|
52
|
+
return row.count > 0 || hasPendingGitHubGateWork(projectPath, db);
|
|
38
53
|
}, { timeoutMs: 1000 });
|
|
39
54
|
}
|
|
40
55
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wakeup-checks.js","sourceRoot":"","sources":["../../src/runners/wakeup-checks.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"wakeup-checks.js","sourceRoot":"","sources":["../../src/runners/wakeup-checks.ts"],"names":[],"mappings":";;AAoCA,sDA8BC;AAMD,8DAcC;AAED,gFAqBC;AA7GD,6DAAyD;AACzD,iDAAoD;AACpD,mDAAiD;AACjD;;GAEG;AAEH,qCAAqC;AACrC,yCAAiC;AAGjC,uEAAkE;AAClE,2EAA+G;AAE/G,SAAS,wBAAwB,CAAC,WAAmB,EAAE,EAAO;IAC5D,MAAM,MAAM,GAAG,IAAA,sBAAU,EAAC,WAAW,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;;;;mDAI6C,CAC9C;SACA,GAAG,EAAuB,CAAC;IAE9B,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CAAC,WAAmB;IAC7D,MAAM,MAAM,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAA,4BAAY,EAAC,WAAW,EAAE,CAAC,EAAO,EAAE,EAAE;YAC3C,uCAAuC;YACvC,IAAI,IAAA,iCAAc,EAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,uEAAuE;YACvE,yEAAyE;YACzE,0EAA0E;YAC1E,MAAM,GAAG,GAAG,EAAE;iBACX,OAAO,CACN;;gEAEsD,CACvD;iBACA,GAAG,EAAuB,CAAC;YAE9B,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,wBAAwB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iEAAiE;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,WAAmB;IAC3D,OAAO,IAAA,iCAAkB,EAAC,CAAC,EAAO,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,EAAE;aACX,OAAO,CACN;;;;yCAIiC,CAClC;aACA,GAAG,CAAC,WAAW,CAA8B,CAAC;QAEjD,OAAO,GAAG,KAAK,SAAS,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,kCAAkC,CAAC,WAAmB;IACpE,OAAO,IAAA,iCAAkB,EAAC,CAAC,EAAO,EAAE,EAAE;QACpC,IAAA,sDAA0B,EAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,IAAI,IAAA,gEAAoC,EAAC,EAAE,EAAE,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvE,qEAAqE;QACrE,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,WAAW,GAAG,EAAE;aACnB,OAAO,CACN;;;;;8DAKsD,CACvD;aACA,GAAG,CAAC,WAAW,CAA8B,CAAC;QAEjD,OAAO,WAAW,KAAK,SAAS,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { WakeupLogger, WakeupResult } from './wakeup-types.js';
|
|
2
|
+
interface GlobalMaintenanceOptions {
|
|
3
|
+
globalDb: any;
|
|
4
|
+
dryRun: boolean;
|
|
5
|
+
log: WakeupLogger;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Remove stale provider isolated-HOME directories from temp locations.
|
|
9
|
+
* These are created by setupIsolatedHome() in each provider and should be
|
|
10
|
+
* cleaned by the provider's close/error handler. When the runner process is
|
|
11
|
+
* SIGTERM'd, the cleanup never fires and dirs accumulate (with npm caches
|
|
12
|
+
* reaching 500MB+ each).
|
|
13
|
+
*
|
|
14
|
+
* Scans both os.tmpdir() and /private/tmp (macOS /tmp symlink target) since
|
|
15
|
+
* older versions may have used a different temp root.
|
|
16
|
+
*/
|
|
17
|
+
export declare function cleanStaleProviderHomes(dryRun: boolean, log: WakeupLogger): number;
|
|
18
|
+
export declare function performWakeupGlobalMaintenance(options: GlobalMaintenanceOptions): Promise<WakeupResult[]>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=wakeup-global-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wakeup-global-cleanup.d.ts","sourceRoot":"","sources":["../../src/runners/wakeup-global-cleanup.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,UAAU,wBAAwB;IAChC,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,YAAY,CAAC;CACnB;AA8HD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CA0ClF;AA4JD,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAWzB"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cleanStaleProviderHomes = cleanStaleProviderHomes;
|
|
4
|
+
exports.performWakeupGlobalMaintenance = performWakeupGlobalMaintenance;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const node_os_1 = require("node:os");
|
|
8
|
+
const lock_js_1 = require("./lock.js");
|
|
9
|
+
const heartbeat_js_1 = require("./heartbeat.js");
|
|
10
|
+
const connection_js_1 = require("../database/connection.js");
|
|
11
|
+
const wakeup_runner_js_1 = require("./wakeup-runner.js");
|
|
12
|
+
function cleanupStaleRunnerTaskState(runner) {
|
|
13
|
+
if (!runner.current_task_id || !runner.project_path) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const { db: projectDb, close: closeProjectDb } = (0, connection_js_1.openDatabase)(runner.project_path);
|
|
18
|
+
try {
|
|
19
|
+
const nowMs = Date.now();
|
|
20
|
+
projectDb.prepare(`UPDATE task_invocations
|
|
21
|
+
SET status = 'failed', success = 0, timed_out = 0, exit_code = 1,
|
|
22
|
+
completed_at_ms = ?, duration_ms = ?,
|
|
23
|
+
error = COALESCE(error, 'Runner process died (stale heartbeat).')
|
|
24
|
+
WHERE task_id = ? AND status = 'running'`).run(nowMs, 0, runner.current_task_id);
|
|
25
|
+
projectDb.prepare(`UPDATE tasks SET status = 'pending', updated_at = datetime('now')
|
|
26
|
+
WHERE id = ? AND status = 'in_progress'`).run(runner.current_task_id);
|
|
27
|
+
projectDb.prepare(`DELETE FROM task_locks WHERE task_id = ?`).run(runner.current_task_id);
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
closeProjectDb();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Project DB errors must not block runner row cleanup.
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function cleanupStaleRunners(globalDb, dryRun, log) {
|
|
38
|
+
const results = [];
|
|
39
|
+
try {
|
|
40
|
+
const staleRunners = (0, heartbeat_js_1.findStaleRunners)(globalDb);
|
|
41
|
+
if (staleRunners.length === 0) {
|
|
42
|
+
return results;
|
|
43
|
+
}
|
|
44
|
+
log(`Found ${staleRunners.length} stale runner(s), cleaning up...`);
|
|
45
|
+
if (!dryRun) {
|
|
46
|
+
for (const runner of staleRunners) {
|
|
47
|
+
cleanupStaleRunnerTaskState(runner);
|
|
48
|
+
if (runner.pid) {
|
|
49
|
+
(0, wakeup_runner_js_1.killProcess)(runner.pid);
|
|
50
|
+
}
|
|
51
|
+
globalDb.prepare(`UPDATE workstreams
|
|
52
|
+
SET runner_id = NULL,
|
|
53
|
+
lease_expires_at = datetime('now')
|
|
54
|
+
WHERE runner_id = ?`).run(runner.id);
|
|
55
|
+
globalDb.prepare('DELETE FROM runners WHERE id = ?').run(runner.id);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
results.push({
|
|
59
|
+
action: 'cleaned',
|
|
60
|
+
reason: `Cleaned ${staleRunners.length} stale runner(s)`,
|
|
61
|
+
staleRunners: staleRunners.length,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Ignore global DB issues; wakeup will still attempt per-project checks.
|
|
66
|
+
}
|
|
67
|
+
return results;
|
|
68
|
+
}
|
|
69
|
+
function releaseExpiredLeases(globalDb, log) {
|
|
70
|
+
try {
|
|
71
|
+
const releasedLeases = globalDb.prepare(`UPDATE workstreams
|
|
72
|
+
SET runner_id = NULL,
|
|
73
|
+
lease_expires_at = NULL
|
|
74
|
+
WHERE status = 'running'
|
|
75
|
+
AND lease_expires_at IS NOT NULL
|
|
76
|
+
AND lease_expires_at <= datetime('now')`).run().changes;
|
|
77
|
+
if (releasedLeases > 0) {
|
|
78
|
+
log(`Released ${releasedLeases} expired workstream lease(s)`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// Ignore lease cleanup issues in wakeup.
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function reconcileStaleWorkspaces(globalDb, log) {
|
|
86
|
+
try {
|
|
87
|
+
const { reconcileStaleWorkspaces: reconcile } = await import('../workspace/reconcile.js');
|
|
88
|
+
const reconcileResult = reconcile(globalDb);
|
|
89
|
+
if (reconcileResult.resetSlots > 0 || reconcileResult.deletedLocks > 0) {
|
|
90
|
+
log(`Workspace pool reconciliation: reset ${reconcileResult.resetSlots} slot(s), ` +
|
|
91
|
+
`deleted ${reconcileResult.deletedLocks} stale lock(s)`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Ignore workspace pool reconciliation issues in wakeup.
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function cleanupZombieLock(dryRun, log) {
|
|
99
|
+
const lockStatus = (0, lock_js_1.checkLockStatus)();
|
|
100
|
+
if (!lockStatus.isZombie || !lockStatus.pid) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
log(`Found zombie lock (PID: ${lockStatus.pid}), cleaning...`);
|
|
104
|
+
if (!dryRun) {
|
|
105
|
+
(0, lock_js_1.removeLock)();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const STALE_PROVIDER_HOME_AGE_MS = 2 * 60 * 60 * 1000; // 2 hours
|
|
109
|
+
const PROVIDER_HOME_PREFIXES = ['steroids-claude-', 'steroids-codex-', 'steroids-gemini-', 'steroids-mistral-'];
|
|
110
|
+
/**
|
|
111
|
+
* Remove stale provider isolated-HOME directories from temp locations.
|
|
112
|
+
* These are created by setupIsolatedHome() in each provider and should be
|
|
113
|
+
* cleaned by the provider's close/error handler. When the runner process is
|
|
114
|
+
* SIGTERM'd, the cleanup never fires and dirs accumulate (with npm caches
|
|
115
|
+
* reaching 500MB+ each).
|
|
116
|
+
*
|
|
117
|
+
* Scans both os.tmpdir() and /private/tmp (macOS /tmp symlink target) since
|
|
118
|
+
* older versions may have used a different temp root.
|
|
119
|
+
*/
|
|
120
|
+
function cleanStaleProviderHomes(dryRun, log) {
|
|
121
|
+
let cleaned = 0;
|
|
122
|
+
const cutoffMs = Date.now() - STALE_PROVIDER_HOME_AGE_MS;
|
|
123
|
+
// Collect unique directories to scan
|
|
124
|
+
const dirsToScan = new Set();
|
|
125
|
+
dirsToScan.add((0, node_os_1.tmpdir)());
|
|
126
|
+
// macOS: /tmp → /private/tmp, but os.tmpdir() returns /var/folders/.../T/
|
|
127
|
+
if (process.platform === 'darwin') {
|
|
128
|
+
dirsToScan.add('/private/tmp');
|
|
129
|
+
}
|
|
130
|
+
for (const scanDir of dirsToScan) {
|
|
131
|
+
try {
|
|
132
|
+
const entries = (0, node_fs_1.readdirSync)(scanDir, { withFileTypes: true });
|
|
133
|
+
for (const entry of entries) {
|
|
134
|
+
if (!entry.isDirectory())
|
|
135
|
+
continue;
|
|
136
|
+
if (!PROVIDER_HOME_PREFIXES.some((p) => entry.name.startsWith(p)))
|
|
137
|
+
continue;
|
|
138
|
+
const dirPath = (0, node_path_1.join)(scanDir, entry.name);
|
|
139
|
+
try {
|
|
140
|
+
const stat = (0, node_fs_1.statSync)(dirPath);
|
|
141
|
+
if (stat.mtimeMs > cutoffMs)
|
|
142
|
+
continue; // Still fresh, skip
|
|
143
|
+
if (!dryRun) {
|
|
144
|
+
(0, node_fs_1.rmSync)(dirPath, { recursive: true, force: true });
|
|
145
|
+
}
|
|
146
|
+
cleaned++;
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// Stat or remove failed — skip this entry
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Directory listing failed — not critical
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (cleaned > 0) {
|
|
158
|
+
log(`Cleaned ${cleaned} stale provider home dir(s)`);
|
|
159
|
+
}
|
|
160
|
+
return cleaned;
|
|
161
|
+
}
|
|
162
|
+
const TERMINAL_SESSION_STATUSES = ['completed', 'failed', 'aborted'];
|
|
163
|
+
const MAX_POOL_SLOTS_PER_PROJECT = 2;
|
|
164
|
+
/**
|
|
165
|
+
* Remove workstream clone directories for completed/failed parallel sessions,
|
|
166
|
+
* and prune excess idle pool slots beyond MAX_POOL_SLOTS_PER_PROJECT.
|
|
167
|
+
*
|
|
168
|
+
* Workstream clones (ws-*) are single-use — once the session ends, they're
|
|
169
|
+
* dead weight. Pool slots (pool-*) are reusable across sessions, so we keep
|
|
170
|
+
* a small number per project for fast re-start.
|
|
171
|
+
*/
|
|
172
|
+
async function pruneCompletedWorkspaces(globalDb, dryRun, log) {
|
|
173
|
+
let cleaned = 0;
|
|
174
|
+
try {
|
|
175
|
+
// 1. Clean workstream clone dirs for terminal sessions
|
|
176
|
+
const terminalClones = globalDb.prepare(`SELECT w.clone_path
|
|
177
|
+
FROM workstreams w
|
|
178
|
+
JOIN parallel_sessions s ON s.id = w.session_id
|
|
179
|
+
WHERE s.status IN (${TERMINAL_SESSION_STATUSES.map(() => '?').join(',')})
|
|
180
|
+
AND w.clone_path IS NOT NULL`).all(...TERMINAL_SESSION_STATUSES);
|
|
181
|
+
for (const row of terminalClones) {
|
|
182
|
+
if (!row.clone_path || !(0, node_fs_1.existsSync)(row.clone_path))
|
|
183
|
+
continue;
|
|
184
|
+
if (!dryRun) {
|
|
185
|
+
try {
|
|
186
|
+
(0, node_fs_1.rmSync)(row.clone_path, { recursive: true, force: true });
|
|
187
|
+
cleaned++;
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// Ignore individual removal failures
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
cleaned++;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// 2. Prune excess idle pool slots (keep MAX per project)
|
|
198
|
+
const projectIds = globalDb.prepare(`SELECT DISTINCT project_id FROM workspace_pool_slots`).all();
|
|
199
|
+
for (const { project_id } of projectIds) {
|
|
200
|
+
// Get all idle slots for this project, ordered by index (keep lowest)
|
|
201
|
+
const idleSlots = globalDb.prepare(`SELECT id, slot_path, slot_index FROM workspace_pool_slots
|
|
202
|
+
WHERE project_id = ? AND status = 'idle'
|
|
203
|
+
ORDER BY slot_index ASC`).all(project_id);
|
|
204
|
+
// Keep the first MAX slots, prune the rest
|
|
205
|
+
const toPrune = idleSlots.slice(MAX_POOL_SLOTS_PER_PROJECT);
|
|
206
|
+
for (const slot of toPrune) {
|
|
207
|
+
if (!dryRun) {
|
|
208
|
+
try {
|
|
209
|
+
if (slot.slot_path && (0, node_fs_1.existsSync)(slot.slot_path)) {
|
|
210
|
+
(0, node_fs_1.rmSync)(slot.slot_path, { recursive: true, force: true });
|
|
211
|
+
}
|
|
212
|
+
globalDb.prepare('DELETE FROM workspace_pool_slots WHERE id = ?').run(slot.id);
|
|
213
|
+
cleaned++;
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Ignore individual removal failures
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
cleaned++;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// 3. Remove entire workspace dirs for unregistered projects
|
|
225
|
+
const { getRegisteredProjects } = await import('./projects.js');
|
|
226
|
+
const { getProjectHash } = await import('../parallel/clone.js');
|
|
227
|
+
const registeredHashes = new Set(getRegisteredProjects(false).map((p) => getProjectHash(p.path)));
|
|
228
|
+
const workspaceRoot = (0, node_path_1.join)((0, node_os_1.homedir)(), '.steroids', 'workspaces');
|
|
229
|
+
if ((0, node_fs_1.existsSync)(workspaceRoot)) {
|
|
230
|
+
// Remove entire hash dirs for unregistered projects
|
|
231
|
+
try {
|
|
232
|
+
for (const hashEntry of (0, node_fs_1.readdirSync)(workspaceRoot, { withFileTypes: true })) {
|
|
233
|
+
if (!hashEntry.isDirectory())
|
|
234
|
+
continue;
|
|
235
|
+
if (registeredHashes.has(hashEntry.name))
|
|
236
|
+
continue; // Active project, skip
|
|
237
|
+
const hashDir = (0, node_path_1.join)(workspaceRoot, hashEntry.name);
|
|
238
|
+
if (!dryRun) {
|
|
239
|
+
try {
|
|
240
|
+
(0, node_fs_1.rmSync)(hashDir, { recursive: true, force: true });
|
|
241
|
+
// Also clean DB records for this project hash
|
|
242
|
+
globalDb.prepare('DELETE FROM workspace_pool_slots WHERE project_id = ?').run(hashEntry.name);
|
|
243
|
+
cleaned++;
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// Ignore
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
cleaned++;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
// Ignore workspace root scan errors
|
|
256
|
+
}
|
|
257
|
+
// Build set of all known clone paths from DB
|
|
258
|
+
const allClonePaths = new Set();
|
|
259
|
+
const dbClones = globalDb.prepare('SELECT clone_path FROM workstreams WHERE clone_path IS NOT NULL').all();
|
|
260
|
+
for (const c of dbClones)
|
|
261
|
+
allClonePaths.add(c.clone_path);
|
|
262
|
+
const dbSlots = globalDb.prepare('SELECT slot_path FROM workspace_pool_slots WHERE slot_path IS NOT NULL').all();
|
|
263
|
+
for (const s of dbSlots)
|
|
264
|
+
allClonePaths.add(s.slot_path);
|
|
265
|
+
// Scan each project hash dir for orphan ws-*/pool-* subdirs
|
|
266
|
+
try {
|
|
267
|
+
for (const hashEntry of (0, node_fs_1.readdirSync)(workspaceRoot, { withFileTypes: true })) {
|
|
268
|
+
if (!hashEntry.isDirectory())
|
|
269
|
+
continue;
|
|
270
|
+
const hashDir = (0, node_path_1.join)(workspaceRoot, hashEntry.name);
|
|
271
|
+
for (const sub of (0, node_fs_1.readdirSync)(hashDir, { withFileTypes: true })) {
|
|
272
|
+
if (!sub.isDirectory())
|
|
273
|
+
continue;
|
|
274
|
+
if (!sub.name.startsWith('ws-'))
|
|
275
|
+
continue; // Only clean ws-* orphans; keep pool-* slots
|
|
276
|
+
const subPath = (0, node_path_1.join)(hashDir, sub.name);
|
|
277
|
+
if (allClonePaths.has(subPath))
|
|
278
|
+
continue; // Tracked in DB, skip
|
|
279
|
+
if (!dryRun) {
|
|
280
|
+
try {
|
|
281
|
+
(0, node_fs_1.rmSync)(subPath, { recursive: true, force: true });
|
|
282
|
+
cleaned++;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// Ignore
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
cleaned++;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// Ignore workspace root scan errors
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
// Workspace cleanup errors must not block other wakeup steps
|
|
301
|
+
}
|
|
302
|
+
if (cleaned > 0) {
|
|
303
|
+
log(`Pruned ${cleaned} stale workspace clone(s) / excess pool slot(s)`);
|
|
304
|
+
}
|
|
305
|
+
return cleaned;
|
|
306
|
+
}
|
|
307
|
+
async function performWakeupGlobalMaintenance(options) {
|
|
308
|
+
const { globalDb, dryRun, log } = options;
|
|
309
|
+
const results = cleanupStaleRunners(globalDb, dryRun, log);
|
|
310
|
+
releaseExpiredLeases(globalDb, log);
|
|
311
|
+
await reconcileStaleWorkspaces(globalDb, log);
|
|
312
|
+
cleanupZombieLock(dryRun, log);
|
|
313
|
+
cleanStaleProviderHomes(dryRun, log);
|
|
314
|
+
await pruneCompletedWorkspaces(globalDb, dryRun, log);
|
|
315
|
+
return results;
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=wakeup-global-cleanup.js.map
|