nanobot v0.1.5.post1

v0.1.5.post1
Added 7
  • Dream's consolidation flow can now recognize repeated workflows and promote them into standalone workspace skills
  • Auto compact feature that proactively summarizes older context during idle periods while preserving recent messages
  • WebSocket channel that runs a WebSocket server with streaming events, token-based auth, per-connection sessions, and TLS support
  • Anthropic's adaptive reasoning mode allowing Claude to decide when and how much to think
  • MCP resources and prompts are now exposed as read-only tools that the agent can query directly
  • Notebook editing tool added
  • Kagi joined the web search provider lineup
Changed 11
  • Follow-up messages sent while the agent is working are now injected into the active turn instead of queuing, and on streaming channels the reply continues in the same live response
  • Telegram channel now supports location sharing
  • Discord channel gained streaming replies and proxy support
  • Feishu channel added done-emoji lifecycle, inline tool hints, and Lark global domain config
  • QQ and WeCom channels received full media support
  • Slack's message tool now resolves #channel_name and @user to real IDs
Fixed 4
  • Retry amplification where a failed send would trigger cascading retries across all channels
  • StepFun Plan API reasoning fields now fall back correctly
  • Tool-call arguments are now normalized for strict providers that reject malformed JSON
  • Cron jobs no longer drop due to reentrant store reloads during execution, fixed-interval task duplication from concurrent store replacement, job config not reloading, and manual run state not being preserved

🐈 nanobot v0.1.5.post1 is here 🎉 — 80 PRs merged, 25 new contributors. The agent learned to manage itself.

If v0.1.5 was about making the building livable, v0.1.5.post1 is about the building learning to take care of itself. The agent now compresses its own context before it gets too long, injects follow-up messages mid-turn instead of making you wait, discovers reusable skills from its own workflows, and opens a WebSocket so anything can talk to it. Meanwhile, 40+ bug fixes across cron, memory, retry, and channels turned "it works most of the time" into "it works."

Highlights
  • Mid-turn injection — follow-ups don't wait in line — If you send another message while the agent is still working, it no longer queues behind a lock. The follow-up gets injected into the active turn, and on streaming channels the reply continues in the same live response. This makes long tool-call chains feel interactive instead of one-way. Edge-case draining on error paths was hardened in a follow-up pass. (#3042, #3110)

  • Dream learns skills, not just facts — Dream's consolidation flow can now recognize repeated workflows and promote them into standalone workspace skills under skills/. Combined with disabledSkills config for excluding skills you don't want, the agent's skill surface is now something that grows organically and stays manageable. (#3048, #2959)

  • Auto compact — the agent manages its own context — Sessions no longer grow until they hit the wall. Auto compact watches for idle periods, then proactively summarizes older context while preserving recent live messages — so when you come back, the agent remembers what matters without dragging along everything that doesn't. This isn't the old "nuke the session" approach; it's surgical compression that keeps the conversation feeling continuous. Pair it with idleCompactAfterMinutes in config for fine-grained control. (#3007, #3081, #3093)

  • WebSocket channel — connect anything — A new websocket channel runs a WebSocket server with streaming (delta + stream_end events), token-based auth (static or issued), per-connection sessions, and TLS support. Web apps, CLIs, Chrome extensions, scripts — anything that can open a socket can now talk to the agent in real time. (#2964)

  • Channels got deeper — Telegram gained location sharing. Discord got streaming replies and proxy support. Feishu added done-emoji lifecycle, inline tool hints, and Lark global domain config. QQ and WeCom received full media support. Slack's message tool now resolves #channel_name and @user to real IDs. The API endpoint accepts file uploads via JSON base64 and multipart, with automatic document extraction (PDF, DOCX, XLSX, PPTX) across all channels. And retry amplification — where a failed send would trigger cascading retries — was fixed across every channel. (#2910, #2939, #2960, #2993, #3046, #3044, #3138, #2938, #3053)

  • Providers — adaptive thinking and Kimi — Anthropic's adaptive reasoning mode landed, letting Claude decide when and how much to think. Kimi thinking-capable models (kimi-k2.5, k2.6-code-preview) now get automatic extra_body.thinking injection via reasoningEffort. StepFun Plan API reasoning fields fall back correctly. Non-Claude providers get proper role alternation enforcement. And tool-call arguments are normalized for strict providers that reject malformed JSON. (#2882, #3124, #2903, #2637, #3154)

  • MCP, tools, and search — MCP resources and prompts are now exposed as read-only tools — the agent can query them directly. Multiple MCP servers connect in isolated tasks instead of racing each other. The notebook editing tool arrived. Kagi joined the web search provider lineup. And the exec tool got tighter: Windows support landed, allowed_env_keys lets you selectively forward env vars, internal state files are write-protected, and working_dir outside the workspace is rejected. (#2907, #3019, #3017, #2945, #2893, #2962, #3061)

  • Cron stopped dropping jobs — Four separate cron fixes addressed reentrant store reloads during job execution, fixed-interval tasks duplicating due to concurrent store replacement, job config not reloading, and manual run state not being preserved. If you rely on scheduled tasks, this release is the one where they become boring. (#3038, #3034, #2895, #2930)

Community

Welcome to our 25 new contributors who made their first contribution in this release: @Bahtya, @LeoFYH, @xwind, @Xerxes-cn, @BalorLC3, @invictus-z, @zijiefang, @kronk307, @stutiredboy, @SHLE1, @RohitDayanand, @justforyoudear, @XJPeng12, @linziyanleo, @chenyahui, @JonasGao, @weitongtong, @danielphang, @mterhar, @ramonpaolo, @nikube, @yeyitech, @ravs-cyberrock, @samyzhh, and @razzh7.

v0.1.5.post1 reflects something we keep seeing in the commit log: the best contributions aren't always the flashiest ones. A cron race condition caught by @weitongtong. A retry amplification loop spotted by @Bahtya. A channel error path that silently swallowed messages, fixed by @yanghan-cyber. These are the changes that make an agent trustworthy — not because it can do more, but because it stops doing things wrong. 80 PRs later, nanobot is quieter, steadier, and a little more grown-up. That's worth celebrating.

Full Changelog: https://github.com/HKUDS/nanobot/compare/v0.1.5...v0.1.5.post1

What's Changed
New Contributors

Full Changelog: https://github.com/HKUDS/nanobot/compare/v0.1.5...v0.1.5.post1

View original

Upgraded? How did it go?

Discussion