๐ nanobot v0.1.4.post2 is here โ 32 PRs merged, 14 new contributors! The community is on fire ๐ฅ
This release focuses on reliability: a completely redesigned heartbeat, prompt caching for lower API costs, hardened provider compatibility, and dozens of channel-level fixes. Fewer surprises, more stability.
Highlights
Heartbeat Overhaul โ Replaced fragile token detection with a virtual tool-call decision mechanism; heartbeat is now truly silent when idle (#1102, #1054, #1039, #1036)
Prompt Cache Optimization โ Dynamic context (time, session) moved from system prompt to user message, enabling persistent prompt cache hits (#1115)
Agent Reliability โ Behavioral constraints, full tool history in context, and actionable error hints (#1046)
CLI โ DingTalk, QQ, Email added to nanobot status output (#982)
Packaging โ Workspace templates moved to nanobot/templates/ for proper pip packaging (#1043)
Docs โ systemd user service deployment guide (#968)
What's Changed
fix: change VolcEngine litellm prefix from openai to volcengine by @init-new-world in https://github.com/HKUDS/nanobot/pull/951
fix(context): Fix 'Missing reasoning_content field' error for deepseek provider. by @homorunner in https://github.com/HKUDS/nanobot/pull/947
Remove redundant tools description by @vincentchen0x2-dev in https://github.com/HKUDS/nanobot/pull/939
feat(cli): add DingTalk, QQ, and Email to channels status output by @luoyingwen in https://github.com/HKUDS/nanobot/pull/982
fix(security): prevent path traversal bypass via startswith check by @nghiahsgs in https://github.com/HKUDS/nanobot/pull/956
fix(slack): add exception handling to socket listener by @nghiahsgs in https://github.com/HKUDS/nanobot/pull/957
fix(session): handle errors in legacy session migration by @nghiahsgs in https://github.com/HKUDS/nanobot/pull/958
fix(email): evict oldest half of dedup set instead of clearing entirely by @nghiahsgs in https://github.com/HKUDS/nanobot/pull/959
fix(loop): serialize /new consolidation and preserve session on archival failure by @Athemis in https://github.com/HKUDS/nanobot/pull/881
fix(qq): make start() long-running per base channel contract by @nghiahsgs in https://github.com/HKUDS/nanobot/pull/962
docs: add systemd user service instructions to README by @katafractari in https://github.com/HKUDS/nanobot/pull/968
fix(mcp): add 30s timeout to MCP tool calls to prevent agent hangs by @eliumusk in https://github.com/HKUDS/nanobot/pull/950
fix(providers): normalize empty reasoning_content to None at provider level by @nghiahsgs in https://github.com/HKUDS/nanobot/pull/955
fix(feishu): replace file.get with message_resource.get to fix feishu file download problem by @FloRainRJY in https://github.com/HKUDS/nanobot/pull/986
fix(provider): filter empty text content blocks causing API 400 by @eliumusk in https://github.com/HKUDS/nanobot/pull/949
feat(channels): add send_progress option to control progress message โฆ by @luoyingwen in https://github.com/HKUDS/nanobot/pull/1000
fix(heartbeat): route heartbeat runs to enabled chat context by @KimGLee in https://github.com/HKUDS/nanobot/pull/1036
refactor: move workspace/ to nanobot/templates/ for packaging by @Re-bin in https://github.com/HKUDS/nanobot/pull/1043
improve agent reliability: behavioral constraints, full tool history, error hints by @Re-bin in https://github.com/HKUDS/nanobot/pull/1046
feat(slack): isolate session context per thread by @pjbakker in https://github.com/HKUDS/nanobot/pull/1048
fix(heartbeat): deliver agent response to user and fix HEARTBEAT_OK detection by @Re-bin in https://github.com/HKUDS/nanobot/pull/1054
fix(heartbeat): make start idempotent and require exact HEARTBEAT_OK by @cyzlmh in https://github.com/HKUDS/nanobot/pull/1039
fix: break Discord typing loop on persistent HTTP failure by @nikolasdehor in https://github.com/HKUDS/nanobot/pull/1029
fix(heartbeat): replace HEARTBEAT_OK token with virtual tool-call decision by @Re-bin in https://github.com/HKUDS/nanobot/pull/1102
fix(web): resolve API key on each call + improve error message by @coldxiangyu163 in https://github.com/HKUDS/nanobot/pull/1098
Fix: memory consolidation TypeError when LLM returns dict arguments by @suportly in https://github.com/HKUDS/nanobot/pull/1061
feat(feishu): support images in post (rich text) messages by @xzq-xu in https://github.com/HKUDS/nanobot/pull/1090
fix(email): allow proactive sends when autoReplyEnabled is false by @chengyongru in https://github.com/HKUDS/nanobot/pull/1077
**fix(mcp): Remove default timeout for HTTP transport to avoid tool imeout conflicts by @dulltackle in https://github.com/HKUDS/nanobot/pull/1062
fix: resolve API key at call time so config changes take effect without restart by @haosenwang1018 in https://github.com/HKUDS/nanobot/pull/1071
fix: stabilize prompt prefix for better cache reuse by @pikaxinge in https://github.com/HKUDS/nanobot/pull/1115
fix(slack): post-process slackify_markdown to fix leftover bold artifacts by @devops-tomorrow-io in https://github.com/HKUDS/nanobot/pull/1107
New Contributors
@homorunner made their first contribution in https://github.com/HKUDS/nanobot/pull/947
@vincentchen0x2-dev made their first contribution in https://github.com/HKUDS/nanobot/pull/939
@luoyingwen made their first contribution in https://github.com/HKUDS/nanobot/pull/982
@nghiahsgs made their first contribution in https://github.com/HKUDS/nanobot/pull/956
@katafractari made their first contribution in https://github.com/HKUDS/nanobot/pull/968
@eliumusk made their first contribution in https://github.com/HKUDS/nanobot/pull/950
@FloRainRJY made their first contribution in https://github.com/HKUDS/nanobot/pull/986
@cyzlmh made their first contribution in https://github.com/HKUDS/nanobot/pull/1039
@suportly made their first contribution in https://github.com/HKUDS/nanobot/pull/1061
@xzq-xu made their first contribution in https://github.com/HKUDS/nanobot/pull/1090
@dulltackle made their first contribution in https://github.com/HKUDS/nanobot/pull/1062
@haosenwang1018 made their first contribution in https://github.com/HKUDS/nanobot/pull/1071
@pikaxinge made their first contribution in https://github.com/HKUDS/nanobot/pull/1115
@devops-tomorrow-io made their first contribution in https://github.com/HKUDS/nanobot/pull/1107
Full Changelog: https://github.com/HKUDS/nanobot/compare/v0.1.4.post1...v0.1.4.post2