node-v0.8.73
fix(heartbeat): cgroup-aware container memory gate — 0.8.73
Bug 21 — pod RunPod container memory.max = 31.7GB < DiLoCo
Qwen2.5-7B peak RAM ~25-30GB → OOM mid-load. node.os.freemem()
shows host total on libuv ≤ 18.
Fix:
- NEW container-mem.ts: cgroup v2 + v1 reader, memoized, Mac/Win
fallback host totalmem. - applyContainerMemoryGate() permanent strip if container TOTAL too
small: DiLoCo ≥40GB, LoRA ≥16GB. Env overrides. - Wired in determineCapabilitiesAsync AFTER probes, BEFORE Bug 12 v3
dynamic filter. - One-shot boot log.
Differs from Bug 12 v3 (transient free-RAM hysteresis): this is
static container max = hardware-class permanent gate.
Tests 1882/1882 (+18). POD1 31.7GB scenario tested.
P24 extension Linux container case.