Agents forget their purpose. That is the core failure mode nanobot v0.2.0 addresses, and it does so with a concrete mechanism rather than a prompt trick.
The new /goal command, backed by the long_task tool and a matching complete_goal call, marks a thread as a sustained objective. From that point on, the active goal is mirrored in Runtime Context on every turn. It survives context compaction. It survives long tool chains. It survives the model's own tendency to drift. The WebUI surfaces the goal in the chat header so the human in the loop can see it too. Timeout behavior changes automatically while a goal is active: the wall-clock limit widens, and streaming requests fall back to an idle timeout instead of a hard wall clock, so a model that is still emitting tokens does not get killed mid-thought. Both core agents and subagents honor the wider budget.
The WebUI is the second major story. After shipping as a source-only preview in earlier releases, it now lives inside the pip wheel. pip install nanobot-ai gives you the full interface with no separate build step. Settings and BYOK got a redesign, the slash command palette is localized, LAN access is gated by a token, reasoning streams live into the chat, and a new image-generation tool turns a natural-language prompt into an inline preview without leaving the conversation.
The engine room changes matter for anyone embedding nanobot in their own stack. AgentLoop.from_config() gives you a clean entry point. _process_message was rewritten as a functional state machine. Archived summaries move into the system prompt for KV cache stability. Tools are now a self-describing plugin architecture. ask_user and GlobTool are retired in favor of cleaner replacements.
Five new providers join the lineup: AWS Bedrock Converse, NVIDIA NIM, LongCat, Atomic Chat, and MiMo. A fallback_models config key means a single flaky endpoint cannot take an entire turn down. Four security fixes landed in this release, covering SSRF, media path confinement, workspace boundary hardening, and chat-native pairing so DM approvals happen in the chat instead of a config file.
The release merged 105 pull requests with 20 new contributors.
If you are building a multi-step agent today, the practical move is to pin a goal at session start with long_task, let complete_goal close it, and stop relying on prompt length alone to keep context coherent. If you were holding off on the WebUI because it required a manual build, the wheel now ships it directly.