v0.9.4
What's New
π§ cg-owned llama.cpp server stack (decouples from LM Studio)
coding-guardrails now ships its own llama.cpp build, so every user
runs the same reproducible inference stack β no LM Studio, no manual flag
guessing. The pin (afcda09d1, build 9284) is chosen to include critical
fixes, notably the Gemma 4 tool-call grammar fix (llama.cpp #21680)
that older bundled binaries lack.
coding-guardrails server build # one-time
coding-guardrails server download gemma-4-26B-A4B-it-qat-UD-Q4_K_XL
coding-guardrails server start --model gemma-4-26B-A4B-it-qat-UD-Q4_K_XL
coding-guardrails server statusAll artifacts live under ~/.local/share/coding-guardrails/ (XDG-aware). See docs/server.md.
π Delegation reliability fix (root cause)
Subagents through the proxy previously hit a failure where the model
reported a write "done" but the file was unchanged β and retried in a
loop. Root cause was not pi or our config: it was a llama.cpp Gemma 4
bug that corrupted complex/nested JSON tool-call arguments (a path
value cut at a brace inside code). The cg-owned build includes the fix.
π Proxy: max_tokens 8192 β 16384
The default output cap was calibrated for the 9B and was too small for
verbose models (Gemma 4 26B) writing multi-KB files: truncated JSON args
failed validation, the agent retried, same cap truncated again β loop.
16384 fits typical file writes + JSON overhead. pi can still override
per-request.
π Model registry decoupled
The registry now searches cg's own cache first; LM Studio and
HuggingFace caches are read-only fallbacks. A clean cg user never needs
LM Studio.
π§ͺ 24 new tests (390 β 414)
Full coverage of the new server/ module β paths, version pinning, build
clone/configure flow, launcher lifecycle (start/stop/status/double-start),
registry decoupling (cg-cache-wins + fallback), argv assembly, and source
mapping.