v0.15.0 — security hardening + auth + honest frontend
Updated 2026-08-13 — tag moved to current
main(the release that goes
public). This build adds auto-tiering, the honest bench harness, hub
recommendations and 30+ research experiments on top of the original
security release. Changelog:CHANGELOG.md.
This release came out of a 4-platform public code review. The headline is
security: five verified High-severity bugs are fixed, and the API is
now optionally protected by a token. It also ships the console inside the
wheel (previously pip install produced a server with no web UI).
🔐 Security hardening (OpenCode W1–W5, verified)
- W1 deadlock fix — model eviction no longer runs while holding the
load lock (server froze permanently atmax_loaded_models). - W2 CORS hardening — API is loopback-only by default (
WS_CORS_ORIGINS
to extend); any-website drive-by was possible before. - W3 MCP RCE — MCP server
commandmust now be a bare allowlisted
runner (npx,python,uvx, …) instead of arbitrary shell. - W4 mmap leak — failed GGUF metadata parse no longer leaks the
100 GB mapping + fd.
- W5 path traversal —
assistant_id/issue_idvalidated
^[A-Za-z0-9_.-]+$at the store level (Windows%5Cescape closed). - 11 regression tests, test-first against the pre-fix code.
🔐 API auth (B1) + frontend tests (B2) + thinking-marker fix (B3)
WS_API_TOKEN— Bearer-token auth for/v1/*(console stores + attaches
automatically). 20 frontend tests (thinks 7 + api 13). Thinking/answer
markers now only split at line boundaries.
⚡ Auto-tiering — route requests to the right model
- User-configurable fast/quality tiers, per-tier
max_tokensbudget
(fast 2048 / quality 8192 — kills the temp-0 repetition loop), live
stats card, history export,/v1/tiering/routereturning the tier
budget, and/v1/models/loadnow acceptsextra_args(flags were
silently dropped before).
⚡ Daily driver upgraded — Gemma 4 12B QAT+MTP (EXP-022) + 26B (EXP-019)
- Thai gate 9/9 + tonal 6/6 PERFECT — first model on this rig to pass the
tonal discriminator at usable speed. MTP works on Gemma (+20%) unlike DS
V4's embedded MTP (EXP-015). Qwen3.6 IQ2_M demoted.
🌐 Hub — "Proven on this rig" recommendations
/v1/hub/recommendedwith localisation + in-app evidence; hardened
against bad recommendations.
⚡ Bench harness — honest-measurement core
weight_stream/bench/— clean-room methodology, cmdline verify,
cold/warm runs,--sweep-threads, Gemma 4 channel-think support,
docs/BENCHMARKING.mdofficial methodology.
🧪 Research — 30 experiments + a full paper (this release's payload)
- Physics-calibrated simulator (EXP-025), streaming buffer abstraction
(EXP-026), real MoE compute/I/O ratio (EXP-027), Phase 4 evaluation
metrics + real Qwen benchmark (EXP-028), K3 >RAM simulation (EXP-029),
expert offloading on fits-VRAM (EXP-030), 104 GB model on 64 GB RAM
measured honestly (EXP-012). - Full draft paper:
research/paper/paper.md, auto fact-checked
(scripts/factcheck_paper.py— 33/33 PASS).
🧪 Full suite
- 471 passed / 7 skipped Python tests · mypy clean (60 files) ·
20 frontend tests · CI green on Windows Python 3.11–3.13.
Install / run — see README. Requires llama.cpp's
llama-server (or point the API at your own llama-server).