What's Changed
This release resolves 19 bugs across runtime, kernel, CLI, Web UI, and hands — all verified with live daemon testing.
Runtime & Drivers
- #834 Remove 3 decommissioned Groq models (
gemma2-9b-it,llama-3.2-1b/3b-preview) - #805 Ollama streaming parser handles both
reasoning_contentandreasoningfields - #845 Model fallback chain retries with
fallback_modelson ModelNotFound (404) - #785 Gemini streaming SSE parser handles
\r\nline endings — fixes infinite empty retry loop - #774
tool_use.inputalways normalized to JSON object — fixes Anthropic API "invalid dictionary" errors - #856 Custom model names preserved — user-defined models take priority over builtins (vLLM, etc.)
Kernel & Heartbeat
- #844 Heartbeat skips idle agents that never received a message — no more crash-recover loops
- #848 Hand continuous interval changed from 60s to 3600s — prevents credit waste
- #851/#808 Global
~/.openfang/skills/loaded for all agents; workspace skills properly override globals
CLI
- #826
openfang doctorreportsall_ok=falsewhen provider key is rejected (401/403) - #823
doctor --jsonoutputs clean JSON to stdout, tracing to stderr, BrokenPipe handled - #825 Doctor surfaces blocked workspace skills count in injection scan (no more false "all clean")
- #828
skill installdetects Git URLs (https://,git@) and clones before installing
Web Dashboard
- #767 Workflows page scrollable (flex layout fix)
- #802 Model dropdown handles object options — no more
[object Object]for Ollama - #816 Spawn wizard provider dropdown loads dynamically from
/api/providers(43 providers) - #770 Chat streaming renders in real-time (Alpine.js splice reactivity + stale WS guard)
WebSocket & API
- #836 Tool events include
idfield for concurrent call correlation
Hands
- #820 Browser Hand checks
python3beforepython— works on modern Linux distros
Stats
- 2,186+ tests passing, zero clippy warnings
- All fixes verified with live daemon testing
Full Changelog: v0.5.1...v0.5.3