Pull requests / #1679

#1679 Windows: cap conversation-memory admission at the commit limit too (#1607)

open · @nekomario28 · 0 comentários · No GitHub

WindowsLinux

Descrição

Fixes #1607.

The conversation-cache/checkpoint admission reads `ullAvailPhys` only, so it admits allocations the **commit limit** (RAM + page file) then refuses — the engine exits `0xC0000409` with no message even with GiB of physical RAM free. Under WDDM the card's VRAM is charged to the commit too (#141), and the reporter reproduced the crash 6 times, every time within 0.1 GiB of the limit.

## Change

`conversation_available_memory()` on Windows now returns `min(ullAvailPhys, ullAvailPageFile)` — the same pair `host_available_memory` already exposes to the expert-source path. It never admits *more* than today (when the page file is generous, physical RAM is still the bound); the admission floor logic is untouched, and Linux still reads `MemAvailable`. The two parking log lines drop the word "physical" since the bound can now be the commit charge.

## Test plan

- `x86_64-w64-mingw32-g++ -fsyntax-only` on `conversation_memory.cpp` and `_conversation_memory_test.cpp`: the `_WIN32` TU type-checks against real windows.h.
- Native build + run of `conversation_memory_test`: 23 checks pass; the Windows-specific check (`*available <= ullTotalPhys`) still holds since the bound only tightens.
- `g++ -fsyntax-only` on the Linux path: unchanged, clean.

Not tested: the actual 0xC0000409 crash on Windows (no Windows box here) — the change only tightens admission, and the reporter's trace ties every crash to the commit boundary this now respects.

No site

Links install, modelos, releases.