instar 1.3.678 → 1.3.679

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":"HostPressureSampler.d.ts","sourceRoot":"","sources":["../../src/monitoring/HostPressureSampler.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE3E,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,0GAA0G;AAC1G,eAAO,MAAM,gCAAgC,EAAE,sBAG9C,CAAC;AAEF,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,IAAI,kBAAkB,CAO7D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,GAAE,sBAAyD,GACpE,eAAe,CAKjB"}
1
+ {"version":3,"file":"HostPressureSampler.d.ts","sourceRoot":"","sources":["../../src/monitoring/HostPressureSampler.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG3E,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,0GAA0G;AAC1G,eAAO,MAAM,gCAAgC,EAAE,sBAG9C,CAAC;AAEF,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,IAAI,kBAAkB,CAW7D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,GAAE,sBAAyD,GACpE,eAAe,CAKjB"}
@@ -17,6 +17,7 @@
17
17
  */
18
18
  import os from 'node:os';
19
19
  import { computePressure } from './SessionReaper.js';
20
+ import { hostFreeMemPct } from './hostMemoryPressure.js';
20
21
  /** The reaper's historical defaults — an unconfigured caller is byte-identical to the old inline code. */
21
22
  export const DEFAULT_HOST_PRESSURE_THRESHOLDS = {
22
23
  cpuModerateLoadPerCore: 1.0,
@@ -24,8 +25,12 @@ export const DEFAULT_HOST_PRESSURE_THRESHOLDS = {
24
25
  };
25
26
  /** Sample the raw inputs from the OS. Pure read; never throws. */
26
27
  export function sampleHostPressureInputs() {
27
- const total = os.totalmem();
28
- const freePct = total > 0 ? (os.freemem() / total) * 100 : 100;
28
+ // freePct is the CORRECTED available-memory percentage (free + inactive +
29
+ // purgeable on macOS via vm_stat; MemAvailable on Linux) — NOT os.freemem(),
30
+ // which on macOS reports only raw free pages (~0.1%) and falsely registered as
31
+ // critical, over-reaping sessions + permanently blocking revival.
32
+ // Spec: macos-memory-pressure-metric.
33
+ const freePct = hostFreeMemPct();
29
34
  // CPU pressure: 1-min load average ÷ core count. cores unknown ⇒ memory-only.
30
35
  const cores = os.cpus()?.length ?? 0;
31
36
  const loadPerCore = cores > 0 ? os.loadavg()[0] / cores : null;
@@ -1 +1 @@
1
- {"version":3,"file":"HostPressureSampler.js","sourceRoot":"","sources":["../../src/monitoring/HostPressureSampler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,eAAe,EAAwB,MAAM,oBAAoB,CAAC;AAQ3E,0GAA0G;AAC1G,MAAM,CAAC,MAAM,gCAAgC,GAA2B;IACtE,sBAAsB,EAAE,GAAG;IAC3B,sBAAsB,EAAE,GAAG;CAC5B,CAAC;AAQF,kEAAkE;AAClE,MAAM,UAAU,wBAAwB;IACtC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/D,8EAA8E;IAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,aAAqC,gCAAgC;IAErE,OAAO,eAAe,CAAC,wBAAwB,EAAE,EAAE;QACjD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;QACzD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;KAC1D,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"HostPressureSampler.js","sourceRoot":"","sources":["../../src/monitoring/HostPressureSampler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,eAAe,EAAwB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQzD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,gCAAgC,GAA2B;IACtE,sBAAsB,EAAE,GAAG;IAC3B,sBAAsB,EAAE,GAAG;CAC5B,CAAC;AAQF,kEAAkE;AAClE,MAAM,UAAU,wBAAwB;IACtC,0EAA0E;IAC1E,6EAA6E;IAC7E,+EAA+E;IAC/E,kEAAkE;IAClE,sCAAsC;IACtC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,8EAA8E;IAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,aAAqC,gCAAgC;IAErE,OAAO,eAAe,CAAC,wBAAwB,EAAE,EAAE;QACjD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;QACzD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;KAC1D,CAAC,CAAC;AACL,CAAC"}
@@ -91,14 +91,6 @@ export declare class MemoryPressureMonitor extends EventEmitter {
91
91
  * Read system memory — platform-aware.
92
92
  */
93
93
  private readSystemMemory;
94
- /**
95
- * macOS: parse vm_stat
96
- */
97
- private parseVmStat;
98
- /**
99
- * Linux: parse /proc/meminfo
100
- */
101
- private parseProcMeminfo;
102
94
  /**
103
95
  * Linear regression over recent readings.
104
96
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryPressureMonitor.d.ts","sourceRoot":"","sources":["../../src/monitoring/MemoryPressureMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEjF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,2EAA2E;IAC3E,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyBD,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,MAAM,GAAE,2BAAgC;IAepD,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAOZ;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAmBpG,OAAO,KAAK,kBAAkB,GAG7B;IAED,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,aAAa,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAIxE,QAAQ,IAAI,WAAW;IAcvB;;OAEG;IACH,eAAe,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAoBxD,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,KAAK;IAkCb,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgCnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,WAAW;CA8BpB"}
1
+ {"version":3,"file":"MemoryPressureMonitor.d.ts","sourceRoot":"","sources":["../../src/monitoring/MemoryPressureMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEjF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,2EAA2E;IAC3E,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwBD,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,MAAM,GAAE,2BAAgC;IAepD,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAOZ;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAmBpG,OAAO,KAAK,kBAAkB,GAG7B;IAED,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,aAAa,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAIxE,QAAQ,IAAI,WAAW;IAcvB;;OAEG;IACH,eAAe,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAoBxD,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,KAAK;IAkCb,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,WAAW;CA8BpB"}
@@ -13,10 +13,9 @@
13
13
  * Includes trend tracking via ring buffer + linear regression.
14
14
  */
15
15
  import { EventEmitter } from 'node:events';
16
- import { spawnSync } from 'node:child_process';
17
16
  import * as fs from 'node:fs';
18
- import os from 'node:os';
19
17
  import { DegradationReporter } from './DegradationReporter.js';
18
+ import { readSystemMemoryPressure } from './hostMemoryPressure.js';
20
19
  const DEFAULT_THRESHOLDS = {
21
20
  warning: 60,
22
21
  elevated: 75,
@@ -24,7 +23,6 @@ const DEFAULT_THRESHOLDS = {
24
23
  };
25
24
  const RING_BUFFER_SIZE = 20;
26
25
  const TREND_WINDOW = 6;
27
- const PAGE_SIZE_BYTES = 16384; // macOS Apple Silicon
28
26
  // Adaptive intervals
29
27
  const INTERVALS = {
30
28
  normal: 30_000,
@@ -234,66 +232,10 @@ export class MemoryPressureMonitor extends EventEmitter {
234
232
  * Read system memory — platform-aware.
235
233
  */
236
234
  readSystemMemory() {
237
- if (process.platform === 'darwin') {
238
- return this.parseVmStat();
239
- }
240
- else if (process.platform === 'linux') {
241
- return this.parseProcMeminfo();
242
- }
243
- else {
244
- // Fallback: use Node's process.memoryUsage (very rough)
245
- const mem = process.memoryUsage();
246
- const totalGB = os.totalmem() / (1024 ** 3);
247
- const usedGB = mem.rss / (1024 ** 3);
248
- return {
249
- pressurePercent: (usedGB / totalGB) * 100,
250
- freeGB: totalGB - usedGB,
251
- totalGB,
252
- };
253
- }
254
- }
255
- /**
256
- * macOS: parse vm_stat
257
- */
258
- parseVmStat() {
259
- const output = spawnSync('vm_stat', [], { encoding: 'utf-8', timeout: 5000 }).stdout ?? '';
260
- const pageSizeMatch = output.match(/page size of (\d+) bytes/);
261
- const pageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : PAGE_SIZE_BYTES;
262
- const parsePages = (label) => {
263
- const match = output.match(new RegExp(`${label}:\\s+(\\d+)`));
264
- return match ? parseInt(match[1], 10) : 0;
265
- };
266
- const freePages = parsePages('Pages free');
267
- const activePages = parsePages('Pages active');
268
- const inactivePages = parsePages('Pages inactive');
269
- const wiredPages = parsePages('Pages wired down');
270
- const compressorPages = parsePages('Pages occupied by compressor');
271
- const purgeablePages = parsePages('Pages purgeable');
272
- const totalPages = freePages + activePages + inactivePages + wiredPages + compressorPages;
273
- const totalBytes = totalPages * pageSize;
274
- const totalGB = totalBytes / (1024 ** 3);
275
- const availablePages = freePages + inactivePages + purgeablePages;
276
- const availableBytes = availablePages * pageSize;
277
- const freeGB = availableBytes / (1024 ** 3);
278
- const usedPages = totalPages - availablePages;
279
- const pressurePercent = totalPages > 0 ? (usedPages / totalPages) * 100 : 0;
280
- return { pressurePercent, freeGB, totalGB };
281
- }
282
- /**
283
- * Linux: parse /proc/meminfo
284
- */
285
- parseProcMeminfo() {
286
- const content = fs.readFileSync('/proc/meminfo', 'utf-8');
287
- const parseKB = (key) => {
288
- const match = content.match(new RegExp(`${key}:\\s+(\\d+)`));
289
- return match ? parseInt(match[1], 10) : 0;
290
- };
291
- const totalKB = parseKB('MemTotal');
292
- const availableKB = parseKB('MemAvailable') || (parseKB('MemFree') + parseKB('Buffers') + parseKB('Cached'));
293
- const totalGB = totalKB / (1024 * 1024);
294
- const freeGB = availableKB / (1024 * 1024);
295
- const pressurePercent = totalKB > 0 ? ((totalKB - availableKB) / totalKB) * 100 : 0;
296
- return { pressurePercent, freeGB, totalGB };
235
+ // Delegates to the ONE shared, platform-aware reader (macOS reads
236
+ // free+inactive+purgeable via vm_stat, Linux MemAvailable, never raw
237
+ // os.freemem). Spec: macos-memory-pressure-metric.
238
+ return readSystemMemoryPressure();
297
239
  }
298
240
  /**
299
241
  * Linear regression over recent readings.
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryPressureMonitor.js","sourceRoot":"","sources":["../../src/monitoring/MemoryPressureMonitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryPressureMonitor.js","sourceRoot":"","sources":["../../src/monitoring/MemoryPressureMonitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export interface SystemMemoryReading {
2
+ /** Used memory as a percentage (0-100). The inverse of available. */
3
+ pressurePercent: number;
4
+ freeGB: number;
5
+ totalGB: number;
6
+ }
7
+ /** Injectable IO so the parsers + reader unit-test without a real OS. */
8
+ export interface MemReadDeps {
9
+ platform?: string;
10
+ vmStat?: () => string;
11
+ procMeminfo?: () => string;
12
+ memoryUsage?: () => {
13
+ rss: number;
14
+ };
15
+ totalmem?: () => number;
16
+ }
17
+ /** Pure: parse `vm_stat` output → memory reading. Available = free + inactive + purgeable. */
18
+ export declare function parseVmStat(output: string): SystemMemoryReading;
19
+ /** Pure: parse `/proc/meminfo` content → memory reading (Linux MemAvailable). */
20
+ export declare function parseProcMeminfo(content: string): SystemMemoryReading;
21
+ /** Read host memory pressure, platform-aware. Bounded + never throws (fallback on any error). */
22
+ export declare function readSystemMemoryPressure(deps?: MemReadDeps): SystemMemoryReading;
23
+ /**
24
+ * Free/available host memory as a percentage (0-100) — the CORRECTED replacement
25
+ * for `os.freemem()/os.totalmem()*100`. Use this for any memory-pressure tier
26
+ * decision so macOS is read truthfully (free+inactive+purgeable), not as raw
27
+ * free pages.
28
+ */
29
+ export declare function hostFreeMemPct(deps?: MemReadDeps): number;
30
+ //# sourceMappingURL=hostMemoryPressure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostMemoryPressure.d.ts","sourceRoot":"","sources":["../../src/monitoring/hostMemoryPressure.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;CACzB;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAqB/D;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAWrE;AAED,iGAAiG;AACjG,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,WAAgB,GAAG,mBAAmB,CA2BpF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,WAAgB,GAAG,MAAM,CAG7D"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * hostMemoryPressure — THE one correct, platform-aware measure of host memory
3
+ * availability across the codebase. Spec: macos-memory-pressure-metric.
4
+ *
5
+ * THE BUG THIS FIXES: `os.freemem()` on macOS returns ONLY "Pages free" — which
6
+ * macOS keeps near-zero (it uses the rest for cache/compressor/purgeable), so
7
+ * `os.freemem()/totalmem()` reads ~0.1-0.4% on a healthy machine and falsely
8
+ * registers as "critical" memory pressure. That false-critical made the
9
+ * SessionReaper over-reap AND permanently blocked the ResumeQueueDrainer's
10
+ * "machine calm" gate (it can never reach a 'normal' tier), so reaped sessions
11
+ * never revived — silently. The CORRECT macOS available memory is
12
+ * free + inactive (reclaimable) + purgeable, exactly what `vm_stat` exposes and
13
+ * what MemoryPressureMonitor already computed for HealthChecker — this lifts that
14
+ * calculation into one shared, injectable, unit-tested helper.
15
+ */
16
+ import { spawnSync } from 'node:child_process';
17
+ import * as fs from 'node:fs';
18
+ import os from 'node:os';
19
+ import { withSyncOp } from '../core/InFlightSyncOpMarker.js';
20
+ const PAGE_SIZE_BYTES = 16384; // macOS Apple Silicon default; overridden by vm_stat's own page size
21
+ /** Pure: parse `vm_stat` output → memory reading. Available = free + inactive + purgeable. */
22
+ export function parseVmStat(output) {
23
+ const pageSizeMatch = output.match(/page size of (\d+) bytes/);
24
+ const pageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : PAGE_SIZE_BYTES;
25
+ const parsePages = (label) => {
26
+ const match = output.match(new RegExp(`${label}:\\s+(\\d+)`));
27
+ return match ? parseInt(match[1], 10) : 0;
28
+ };
29
+ const freePages = parsePages('Pages free');
30
+ const activePages = parsePages('Pages active');
31
+ const inactivePages = parsePages('Pages inactive');
32
+ const wiredPages = parsePages('Pages wired down');
33
+ const compressorPages = parsePages('Pages occupied by compressor');
34
+ const purgeablePages = parsePages('Pages purgeable');
35
+ const totalPages = freePages + activePages + inactivePages + wiredPages + compressorPages;
36
+ const totalGB = (totalPages * pageSize) / (1024 ** 3);
37
+ const availablePages = freePages + inactivePages + purgeablePages;
38
+ const freeGB = (availablePages * pageSize) / (1024 ** 3);
39
+ const usedPages = totalPages - availablePages;
40
+ const pressurePercent = totalPages > 0 ? (usedPages / totalPages) * 100 : 0;
41
+ return { pressurePercent, freeGB, totalGB };
42
+ }
43
+ /** Pure: parse `/proc/meminfo` content → memory reading (Linux MemAvailable). */
44
+ export function parseProcMeminfo(content) {
45
+ const parseKB = (key) => {
46
+ const match = content.match(new RegExp(`${key}:\\s+(\\d+)`));
47
+ return match ? parseInt(match[1], 10) : 0;
48
+ };
49
+ const totalKB = parseKB('MemTotal');
50
+ const availableKB = parseKB('MemAvailable') || (parseKB('MemFree') + parseKB('Buffers') + parseKB('Cached'));
51
+ const totalGB = totalKB / (1024 * 1024);
52
+ const freeGB = availableKB / (1024 * 1024);
53
+ const pressurePercent = totalKB > 0 ? ((totalKB - availableKB) / totalKB) * 100 : 0;
54
+ return { pressurePercent, freeGB, totalGB };
55
+ }
56
+ /** Read host memory pressure, platform-aware. Bounded + never throws (fallback on any error). */
57
+ export function readSystemMemoryPressure(deps = {}) {
58
+ const platform = deps.platform ?? process.platform;
59
+ try {
60
+ if (platform === 'darwin') {
61
+ // The real vm_stat read funnels through withSyncOp so the in-flight sync-op
62
+ // marker sees this blocking call (tmux-event-loop-resilience-spec). The
63
+ // injected `vmStat` (tests) is a pure stub and needs no funnel.
64
+ const out = deps.vmStat ? deps.vmStat() : withSyncOp(() => spawnSync('vm_stat', [], { encoding: 'utf-8', timeout: 5000 }).stdout ?? '');
65
+ if (out)
66
+ return parseVmStat(out);
67
+ }
68
+ else if (platform === 'linux') {
69
+ const content = deps.procMeminfo ? deps.procMeminfo() : fs.readFileSync('/proc/meminfo', 'utf-8');
70
+ if (content)
71
+ return parseProcMeminfo(content);
72
+ }
73
+ }
74
+ catch (err) {
75
+ // @silent-fallback-ok — a vm_stat/proc read failure falls back to the rough
76
+ // process.memoryUsage estimate below; an observability metric, never a gate
77
+ // that should wedge on a transient read error. NOT silent: the fallback is
78
+ // logged (No Silent Degradation — advisory degradation must be visible) so a
79
+ // genuinely-broken vm_stat surfaces instead of hiding behind a server-RSS
80
+ // estimate. The fallback biases toward LOW pressure (server RSS ≪ host RAM),
81
+ // the safe direction for a reaper (less aggressive) + revival (more available).
82
+ console.warn(`[hostMemoryPressure] ${platform} memory read failed; using rough RSS estimate: ${err instanceof Error ? err.message : String(err)}`);
83
+ }
84
+ // Fallback (other platforms or a read error): rough RSS-based estimate.
85
+ const totalGB = (deps.totalmem ? deps.totalmem() : os.totalmem()) / (1024 ** 3);
86
+ const usedGB = (deps.memoryUsage ? deps.memoryUsage() : process.memoryUsage()).rss / (1024 ** 3);
87
+ return { pressurePercent: totalGB > 0 ? (usedGB / totalGB) * 100 : 0, freeGB: totalGB - usedGB, totalGB };
88
+ }
89
+ /**
90
+ * Free/available host memory as a percentage (0-100) — the CORRECTED replacement
91
+ * for `os.freemem()/os.totalmem()*100`. Use this for any memory-pressure tier
92
+ * decision so macOS is read truthfully (free+inactive+purgeable), not as raw
93
+ * free pages.
94
+ */
95
+ export function hostFreeMemPct(deps = {}) {
96
+ const pct = 100 - readSystemMemoryPressure(deps).pressurePercent;
97
+ return Math.max(0, Math.min(100, pct));
98
+ }
99
+ //# sourceMappingURL=hostMemoryPressure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostMemoryPressure.js","sourceRoot":"","sources":["../../src/monitoring/hostMemoryPressure.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.678",
3
+ "version": "1.3.679",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-26T13:16:49.510Z",
5
- "instarVersion": "1.3.678",
4
+ "generatedAt": "2026-06-26T20:21:36.405Z",
5
+ "instarVersion": "1.3.679",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,25 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ The agent measures how busy the machine's memory is to decide when to close idle sessions and when to bring them back. On macOS it was reading the wrong number — Node's raw "free memory," which macOS deliberately keeps near zero by using the rest for cache and compression. So a perfectly healthy Mac looked permanently out of memory. That made the cleanup close idle sessions too eagerly AND permanently blocked the revival queue from bringing them back — so a topic's session could vanish and never return, with no message to the user.
9
+
10
+ The fix reads real available memory the way macOS itself does (free plus the reclaimable inactive and purgeable memory, via vm_stat), and the same correct figure on Linux. The correct calculation already existed in the health checker; this lifts it into one shared, tested place and points the cleanup at it. On the machine where this broke, the old reading was 0.17% (false crisis) and the correct reading is about 20% available (healthy), so sessions revive again.
11
+
12
+ It can only make the cleanup less aggressive and revival more available on macOS — the safe direction — and a separate, larger guarantee (always keep at least one reachable session, and never silently deny a session for resource reasons) is coming next.
13
+
14
+ ## What to Tell Your User
15
+
16
+ If a topic ever went quiet — you sent messages and got nothing back — one cause was the agent mis-reading its own memory on a Mac and refusing to bring a closed session back. That false alarm is fixed: it now reads real available memory, so sessions get cleaned up and revived based on the true picture.
17
+
18
+ ## Summary of New Capabilities
19
+
20
+ - Correct, platform-aware host memory-availability measurement (free + reclaimable on macOS; MemAvailable on Linux) feeding the session reaper and revival queue — no more macOS false-critical from raw free pages.
21
+
22
+ ## Evidence
23
+
24
+ - `tests/unit/host-memory-pressure.test.ts` (13): includes REAL captured `vm_stat` from the incident machine — tiny raw free pages but correct available% reads healthy; a genuinely-critical shape reads low; platform-aware; never-throws fallback. 121 existing reaper/memory/resume-queue tests still green (no regression).
25
+ - Convergence (conformance gate + lessons-aware reviewer, no blockers): `docs/specs/reports/macos-memory-pressure-metric-convergence.md`.
@@ -0,0 +1,15 @@
1
+ # Side-effects review — macos-memory-pressure-metric
2
+
3
+ Change: replace `os.freemem()`-based memory-pressure measurement with REAL available memory (free+inactive+purgeable via vm_stat on macOS; MemAvailable on Linux) in the SessionReaper's pressure input. New `src/monitoring/hostMemoryPressure.ts` (shared); `HostPressureSampler` + `MemoryPressureMonitor` use it. Files: hostMemoryPressure.ts (new), HostPressureSampler.ts, MemoryPressureMonitor.ts, tests + real fixtures.
4
+
5
+ 1. **Over-block:** REDUCES a false over-block — the reaper no longer reads a healthy macOS machine as memory-critical, so it stops over-reaping idle sessions and the resume queue's calm-gate can reach `normal` and revive reaped sessions.
6
+ 2. **Under-block:** None new. The corrected metric is conservative (excludes active + compressor from "available", the safe direction). On a genuinely memory-critical machine it correctly reads critical. A 5-12% `moderate` machine still holds revival (now for a REAL reason, not a false one) — tracked separately as the lifeline-floor follow-on (topic-28130).
7
+ 3. **Level-of-abstraction fit:** Correct. One shared, injectable memory reader feeds all consumers of the single host-pressure signal (reaper, resume-queue, cartographer-sweep). Removes a duplicate vm_stat parser (one definition).
8
+ 4. **Signal vs authority:** Not a gate — a measurement that FEEDS gates. The fix makes the signal truthful; it adds no blocking authority. Serves "No Silent Degradation to Brittle Fallback" (os.freemem was the brittle metric silently degrading availability).
9
+ 5. **Interactions:** The reaper's CPU side (1-min load ÷ cores) is unchanged. MemoryPressureMonitor delegation is byte-identical to its prior private parser (confirmed vs HEAD~1) — HealthChecker behavior preserved. The fallback (RSS estimate on read error) biases low-pressure (server RSS ≪ host RAM) → safe direction; now logged (Observability). ResumeQueueDrainer.safeTier() independently fails closed on error — backstop intact.
10
+ 6. **External surfaces:** No routes. `GET /sessions/reaper`'s `pressure.inputs.freePct` now reports real available% (was ~0.1% on macOS). A `[hostMemoryPressure]` warn on read-failure fallback.
11
+ 7. **Multi-machine posture:** Machine-local by design — each host measures its own memory. No replication/proxy surface.
12
+ 8. **Rollback cost:** Low. Pure measurement change; revert restores os.freemem. No data migration, no config. The change can only relax the reaper / free revival on macOS (the safe direction), so a bad outcome is bounded.
13
+
14
+ ## Second-pass review (touches the reaper pressure path)
15
+ The lessons-aware convergence reviewer audited fail-direction, the parent standard, the reused vm_stat calc (byte-identical, correct exclusions), delegation (behavior-preserving), and the no-threshold-change claim. No blockers; one minor (log the fallback — DONE), one tracked note (moderate-machine residual → lifeline-floor follow-on). Concur.