fix(dashboard): measure V8 heap against its limit, not its current size
The Health Score's heap component divided heapUsed by heapTotal, which is only what V8 has grown the heap to so far, so a healthy server read 70-90% and dragged the score down. GET /api/settings/info now also reports server.memory.heapLimit (v8 heap_size_limit, the ceiling the process dies at); the V8 Heap bar and the Health Score divide by it, falling back to heapTotal against an older server.
This commit is contained in:
@@ -1896,6 +1896,14 @@ describe("Transcript cache integration", () => {
|
||||
assert.equal(res.body.server.version, pkg.version);
|
||||
});
|
||||
|
||||
it("reports the V8 heap LIMIT, not just the currently allocated heapTotal", async () => {
|
||||
const res = await fetch("/api/settings/info");
|
||||
const { heapUsed, heapTotal, heapLimit } = res.body.server.memory;
|
||||
assert.ok(Number.isFinite(heapLimit), "heapLimit should be a number");
|
||||
// heapTotal is what V8 has grown to so far; the limit is the ceiling.
|
||||
assert.ok(heapLimit >= heapTotal && heapLimit > heapUsed);
|
||||
});
|
||||
|
||||
it("should evict cache entry on SessionEnd", async () => {
|
||||
const tmpTranscript = path.join(os.tmpdir(), `test-evict-${Date.now()}.jsonl`);
|
||||
fs.writeFileSync(
|
||||
|
||||
Reference in New Issue
Block a user