Bug Fixes
- LoopGuard poll detection (#603): Removed fragile
cmd.len() < 50heuristic. Poll detection is now purely keyword-based — long kubectl/docker commands are correctly identified. - Custom model provider display (#581): Model switcher dropdown now shows
provider:modelformat instead of just the display name. - Telegram typing indicator (#571): Typing indicator now refreshes every 4 seconds continuously during LLM processing, instead of expiring after 5 seconds.
- "No agent selected" error (#569): Agents created via API are now immediately registered in the channel router's name cache.
- Tool calls denied by approval (#537): Denial message now includes guidance to use
auto_approve = truein config.toml or--yoloflag. - WhatsApp sender metadata (#597): MessageRequest and PromptContext now have sender_id/sender_name fields for identity-aware agents.
- LLM auth boot failure (#572): Already fixed in v0.4.0 (auto-detect fallback). Commented for users on older versions.
Enhancements
- NVIDIA NIM provider (#579): Added as OpenAI-compatible provider with 5 models (nemotron-70b, llama-3.1-405b/70b, mistral-large, nemotron-4-340b). Set
NVIDIA_API_KEYto use. - YOLO mode (#573):
openfang start --yoloauto-approves all tool calls. Also configurable viaauto_approve = truein[approval]section. - Skill output persistence (#596): Tool/skill output cards in dashboard now default to expanded instead of collapsed, keeping results visible.