Why
On macOS the memory picture is the Windows WSL2 story with weaker guardrails:
- The hard floor is effectively unenforced: on Mac the floor check only warns (Linux hard-fails), and the post-Docker runtime recheck is explicitly WARN-only — a Docker VM below the 5 GB floor proceeds and OOM-crashloops the client.
- Recommendations aren't clamped to physical RAM (
PF_REC_MEM_GB=16 → "raise to 16 GB" on a 16 GB or smaller Mac is impossible or nonsensical).
- Nothing ever sizes a VM: Docker Desktop's VM is only hinted at; colima is hard-coded
--memory 6 — too big for a ≤8 GB Mac to spare, never derived from hw.memsize.
Where (v1.9.6)
Scope
- Enforce the runtime-budget floor on macOS (fail with the exact fix, or auto-size with consent).
- Size colima from
hw.memsize (e.g. min(half of physical, recommended), floor-checked); clamp every recommendation at physical − 2 GB.
- With consent, set Docker Desktop's VM memory (settings.json
memoryMiB) the way the Windows .wslconfig ticket does — one shared sizing helper.
Acceptance criteria
- A sub-floor VM can no longer sail through preflight; no recommendation exceeds physical RAM; fresh colima on an 8 GB Mac starts with a workable, derived budget.
Why
On macOS the memory picture is the Windows WSL2 story with weaker guardrails:
PF_REC_MEM_GB=16→ "raise to 16 GB" on a 16 GB or smaller Mac is impossible or nonsensical).--memory 6— too big for a ≤8 GB Mac to spare, never derived fromhw.memsize.Where (v1.9.6)
scripts/lib/preflight.shL234–238, L264–276; floor/rec constants L26–28.scripts/lib/setup-macos.shL74.scripts/lib/preflight.shL147, L227, L235 — reporting side tracked in fix(installer): memory check flip-flops between WSL VM budget and physical RAM; impossible recommendations #417.Scope
hw.memsize(e.g. min(half of physical, recommended), floor-checked); clamp every recommendation at physical − 2 GB.memoryMiB) the way the Windows.wslconfigticket does — one shared sizing helper.Acceptance criteria