crewly 1.20.234 → 1.20.236
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/backend/backend/src/index.d.ts +17 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +184 -125
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +30 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +5 -9
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +127 -0
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/resource-mode.service.js +264 -0
- package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/restore-queue.d.ts +103 -0
- package/dist/backend/backend/src/services/agent/restore-queue.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/restore-queue.js +184 -0
- package/dist/backend/backend/src/services/agent/restore-queue.js.map +1 -0
- package/dist/backend/backend/src/types/settings.types.d.ts +4 -0
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +8 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +30 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +127 -0
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/resource-mode.service.js +264 -0
- package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/restore-queue.d.ts +103 -0
- package/dist/cli/backend/src/services/agent/restore-queue.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/restore-queue.js +184 -0
- package/dist/cli/backend/src/services/agent/restore-queue.js.map +1 -0
- package/dist/cli/backend/src/services/core/system-health.util.d.ts +89 -0
- package/dist/cli/backend/src/services/core/system-health.util.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/system-health.util.js +220 -0
- package/dist/cli/backend/src/services/core/system-health.util.js.map +1 -0
- package/dist/cli/backend/src/types/settings.types.d.ts +4 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +8 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/frontend/dist/assets/{index-bc4e2a93.js → index-a719c15a.js} +54 -54
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Staggered boot restore: agents with work in hand come back one at a time
|
|
3
|
+
* (each Claude Code relaunch on a loaded machine takes minutes), the owner's
|
|
4
|
+
* agents first. An on-demand wake for an agent still waiting in the queue
|
|
5
|
+
* moves it up instead of starting a second launch in parallel.
|
|
6
|
+
*
|
|
7
|
+
* @module services/agent/restore-queue
|
|
8
|
+
*/
|
|
9
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
10
|
+
/** Defaults for the restore queue. */
|
|
11
|
+
export const RESTORE_QUEUE_CONSTANTS = {
|
|
12
|
+
DEFAULT_CONCURRENCY: 1,
|
|
13
|
+
MAX_CONCURRENCY: 3,
|
|
14
|
+
/** Per-agent budget before the queue moves on and retries it later */
|
|
15
|
+
DEFAULT_TIMEOUT_MS: 6 * 60 * 1000,
|
|
16
|
+
/** Times an agent that timed out is tried again, at the back of the queue */
|
|
17
|
+
MAX_RETRIES: 1,
|
|
18
|
+
};
|
|
19
|
+
/** Restore priority tiers, lowest first. */
|
|
20
|
+
export const RESTORE_TIER = { OWNER: 1, ORCHESTRATOR: 2, LEAD: 3, OTHER: 4 };
|
|
21
|
+
/**
|
|
22
|
+
* Concurrency from `CREWLY_RESTORE_CONCURRENCY`, clamped to 1..3.
|
|
23
|
+
*
|
|
24
|
+
* @param raw - Env value
|
|
25
|
+
* @returns Concurrency
|
|
26
|
+
*/
|
|
27
|
+
export function restoreConcurrencyFromEnv(raw = process.env.CREWLY_RESTORE_CONCURRENCY) {
|
|
28
|
+
const n = Number.parseInt(raw ?? '', 10);
|
|
29
|
+
if (!Number.isFinite(n) || n < 1)
|
|
30
|
+
return RESTORE_QUEUE_CONSTANTS.DEFAULT_CONCURRENCY;
|
|
31
|
+
return Math.min(n, RESTORE_QUEUE_CONSTANTS.MAX_CONCURRENCY);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Order entries: tier first; inside the owner tier, oldest owner message first.
|
|
35
|
+
*
|
|
36
|
+
* @param entries - Entries to order
|
|
37
|
+
* @returns A new, ordered array
|
|
38
|
+
*/
|
|
39
|
+
export function orderRestoreEntries(entries) {
|
|
40
|
+
return entries
|
|
41
|
+
.map((e, i) => ({ e, i }))
|
|
42
|
+
.sort((a, b) => a.e.tier - b.e.tier
|
|
43
|
+
|| (a.e.tier === RESTORE_TIER.OWNER ? (a.e.ownerSince ?? Infinity) - (b.e.ownerSince ?? Infinity) : 0)
|
|
44
|
+
|| a.i - b.i)
|
|
45
|
+
.map((x) => x.e);
|
|
46
|
+
}
|
|
47
|
+
/** The queue itself. */
|
|
48
|
+
export class RestoreQueue {
|
|
49
|
+
concurrency;
|
|
50
|
+
timeoutMs;
|
|
51
|
+
pending = [];
|
|
52
|
+
active = new Set();
|
|
53
|
+
counters = { started: 0, ready: 0, failed: 0, timedOut: 0 };
|
|
54
|
+
running = false;
|
|
55
|
+
done = Promise.resolve();
|
|
56
|
+
logger;
|
|
57
|
+
constructor(concurrency = restoreConcurrencyFromEnv(), timeoutMs = Number(process.env.CREWLY_RESTORE_TIMEOUT_MS) || RESTORE_QUEUE_CONSTANTS.DEFAULT_TIMEOUT_MS) {
|
|
58
|
+
this.concurrency = concurrency;
|
|
59
|
+
this.timeoutMs = timeoutMs;
|
|
60
|
+
this.logger = LoggerService.getInstance().createComponentLogger('RestoreQueue');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Plan and run the restore. Resolves when every entry is ready, failed or
|
|
64
|
+
* out of retries. Returns the same promise while already running.
|
|
65
|
+
*
|
|
66
|
+
* @param entries - Agents to restore
|
|
67
|
+
* @returns Promise settled when the queue is drained
|
|
68
|
+
*/
|
|
69
|
+
start(entries) {
|
|
70
|
+
if (this.running)
|
|
71
|
+
return this.done;
|
|
72
|
+
this.pending = orderRestoreEntries(entries).map((entry) => ({ entry, attempt: 0, promoted: false }));
|
|
73
|
+
this.counters = { started: 0, ready: 0, failed: 0, timedOut: 0 };
|
|
74
|
+
this.running = true;
|
|
75
|
+
this.logger.info('Restore plan', {
|
|
76
|
+
concurrency: this.concurrency,
|
|
77
|
+
order: this.pending.map((s, i) => `${i + 1}. ${s.entry.name} (${s.entry.reason})`),
|
|
78
|
+
});
|
|
79
|
+
const workers = Array.from({ length: this.concurrency }, () => this.worker());
|
|
80
|
+
this.done = Promise.all(workers).then(() => {
|
|
81
|
+
this.running = false;
|
|
82
|
+
this.logger.info('Restore queue drained', { ...this.counters });
|
|
83
|
+
});
|
|
84
|
+
return this.done;
|
|
85
|
+
}
|
|
86
|
+
/** Whether the agent is still waiting (not yet started) in the queue. */
|
|
87
|
+
isPending(name) {
|
|
88
|
+
return this.pending.some((s) => s.entry.name === name);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* An on-demand wake arrived for an agent. Owner-triggered wakes move it to
|
|
92
|
+
* the front (behind earlier promoted ones); other wakes keep queue order.
|
|
93
|
+
*
|
|
94
|
+
* @param name - Session name
|
|
95
|
+
* @param ownerTriggered - The wake carries an owner message
|
|
96
|
+
* @returns True when the agent is waiting in the queue (the caller must not start it)
|
|
97
|
+
*/
|
|
98
|
+
wake(name, ownerTriggered) {
|
|
99
|
+
const at = this.pending.findIndex((s) => s.entry.name === name);
|
|
100
|
+
if (at < 0)
|
|
101
|
+
return false;
|
|
102
|
+
if (ownerTriggered && !this.pending[at].promoted) {
|
|
103
|
+
const [slot] = this.pending.splice(at, 1);
|
|
104
|
+
slot.promoted = true;
|
|
105
|
+
const after = this.pending.reduce((n, s, i) => (s.promoted ? i + 1 : n), 0);
|
|
106
|
+
this.pending.splice(after, 0, slot);
|
|
107
|
+
this.logger.info('Owner wake moved agent to the front of the restore queue', { name, position: after + 1 });
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this.logger.info('Wake for an agent waiting in the restore queue; keeping queue order', { name, ownerTriggered });
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
/** Progress for /health. */
|
|
115
|
+
stats() {
|
|
116
|
+
return { running: this.running, pending: this.pending.length, ...this.counters, order: this.pending.map((s) => s.entry.name) };
|
|
117
|
+
}
|
|
118
|
+
async worker() {
|
|
119
|
+
for (;;) {
|
|
120
|
+
const slot = this.pending.shift();
|
|
121
|
+
if (!slot)
|
|
122
|
+
return;
|
|
123
|
+
await this.runSlot(slot);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async runSlot({ entry, attempt, promoted }) {
|
|
127
|
+
const { name } = entry;
|
|
128
|
+
this.active.add(name);
|
|
129
|
+
this.counters.started++;
|
|
130
|
+
this.logger.info('Restoring agent', { name, attempt, reason: entry.reason, remaining: this.pending.length });
|
|
131
|
+
let timer;
|
|
132
|
+
const TIMEOUT = Symbol('timeout');
|
|
133
|
+
try {
|
|
134
|
+
const outcome = await Promise.race([
|
|
135
|
+
entry.run(attempt),
|
|
136
|
+
new Promise((resolve) => { timer = setTimeout(() => resolve(TIMEOUT), this.timeoutMs); }),
|
|
137
|
+
]);
|
|
138
|
+
if (outcome === TIMEOUT) {
|
|
139
|
+
this.counters.timedOut++;
|
|
140
|
+
if (attempt < RESTORE_QUEUE_CONSTANTS.MAX_RETRIES) {
|
|
141
|
+
this.logger.warn('Agent did not register in time; moving on and retrying it later', { name, timeoutMs: this.timeoutMs });
|
|
142
|
+
this.pending.push({ entry, attempt: attempt + 1, promoted });
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.counters.failed++;
|
|
146
|
+
this.logger.warn('Agent did not register after retry; giving up', { name });
|
|
147
|
+
}
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (!outcome.success) {
|
|
151
|
+
this.counters.failed++;
|
|
152
|
+
this.logger.warn('Restore failed', { name });
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
this.counters.ready++;
|
|
156
|
+
this.logger.info('Agent ready', { name });
|
|
157
|
+
try {
|
|
158
|
+
await entry.onReady?.();
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
this.logger.warn('Post-restore step failed (non-fatal)', { name, error: err instanceof Error ? err.message : String(err) });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
this.counters.failed++;
|
|
166
|
+
this.logger.error('Restore threw', { name, error: err instanceof Error ? err.message : String(err) });
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
if (timer)
|
|
170
|
+
clearTimeout(timer);
|
|
171
|
+
this.active.delete(name);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
let instance = null;
|
|
176
|
+
/** The process-wide restore queue. */
|
|
177
|
+
export function getRestoreQueue() {
|
|
178
|
+
return (instance ??= new RestoreQueue());
|
|
179
|
+
}
|
|
180
|
+
/** Test hook: drop the singleton. */
|
|
181
|
+
export function resetRestoreQueue() {
|
|
182
|
+
instance = null;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=restore-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-queue.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/restore-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory pressure thresholds.
|
|
3
|
+
*
|
|
4
|
+
* Steve 2026-05-15 dogfood: macOS keeps the "memory used %" stat at
|
|
5
|
+
* 95-99% on virtually every Mac because the OS aggressively uses RAM
|
|
6
|
+
* for file cache (which is reclaimable on demand). Gating spawns purely
|
|
7
|
+
* on usedPercent meant the user's machine permanently skipped every
|
|
8
|
+
* wake action — agents could never come back online. Concrete signal
|
|
9
|
+
* from the log: `consecutiveSkips` climbing past 450 with freeMB
|
|
10
|
+
* fluctuating 80-800 (i.e. plenty of real headroom most of the time).
|
|
11
|
+
*
|
|
12
|
+
* The fix: keep the percent check as a soft signal, but only DECLARE
|
|
13
|
+
* memory pressure when freeMB drops below an absolute headroom floor.
|
|
14
|
+
* A fresh Claude Code process is ~150-200MB RSS; reserve 300MB so we
|
|
15
|
+
* never spawn into an actual OOM situation while letting the cache-
|
|
16
|
+
* inflated 95-99% percent reading pass.
|
|
17
|
+
*
|
|
18
|
+
* Steve 2026-05-22 dogfood follow-up: even with the 300MB floor, the
|
|
19
|
+
* gate fires constantly on macOS because `os.freemem()` only counts
|
|
20
|
+
* STRICTLY-FREE pages — it excludes inactive + speculative pages that
|
|
21
|
+
* the kernel can reclaim on demand. On a typical Mac with 3GB+ of
|
|
22
|
+
* reclaimable cache, os.freemem() routinely reports 50-200MB while
|
|
23
|
+
* Activity Monitor / `vm_stat` show 3-4GB available. The reconciler
|
|
24
|
+
* was effectively never letting wakes through.
|
|
25
|
+
*
|
|
26
|
+
* Real fix: on macOS use `vm_stat` to compute AVAILABLE memory
|
|
27
|
+
* (free + inactive + speculative), which is what the kernel itself
|
|
28
|
+
* uses for OOM decisions. Linux's `os.freemem()` is accurate and
|
|
29
|
+
* keeps the old path.
|
|
30
|
+
*/
|
|
31
|
+
export declare const MEMORY_PRESSURE_SPAWN_THRESHOLD = 90;
|
|
32
|
+
export declare const MEMORY_PRESSURE_MIN_FREE_MB = 300;
|
|
33
|
+
/**
|
|
34
|
+
* Get the platform-appropriate free-memory reading in bytes.
|
|
35
|
+
*
|
|
36
|
+
* Exposed for tests; production callers should use {@link getMemoryStats}
|
|
37
|
+
* or {@link isUnderMemoryPressure} instead.
|
|
38
|
+
*
|
|
39
|
+
* @returns free memory in bytes; falls back to os.freemem() if the
|
|
40
|
+
* macOS vm_stat parse fails.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getAvailableMemoryBytes(): number;
|
|
43
|
+
/**
|
|
44
|
+
* Check if the system is under memory pressure.
|
|
45
|
+
*
|
|
46
|
+
* Returns true only when BOTH:
|
|
47
|
+
* - usedPercent >= MEMORY_PRESSURE_SPAWN_THRESHOLD (90%), AND
|
|
48
|
+
* - freeMB < MEMORY_PRESSURE_MIN_FREE_MB (300MB)
|
|
49
|
+
*
|
|
50
|
+
* On macOS, "free" includes reclaimable inactive+speculative pages
|
|
51
|
+
* (parsed from `vm_stat`) — without this the reading is ~50MB on a
|
|
52
|
+
* Mac that actually has gigabytes of headroom, and the gate would
|
|
53
|
+
* fire constantly. See module-doc comment for the dogfood history.
|
|
54
|
+
*
|
|
55
|
+
* @returns true if system should NOT spawn new processes
|
|
56
|
+
*/
|
|
57
|
+
export declare function isUnderMemoryPressure(): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Get current memory usage stats.
|
|
60
|
+
* @returns Object with totalMB, freeMB, usedPercent
|
|
61
|
+
*/
|
|
62
|
+
export declare function getMemoryStats(): {
|
|
63
|
+
totalMB: number;
|
|
64
|
+
freeMB: number;
|
|
65
|
+
usedPercent: number;
|
|
66
|
+
swapUsedPercent?: number;
|
|
67
|
+
pressureElevated?: boolean;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Swap use and the kernel's own pressure verdict.
|
|
71
|
+
*
|
|
72
|
+
* "Available" memory counts inactive pages as free, which on macOS stays
|
|
73
|
+
* in the gigabytes even while the machine is swapping itself to a crawl
|
|
74
|
+
* (2026-09-23: 10.7 of 12 GB swap, 7 GB compressed, load 117 — and the
|
|
75
|
+
* idle-stop gate still read "memory is fine"). Swap fill and
|
|
76
|
+
* `kern.memorystatus_vm_pressure_level` (1 normal, 2 warn, 4 critical)
|
|
77
|
+
* see that; on Linux, SwapTotal/SwapFree from /proc/meminfo.
|
|
78
|
+
*
|
|
79
|
+
* @returns Swap share in use and whether the OS reports pressure, or null if unreadable
|
|
80
|
+
*/
|
|
81
|
+
export declare function readSwapPressure(): {
|
|
82
|
+
swapUsedPercent: number;
|
|
83
|
+
pressureElevated: boolean;
|
|
84
|
+
} | null;
|
|
85
|
+
/** Reset the swap reading cache — test affordance. */
|
|
86
|
+
export declare function _resetSwapCacheForTesting(): void;
|
|
87
|
+
/** Reset the vm_stat cache — test affordance. */
|
|
88
|
+
export declare function _resetVmStatCacheForTesting(): void;
|
|
89
|
+
//# sourceMappingURL=system-health.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-health.util.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/core/system-health.util.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAwE/C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAOhD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAW/C;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAUA;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA2BhG;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,iDAAiD;AACjD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System health utility functions.
|
|
3
|
+
* Provides shared checks for memory pressure, CPU load, etc.
|
|
4
|
+
* Used by Reconciler, HeartbeatMonitor, Scheduler to gate process spawning.
|
|
5
|
+
*
|
|
6
|
+
* @module services/core/system-health.util
|
|
7
|
+
*/
|
|
8
|
+
import * as os from 'os';
|
|
9
|
+
import { execSync } from 'child_process';
|
|
10
|
+
/**
|
|
11
|
+
* Memory pressure thresholds.
|
|
12
|
+
*
|
|
13
|
+
* Steve 2026-05-15 dogfood: macOS keeps the "memory used %" stat at
|
|
14
|
+
* 95-99% on virtually every Mac because the OS aggressively uses RAM
|
|
15
|
+
* for file cache (which is reclaimable on demand). Gating spawns purely
|
|
16
|
+
* on usedPercent meant the user's machine permanently skipped every
|
|
17
|
+
* wake action — agents could never come back online. Concrete signal
|
|
18
|
+
* from the log: `consecutiveSkips` climbing past 450 with freeMB
|
|
19
|
+
* fluctuating 80-800 (i.e. plenty of real headroom most of the time).
|
|
20
|
+
*
|
|
21
|
+
* The fix: keep the percent check as a soft signal, but only DECLARE
|
|
22
|
+
* memory pressure when freeMB drops below an absolute headroom floor.
|
|
23
|
+
* A fresh Claude Code process is ~150-200MB RSS; reserve 300MB so we
|
|
24
|
+
* never spawn into an actual OOM situation while letting the cache-
|
|
25
|
+
* inflated 95-99% percent reading pass.
|
|
26
|
+
*
|
|
27
|
+
* Steve 2026-05-22 dogfood follow-up: even with the 300MB floor, the
|
|
28
|
+
* gate fires constantly on macOS because `os.freemem()` only counts
|
|
29
|
+
* STRICTLY-FREE pages — it excludes inactive + speculative pages that
|
|
30
|
+
* the kernel can reclaim on demand. On a typical Mac with 3GB+ of
|
|
31
|
+
* reclaimable cache, os.freemem() routinely reports 50-200MB while
|
|
32
|
+
* Activity Monitor / `vm_stat` show 3-4GB available. The reconciler
|
|
33
|
+
* was effectively never letting wakes through.
|
|
34
|
+
*
|
|
35
|
+
* Real fix: on macOS use `vm_stat` to compute AVAILABLE memory
|
|
36
|
+
* (free + inactive + speculative), which is what the kernel itself
|
|
37
|
+
* uses for OOM decisions. Linux's `os.freemem()` is accurate and
|
|
38
|
+
* keeps the old path.
|
|
39
|
+
*/
|
|
40
|
+
export const MEMORY_PRESSURE_SPAWN_THRESHOLD = 90;
|
|
41
|
+
export const MEMORY_PRESSURE_MIN_FREE_MB = 300;
|
|
42
|
+
/** Cached total memory — never changes during process lifetime. */
|
|
43
|
+
const cachedTotalMem = os.totalmem();
|
|
44
|
+
/**
|
|
45
|
+
* macOS detection. Evaluated on every call rather than captured at
|
|
46
|
+
* module load — tests need to flip platform after importing.
|
|
47
|
+
* Runtime overhead is negligible (os.platform is a sync getter).
|
|
48
|
+
*/
|
|
49
|
+
function isDarwin() {
|
|
50
|
+
return os.platform() === 'darwin';
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Throttled cache of the last `vm_stat` reading on macOS. Parsing
|
|
54
|
+
* `vm_stat` involves spawning a child process — at the reconciler's
|
|
55
|
+
* 10-second fast-loop cadence that's tolerable but not free. Hold the
|
|
56
|
+
* last reading for 1s so back-to-back callers in the same tick don't
|
|
57
|
+
* each fork.
|
|
58
|
+
*/
|
|
59
|
+
const VM_STAT_CACHE_TTL_MS = 1_000;
|
|
60
|
+
let vmStatCache = null;
|
|
61
|
+
/**
|
|
62
|
+
* Read macOS `vm_stat` and compute available memory in bytes.
|
|
63
|
+
*
|
|
64
|
+
* macOS reports pages in 5 main buckets:
|
|
65
|
+
* - free: strictly unused, OS can hand out immediately
|
|
66
|
+
* - speculative: prefetched file pages, reclaimable instantly
|
|
67
|
+
* - inactive: pages not recently used, reclaimable on demand
|
|
68
|
+
* - active: hot working set — NOT reclaimable cheaply
|
|
69
|
+
* - wired: kernel/pinned — never reclaimable
|
|
70
|
+
*
|
|
71
|
+
* "Available" = free + speculative + inactive. This matches what the
|
|
72
|
+
* kernel uses when deciding OOM pressure, and what Activity Monitor
|
|
73
|
+
* shows as "Cached Files + Free" headroom.
|
|
74
|
+
*
|
|
75
|
+
* Returns null on any parse failure so the caller can fall back to
|
|
76
|
+
* `os.freemem()` (overly pessimistic but safe — we'd just over-gate,
|
|
77
|
+
* not under-gate, in the worst case).
|
|
78
|
+
*/
|
|
79
|
+
function readMacFreeMemBytes() {
|
|
80
|
+
try {
|
|
81
|
+
const cached = vmStatCache;
|
|
82
|
+
if (cached && Date.now() - cached.at < VM_STAT_CACHE_TTL_MS) {
|
|
83
|
+
return cached.freeMB * 1024 * 1024;
|
|
84
|
+
}
|
|
85
|
+
// -c 1 reports a single sample; default is incremental. Trying to
|
|
86
|
+
// be conservative about runtime — vm_stat with no args takes ~50ms,
|
|
87
|
+
// -c 1 with no interval is essentially instant.
|
|
88
|
+
const out = execSync('vm_stat', { timeout: 1_000, encoding: 'utf8' });
|
|
89
|
+
// First line is the page size: "Mach Virtual Memory Statistics: (page size of 16384 bytes)"
|
|
90
|
+
const pageSizeMatch = out.match(/page size of (\d+) bytes/);
|
|
91
|
+
const pageSize = pageSizeMatch ? Number(pageSizeMatch[1]) : 4096;
|
|
92
|
+
const grab = (label) => {
|
|
93
|
+
const m = out.match(new RegExp(`Pages ${label}[^:]*:\\s+(\\d+)`));
|
|
94
|
+
return m ? Number(m[1]) : 0;
|
|
95
|
+
};
|
|
96
|
+
const freePages = grab('free');
|
|
97
|
+
const inactivePages = grab('inactive');
|
|
98
|
+
const specPages = grab('speculative');
|
|
99
|
+
const availableBytes = (freePages + inactivePages + specPages) * pageSize;
|
|
100
|
+
vmStatCache = { freeMB: availableBytes / 1024 / 1024, at: Date.now() };
|
|
101
|
+
return availableBytes;
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get the platform-appropriate free-memory reading in bytes.
|
|
109
|
+
*
|
|
110
|
+
* Exposed for tests; production callers should use {@link getMemoryStats}
|
|
111
|
+
* or {@link isUnderMemoryPressure} instead.
|
|
112
|
+
*
|
|
113
|
+
* @returns free memory in bytes; falls back to os.freemem() if the
|
|
114
|
+
* macOS vm_stat parse fails.
|
|
115
|
+
*/
|
|
116
|
+
export function getAvailableMemoryBytes() {
|
|
117
|
+
if (isDarwin()) {
|
|
118
|
+
const mac = readMacFreeMemBytes();
|
|
119
|
+
if (mac !== null)
|
|
120
|
+
return mac;
|
|
121
|
+
// Fall through to os.freemem() — conservative but safe.
|
|
122
|
+
}
|
|
123
|
+
return os.freemem();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Check if the system is under memory pressure.
|
|
127
|
+
*
|
|
128
|
+
* Returns true only when BOTH:
|
|
129
|
+
* - usedPercent >= MEMORY_PRESSURE_SPAWN_THRESHOLD (90%), AND
|
|
130
|
+
* - freeMB < MEMORY_PRESSURE_MIN_FREE_MB (300MB)
|
|
131
|
+
*
|
|
132
|
+
* On macOS, "free" includes reclaimable inactive+speculative pages
|
|
133
|
+
* (parsed from `vm_stat`) — without this the reading is ~50MB on a
|
|
134
|
+
* Mac that actually has gigabytes of headroom, and the gate would
|
|
135
|
+
* fire constantly. See module-doc comment for the dogfood history.
|
|
136
|
+
*
|
|
137
|
+
* @returns true if system should NOT spawn new processes
|
|
138
|
+
*/
|
|
139
|
+
export function isUnderMemoryPressure() {
|
|
140
|
+
if (cachedTotalMem === 0)
|
|
141
|
+
return false;
|
|
142
|
+
const free = getAvailableMemoryBytes();
|
|
143
|
+
const usedPercent = ((cachedTotalMem - free) / cachedTotalMem) * 100;
|
|
144
|
+
const freeMB = free / 1024 / 1024;
|
|
145
|
+
// Both conditions must hold — percent is a soft signal, free-MB is
|
|
146
|
+
// the binding constraint.
|
|
147
|
+
return (usedPercent >= MEMORY_PRESSURE_SPAWN_THRESHOLD &&
|
|
148
|
+
freeMB < MEMORY_PRESSURE_MIN_FREE_MB);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get current memory usage stats.
|
|
152
|
+
* @returns Object with totalMB, freeMB, usedPercent
|
|
153
|
+
*/
|
|
154
|
+
export function getMemoryStats() {
|
|
155
|
+
if (cachedTotalMem === 0)
|
|
156
|
+
return { totalMB: 0, freeMB: 0, usedPercent: 0 };
|
|
157
|
+
const free = getAvailableMemoryBytes();
|
|
158
|
+
const swap = readSwapPressure();
|
|
159
|
+
return {
|
|
160
|
+
totalMB: Math.round(cachedTotalMem / 1024 / 1024),
|
|
161
|
+
freeMB: Math.round(free / 1024 / 1024),
|
|
162
|
+
usedPercent: Math.round(((cachedTotalMem - free) / cachedTotalMem) * 100 * 10) / 10,
|
|
163
|
+
...(swap ?? {}),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
const SWAP_CACHE_TTL_MS = 5_000;
|
|
167
|
+
let swapCache = null;
|
|
168
|
+
/**
|
|
169
|
+
* Swap use and the kernel's own pressure verdict.
|
|
170
|
+
*
|
|
171
|
+
* "Available" memory counts inactive pages as free, which on macOS stays
|
|
172
|
+
* in the gigabytes even while the machine is swapping itself to a crawl
|
|
173
|
+
* (2026-09-23: 10.7 of 12 GB swap, 7 GB compressed, load 117 — and the
|
|
174
|
+
* idle-stop gate still read "memory is fine"). Swap fill and
|
|
175
|
+
* `kern.memorystatus_vm_pressure_level` (1 normal, 2 warn, 4 critical)
|
|
176
|
+
* see that; on Linux, SwapTotal/SwapFree from /proc/meminfo.
|
|
177
|
+
*
|
|
178
|
+
* @returns Swap share in use and whether the OS reports pressure, or null if unreadable
|
|
179
|
+
*/
|
|
180
|
+
export function readSwapPressure() {
|
|
181
|
+
const cached = swapCache;
|
|
182
|
+
if (cached && Date.now() - cached.at < SWAP_CACHE_TTL_MS)
|
|
183
|
+
return cached.value;
|
|
184
|
+
let value = null;
|
|
185
|
+
try {
|
|
186
|
+
if (isDarwin()) {
|
|
187
|
+
const usage = execSync('sysctl -n vm.swapusage', { timeout: 1_000, encoding: 'utf8' });
|
|
188
|
+
const total = Number(usage.match(/total = ([\d.]+)M/)?.[1] ?? 0);
|
|
189
|
+
const used = Number(usage.match(/used = ([\d.]+)M/)?.[1] ?? 0);
|
|
190
|
+
let level = 1;
|
|
191
|
+
try {
|
|
192
|
+
level = Number(execSync('sysctl -n kern.memorystatus_vm_pressure_level', { timeout: 1_000, encoding: 'utf8' }).trim()) || 1;
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// Older macOS without the sysctl: swap alone decides.
|
|
196
|
+
}
|
|
197
|
+
value = { swapUsedPercent: total > 0 ? Math.round((used / total) * 1000) / 10 : 0, pressureElevated: level >= 2 };
|
|
198
|
+
}
|
|
199
|
+
else if (os.platform() === 'linux') {
|
|
200
|
+
const info = execSync('cat /proc/meminfo', { timeout: 1_000, encoding: 'utf8' });
|
|
201
|
+
const kb = (k) => Number(info.match(new RegExp(`${k}:\\s+(\\d+)`))?.[1] ?? 0);
|
|
202
|
+
const total = kb('SwapTotal');
|
|
203
|
+
value = { swapUsedPercent: total > 0 ? Math.round(((total - kb('SwapFree')) / total) * 1000) / 10 : 0, pressureElevated: false };
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
value = null;
|
|
208
|
+
}
|
|
209
|
+
swapCache = { value, at: Date.now() };
|
|
210
|
+
return value;
|
|
211
|
+
}
|
|
212
|
+
/** Reset the swap reading cache — test affordance. */
|
|
213
|
+
export function _resetSwapCacheForTesting() {
|
|
214
|
+
swapCache = null;
|
|
215
|
+
}
|
|
216
|
+
/** Reset the vm_stat cache — test affordance. */
|
|
217
|
+
export function _resetVmStatCacheForTesting() {
|
|
218
|
+
vmStatCache = null;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=system-health.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-health.util.js","sourceRoot":"","sources":["../../../../../../backend/src/services/core/system-health.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,10 @@ export interface GeneralSettings {
|
|
|
58
58
|
runtimeCommands: Record<AIRuntime, string>;
|
|
59
59
|
/** Minutes of inactivity before an agent is automatically suspended (0 = disabled) */
|
|
60
60
|
agentIdleTimeoutMinutes: number;
|
|
61
|
+
/** Max concurrently running agents while the machine is under resource pressure (orchestrator exempt). Default 6. */
|
|
62
|
+
pressureMaxRunningAgents?: number;
|
|
63
|
+
/** Idle timeout in minutes while under resource pressure (0 = use the normal timeout). Default 10. */
|
|
64
|
+
pressureIdleTimeoutMinutes?: number;
|
|
61
65
|
/** Enable proactive context compaction based on cumulative terminal output volume */
|
|
62
66
|
enableProactiveCompact: boolean;
|
|
63
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"settings.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,8 @@ export function getDefaultSettings() {
|
|
|
108
108
|
'crewly-agent': CREWLY_AGENT_MANAGED_COMMAND,
|
|
109
109
|
},
|
|
110
110
|
agentIdleTimeoutMinutes: 30,
|
|
111
|
+
pressureMaxRunningAgents: 6,
|
|
112
|
+
pressureIdleTimeoutMinutes: 10,
|
|
111
113
|
enableProactiveCompact: false,
|
|
112
114
|
enableThresholdCompact: false,
|
|
113
115
|
enableSelfEvolution: false,
|
|
@@ -182,6 +184,12 @@ export function validateSettings(settings) {
|
|
|
182
184
|
if (typeof settings.general.agentIdleTimeoutMinutes === 'number' && settings.general.agentIdleTimeoutMinutes < 0) {
|
|
183
185
|
errors.push('agentIdleTimeoutMinutes must be >= 0 (0 disables idle suspension)');
|
|
184
186
|
}
|
|
187
|
+
if (typeof settings.general.pressureMaxRunningAgents === 'number' && settings.general.pressureMaxRunningAgents < 1) {
|
|
188
|
+
errors.push('pressureMaxRunningAgents must be >= 1');
|
|
189
|
+
}
|
|
190
|
+
if (typeof settings.general.pressureIdleTimeoutMinutes === 'number' && settings.general.pressureIdleTimeoutMinutes < 0) {
|
|
191
|
+
errors.push('pressureIdleTimeoutMinutes must be >= 0');
|
|
192
|
+
}
|
|
185
193
|
if (typeof settings.general.autonomyTickIntervalMinutes !== 'number' || settings.general.autonomyTickIntervalMinutes < 0) {
|
|
186
194
|
errors.push('autonomyTickIntervalMinutes must be a number >= 0 (0 disables the polling tick — events still fire)');
|
|
187
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
|