Critical Bug Fixes
Fixed: UTF-8 Panics (#74, #73, #71)
- Added safe
truncate_str()helper — never splits multibyte characters - Fixed 20 crash sites across kernel, memory, API, runtime, channels, and CLI
- Chinese text, emoji, and em-dash no longer crash the daemon
Fixed: Shell_exec Infinite Loop (#69)
- Agent no longer retries denied tool calls endlessly burning API credits
- Approval denial now injects guidance message so the LLM stops retrying
- Works in both streaming and non-streaming paths
Fixed: Stale Groq Model (#60)
- Removed decommissioned
deepseek-r1-distill-llama-70b(was returning HTTP 400)
Fixed: Volatile System Prompt Cache Misses (#82)
- Moved canonical context from system prompt to first user message
- System prompt is now stable across turns, enabling provider prompt caching
Fixed: Misleading Empty Response (#61)
- Now tracks whether tools actually executed
- Shows accurate message when model returns empty (no more false "tools executed" claims)
UI Improvements
- TUI chat now shows per-message cost alongside token counts (
$0.0012) - HTTP
/api/agents/{id}/messageresponse now includescost_usdfield - All 16 TUI screens use safe UTF-8 truncation