Nanobot

Nanobot turns subagent activity into visible session state

Nanobot adds file-preview repair plus subagent lifecycle replay, separates answer text from the reasoning shell, and clarifies that displayed token usage is an aggregate turn measure.

← Back to homeOriginal source ↗

HKUDS/nanobot PR #5487 is the inspected primary source: “feat(webui): file preview path fixes + subagent activity & lifecycle replay.” The related records below were inspected as supporting context rather than independent confirmation.

The facts

- HKUDS/nanobot PR #5487 was created 2026-08-22T15:27:15Z and was open at inspection; its title is “feat(webui): file preview path fixes + subagent activity & lifecycle replay.” - HKUDS/nanobot PR #5491 was created 2026-08-22T20:43:19Z and was open at inspection; its title is “fix(webui): keep answer text outside reasoning shell.” - HKUDS/nanobot PR #5490 was created 2026-08-22T20:25:37Z and was open at inspection; its title is “fix(webui): clarify aggregate turn token usage.” - The repository reported 47286 stars, 722 open issues, default branch main, and last push 2026-08-22T20:42:52Z. - The latest tagged-release baseline checked was v0.3.0 published 2026-07-25T08:08:47Z.

What changed

HKUDS/nanobot PR #5487 reports: Summary Two batches of work on the web UI and agent lifecycle: 1. File preview panel fixes feat: add markdown rendering and open-in-system to the file preview panel fix: align file preview path base with session tool evidence — relative paths that don't resolve from the project root now fall back to directories the agent actually touched (read/write/edit/apply_patch/list/find evidence) fix: keep wide tables and preview panel scrollbars visible — drop standard scrollbar-width/color properties so custom scrollbars render; wide tables opt out of overflow-wrap for horizontal scrolling; desktop native hosts get an overlay scrollbar that fades in while scrolling 2. Subagent lifecycle & activity display feat(agent): persist subagent lifecycle and replay details so spawned subagents and their outcomes survive across turns feat(webui): show subagent activity grouped by turn, with resizable workspaces Commits f0c5aab8 feat(webui): add markdown rendering and open-in-system to file preview panel a4754b74 fix(webui): align file preview path base with session tool evidence d8a8f8fd fix(webui): keep wide tables and preview panel scrollbars visible 096d99ac feat(agent): persist subagent lifecycle and replay details 03298161 feat(webui): show subagent activity by turn and resize workspaces

HKUDS/nanobot PR #5491 reports: Summary preserve every assistant answer slice across answer → tool → answer turns keep explicit reasoning/tool activity inside the activity surface while merging answer slices into one final message preserve media-only answers and raw message counts used by fork boundaries keep live and replay transcript projection semantics aligned Root cause Completed-turn normalization inferred that any assistant text before a later tool event was model activity and rendered it in ThinkingReasoningShell. Replay projection made the same misclassification by moving interrupted assistant content into reasoning. As a result, normal answer Markdown was folded into the reasoning shell after turn_end or history replay. Test plan python -m pytest tests/utils/test_webui_transcript.py tests/utils/test_webui_event_projection_equivalence.py -q (59 passed) npm test (71 files, 1095 tests passed) npm run lint npm run build Linear: NAN-8

HKUDS/nanobot PR #5490 reports: Summary show the model call count when a turn aggregates multiple prompt-token reports expose the latest request context and configured context capacity in the usage tooltip add a regression test that distinguishes cumulative turn input from final-request context This keeps in, out, and cached as turn-level cost metrics while making cases such as 111K in followed by 55.8K in explainable: the former came from multiple model calls, not a larger single context. Linear: NAN-10 Testing cd webui && bun run test (71 files, 1093 tests) cd webui && bun run lint cd webui && bun run build

Why it matters

Operator trust improves when the interface distinguishes answer, reasoning, child activity and usage scope instead of flattening all four into one plausible-looking transcript. The operator test is whether the system remains bounded and its receipts still describe the action after failure, retry or restart.

Current

The primary record was open when captured on 2026-08-23. The tagged-release baseline was v0.3.0 published 2026-07-25T08:08:47Z. Repository metadata, full source bodies, current pull requests and issues, releases, Google News, Hacker News, Lobsters, Metamesh and the rendered ClawCharts row were inspected. ClawCharts selected the subject; it did not prove the claim.

Evidence

The primary URL is https://github.com/HKUDS/nanobot/pull/5487. Supporting records are https://github.com/HKUDS/nanobot/pull/5491 and https://github.com/HKUDS/nanobot/pull/5490. Source bodies, timestamps and states are preserved in the daily evidence bundle. Test counts and reproductions remain attributed to their authors unless identified as independently rerun.

Source boundary

Open work is described as open, closed work as closed, and operator reports as reports. A pull request is evidence of proposed or reviewed direction, not proof of a shipped release. Search residue, package mirrors and historically published source spines were excluded.

Operator take

Preserve lifecycle events for replay, render final answers outside hidden reasoning containers, and label token figures by the exact scope they aggregate. Preserve a before-state receipt, make the smallest reversible change, and verify the original failure independently.

Caveat

Public project records are mutable. Status, scope and evidence can change after publication. This brief records the inspected state and does not authorize changes to a reader’s deployment.

Source inspected; source state, environment and release boundary remain explicit.