Public: anyone can read this; the crew can change it.
A memory cut names its real source: FORGE_CELL_MEMORY_MAX_MIB only when set, otherwise the pod's memory.max share #3158
Check · Review · Land · Live done — Landed and live in production.
A memory cut now names where its ceiling really came from. The `bun test` runs for this change pass. The type check did not run: `bun x tsc --noEmit` failed here with "bun is unable to write files to tempdir: ReadOnlyFileSystem", so the forge's check is the first real type check.
shipped production is serving it deploy 4183511
A memory cut now names where its ceiling really came from. The bun test runs for this change pass. The type check did not run: bun x tsc --noEmit failed here with "bun is unable to write files to tempdir: ReadOnlyFileSystem", so the forge's check is the first real type check.
- Source:
memoryCeilingSource()already returnedenv,podordefault, so I reused it instead of changingmemoryCeiling()'s return.resolveLimitsnow records that source asLimits.ceilingFrom. - Wording:
memorySource(source, from)andlimitWarningsboth use oneceilingTexthelper.
- env: names FORGE_CELL_MEMORY_MAX_MIB.
- pod: says "75% of the pod's memory.max" and does not mention the variable.
- default: says "the 4096 MiB default, the host states no memory limit". The issue didn't specify this text, so check the wording.
- Warning line:
limitWarningstakes an optionalpodFile, which lets tests point it at a stand-inmemory.max. - Tests: a new test in
test/memory-ceiling.test.tscovers all three sources against stand-in pod files, for both the warning line and the breach summary. I edited two existing tests, because the old wording they asserted was the bug:
- the kill-message test in test/memory-ceiling.test.ts now passes ceilingFrom into memorySource;
- the breach-text test in test/check-memory-warning.test.ts now sets ceilingFrom: "env" in its limits.
The issue says this waits for #3135; I did not check whether that pull has landed.
I ran test/memory-ceiling.test.ts, test/check-memory-warning.test.ts and test/settings-check-memory.test.ts, not the whole suite. Nothing in the app's runtime or forge.json changed.
The wording now names the real source in the warning and the kill message, and the new test covers env, pod and default for both. No page, terminal or API surface changes, so nothing to see in the preview. Two things I would do next: (1) move the MemorySource doc comment back above MemorySource; (2) derive the 4096 in the default text from the constant behind the default instead of hardcoding it.
A memory cut now names where its ceiling really came from. The
bun testruns for this change pass. The type check did not run:bun x tsc --noEmitfailed here with "bun is unable to write files to tempdir: ReadOnlyFileSystem", so the forge's check is the first real type check.memoryCeilingSource()already returnedenv,podordefault, so I reused it instead of changingmemoryCeiling()'s return.resolveLimitsnow records that source asLimits.ceilingFrom.memorySource(source, from)andlimitWarningsboth use oneceilingTexthelper.-
env: namesFORGE_CELL_MEMORY_MAX_MIB. -pod: says "75% of the pod's memory.max" and does not mention the variable. -default: says "the 4096 MiB default, the host states no memory limit". The issue didn't specify this text, so check the wording.limitWarningstakes an optionalpodFile, which lets tests point it at a stand-inmemory.max.test/memory-ceiling.test.tscovers all three sources against stand-in pod files, for both the warning line and the breach summary. I edited two existing tests, because the old wording they asserted was the bug:- the kill-message test in
test/memory-ceiling.test.tsnow passesceilingFromintomemorySource; - the breach-text test intest/check-memory-warning.test.tsnow setsceilingFrom: "env"in its limits.The issue says this waits for #3135; I did not check whether that pull has landed.
I ran
test/memory-ceiling.test.ts,test/check-memory-warning.test.tsandtest/settings-check-memory.test.ts, not the whole suite. Nothing in the app's runtime orforge.jsonchanged.Closes #3145