Skip to content

Release acceptance fixes: desktop commit-memory reserve, bundled edge0-infer, model docs - #193

Merged
shuk777 merged 5 commits into
mainfrom
fix/release-acceptance
Nov 12, 2026
Merged

shuk777 merged 5 commits into
mainfrom
fix/release-acceptance

Conversation

@shuk777

@shuk777 shuk777 commented Nov 12, 2026

Copy link
Copy Markdown
Collaborator

What & why

Fixes found while accepting the 0.2.0 Windows arm64 release on an RTX Spark (N1X) machine.

Desktop app: keep enough commit memory for generation (b1fac34)

On a GPU that shares system memory, Windows charges VRAM allocations to the commit limit (RAM + page file). edge0-strata's --expert-cache auto fills the free VRAM, so the official Edge0 145B Q3K left ~0.5 GB of commit free after loading on a 128 GB machine (66.5 GB visible to Windows, 102.5 GB commit limit). The first request commits ~6.5 GB more, and the engine crashed with an out-of-memory error. It worked only after retries, when a dying engine still held VRAM at start-up and the new cache came out ~9 GB smaller.

Without changing the engine or the machine, the app now:

  • waits after the ready line until the committed memory has been steady for 3 s (at most 30 s) before reporting the model loaded;
  • when less than 10 GiB is left, reloads the engine with --strata-arg --vram-reserve-mib N sized to the shortfall (at most twice, up to 24 GiB), and remembers N per model in memory-reserve.json so later loads start with it;
  • stops reloading a model when a reload frees no commit memory (a GPU with its own memory);
  • shows an English warning when less than 8 GiB is still free, and adds the likely cause to the error when the engine dies mid-generation.

Only models run by edge0-strata get the reserve; macOS has no commit limit and skips the check. A smaller cache drops the least used experts: an engine that started with ~9 GB less cache decoded at 34.4 tok/s against 34.1–34.7 tok/s with a full one.

Desktop app (cfe48bd, 11d9abd): use the edge0-infer beside the app when no executable is set; read the engine status once a model is loaded so the sidebar names the device.

Docs (2b735d6, 57d6840): link the Edge0 145B and 120B Hugging Face repositories; drop the stale start.sh / model-bench.json note.

Area

  • Engine, CLI or server (edge0-infer/)
  • Model asset tools (edge0-infer/tools/assets/)
  • Chat app examples (edge0-infer/examples/)
  • Model docs (docs/)
  • Other

How was it tested?

  • macOS (Apple Silicon): cargo test in edge0-infer/examples/desktop/src-tauri (28 passed, including the reserve sizing and per-model memory tests), npm test (214 passed), tsc --noEmit.
  • Windows 11 arm64, RTX Spark N1X: release build of the app (tauri build) succeeds. The crash and its cause were reproduced and measured there (commit limit, per-process GPU memory, Resource-Exhaustion-Detector events). Loading the official Edge0 145B Q3K with the reload is being tested on that machine now; results will be added here.

Checklist

  • ctest --preset cpu -L "L0|L1" passes locally in edge0-infer/ (engine changes)
  • Ran the higher test levels this change affects (see edge0-infer/docs/testing.md)
  • Added/updated tests for new behavior
  • Updated relevant docs / READMEs (incl. translations if user-facing)

hattori7243 and others added 5 commits November 12, 2026 11:31
The Windows release package puts Edge0 Chat.exe and edge0-infer.exe in the same folder, yet a first start
stopped at "No edge0-infer executable is configured" until the path was entered by hand. Reading the
settings now fills an empty executable with the edge0-infer next to the app's own executable when it is
there; a path the user set is kept, and without that file nothing changes.
The sidebar names the device from /status, but the app polled /status only on the Status and Service pages,
so after loading a model it showed "device unknown" until one of those pages was opened.
Replace the coming-soon placeholders with the four Hugging Face repositories,
add Edge0-145B and Edge0-120B badges after the ModelScope badges, and use the
README.md Edge0-120B scores (51.3 / 75.3) in the translations and the model page.
… memory

On a GPU that shares system memory (Windows on RTX Spark), the engine's
automatic expert cache fills the free VRAM, which Windows charges to the
commit limit. Edge0 145B then left ~0.5 GB of commit free and the first
generation could crash with an out-of-memory error.

A load now waits for the committed memory to stay steady for 3 s. When
less than 10 GiB is free, the engine is reloaded with --strata-arg
--vram-reserve-mib covering the shortfall (at most twice); the reserve is
remembered per model in memory-reserve.json. A model whose reload frees no
commit memory is not reloaded again. Below 8 GiB the UI shows a warning,
and an engine that dies mid-generation reports the likely cause.

Co-authored-by: Cursor <cursoragent@cursor.com>
@shuk777
shuk777 merged commit 3203c39 into main Nov 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants