Files
nanobot-runtime/results/2026-09-16_nanobot-v0.3.0-vs-v0.3.5-deep-research.md
2026-09-17 18:48:05 +02:00

7.1 KiB
Raw Blame History

nanobot v0.3.0 → v0.3.5 — deep research report

Shrnutí

v0.3.5 je největší release od v0.3.0: 402 merged PRs, 45 nových contributorů, 809 commitů mezi tagy. Hlavní příběhy: (1) nativní terminálový klient (TUI) sdílející stejný gateway a session storage jako WebUI, (2) přemístění session JSONL souborů mimo workspace + viditelná context compaction, (3) přepis timeout modelu z celkového na idle-based, (4) výrazné security zpevnění (credentials v subprocess env, SSRF, sandbox backends).

Zjištění

1. Terminálový UI (nové) — ~95 commitů scope tui

  • nanobot bez argumentů spouští nativní TypeScript TUI; nanobot agent zůstává alias; --classic = starý Python prompt
  • TUI hovoří se stejným gateway jako WebUI — jeden protokol, sdílené WebSocket session
  • Funkce: resume/fork sessionů, /detach, /diff (fullscreen unified diff posledního turnu), /usage token grafy, paste clipboard obrázků, autocomplete skill references, slash commands, LaTeX rendering, follow-up queue, interaktivní titulky sessionů
  • Platform wheels obsahují TUI binárku (checksummed, version-matched) — první spuštění nestahuje z GitHubu, nevyžaduje Bun
  • Podporované wheels: macOS 13+ arm64/x64, glibc 2.17+ Linux arm64/x64, Windows x64
  • Lifecycle: zavření posledního interaktivního launcheru (WebUI/TUI) stopne on-demand gateway; /detach nebo nanobot gateway --background ji nechá běžet
  • Zdroj: [1], [3]

2. Session storage — breaking změna

  • Session JSONL soubory se stěhují z <workspace>/sessions/ do <config-dir>/sessions/<workspace-id>/ — mimo agent-readable workspace
  • První upgraded start provede migraci po ověření atomic copy; symlinked legacy migration se rejectuje
  • Stará a nová verze nesmí zapisovat stejný workspace současně
  • Downgrade: nanobot sessions restore-workspace --config <config.json> --workspace <workspace> (odmítne přepsat odlišný existující soubor)
  • Zdroj: [1], [3]

3. Runtime / env vars — breaking změny

  • NANOBOT_LLM_TIMEOUT_Szrušen (Unused). Nahrazuje ho NANOBOT_STREAM_IDLE_TIMEOUT_S (default 90 s, max 3600, clamp). Idle timeout renewed každým stream eventem včetně reasoning/tool-call delt — není to celkový limit
  • NANOBOT_MAX_CONCURRENT_REQUESTS — defaultně unlimited (dřív limit); kladné int = cap
  • Subagent concurrency: default 4, přebytečná práce čeká na kapacitu
  • agents.defaults.failOnToolError — odstraněno
  • /health endpoint může vracet HTTP 503, když enabled WebSocket channel neběží — monitoring (Zabbix) nesmí předpokládat 200 vždy
  • Remote project selection používá cesty na nanobot hostu, vyžaduje Restricted access
  • Zdroj: [1], [4]

4. Security

  • fix(providers): stop writing API keys into process os.environ — klíče už neleží v environ subprocessů
  • Izolace prostředí: fix(cli): isolate management subprocess environments, fix(webui): isolate folder picker environment
  • SSRF: block IPv6 unspecified targets, pin validated DNS (přesněji: harden generated image downloads, credential URLs mimo Jina reader a failure logy)
  • feat(exec): add a macOS Seatbelt sandbox backend + feat(exec): allow extra bwrap bind roots (Linux bwrap)
  • Executive advisory v release: exec.allowPatterns shell-chain bypass umožňující unintended command execution — opraveno
  • Email auth: verifySpf/verifyDkim nyní vyžadují channels.email.trustedAuthservIds (explicitní trust anchor od receiving mail service). Bez něj Email config nenastartuje — workaround „vypnout verifikaci" není podporován
  • Zdroj: [1], [2]

5. WebUI workbench — ~240 commitů scope webui (největší oblast)

  • Až 4 conversation panely vedle sebe v resizable groups, persistent sidebar ordering, drag sessionů do mentions, temporary chats
  • Per-round token/cache grafy, visible context-compaction progress, paged history search, cumulative summaries
  • SkillHub (marketplace), portable Agent Plugins, remote MCP browser OAuth + token refresh
  • Automations: task + calendar view, per-run replies, edit zachovává pending executions, delete už neblokuje navigaci
  • PWA (instalace na home screen), mobilní composer, draggable context sheets
  • Zdroj: [1], [2]

6. Memory / Dream — 32 commitů

  • feat(memory): restore Dream model preset override — Dream lze přepnout na jiný model preset
  • fix(dream): stop duplicating SOUL/USER/MEMORY into the Dream prompt — prompt duplikace opravena
  • Idle compaction: konfigurovatelný scan interval, reuse session context (perf), invalidace provider state po idle compaction
  • Množství robustness fixů: no-op batche, retryable failed batches, truncated consolidation output, tool-call-only consolidation reject
  • Zdroj: [1], [2]

7. Providers / modely

  • DeepSeek Responses API + V4 Pro Responses + V4 vision
  • Eden AI a OrcaRouter jako OpenAI-compatible gateway providers
  • Grok 4.6 subscription model, OAuth model catalogs online discovery
  • AnySearch provider (key-optional, anonymous quota)
  • Telegram: streaming rich messages, compaction notices collapsed do jedné editované zprávy
  • Zdroj: [1], [2]

8. Cron / scheduling — 14 commitů

  • Edit automation details zachová pending runs
  • Scheduler přežije selhání job-store persistence, žádný replay po persistence failure
  • Retire persisted heartbeat/dream jobs při disabled, startup job count reconciliation
  • Heartbeat: unified sessions routují na last channel
  • Zdroj: [2]

Co se netýká tvého deploymentu

  • Desktop coexistence, DingTalk/WeCom/WeChat/Matrix/QQ/Signal/Mattermost fixes — neaktivní kanály
  • Windows path escaping v sandbox testech

Dopady na tvůj deployment (systemd + Telegram + Zabbix + Ollama)

  • Zabbix health check: /health může vracet 503 — ověř trigger na 503, ne jen connection refused
  • Env vars: pokud máš někde NANOBOT_LLM_TIMEOUT_S, přestal fungovat → NANOBOT_STREAM_IDLE_TIMEOUT_S
  • Session soubory: zmigrované z workspace do config dir — pozor na zálohy (wood.hell → pivo.hell): /sessions/ pod workspace už nebude primární umístění
  • Gateway lifetime: systemd service běží gateway explicitně — on-demand lifetime se netýká
  • Telegram: rich streaming nově podporován

Rozpory a nejistoty

  • GitHub tagy 0.3.10.3.4 neexistují (release notes tvrdí „Since v0.3.0" — 402 PRs; compare API ukazuje 809 commitů, což zahrnuje i merge commity). Oba údaje z primárních zdrojů, rozdíl je v metodice počítání
  • PyPI uvádí releases 0.3.10.3.4 (neověřeno, co obsahovaly — bez GitHub tagů nejsou release notes k dispozici)

Zdroje

[1] Release notes v0.3.5 — https://github.com/HKUDS/nanobot/releases/tag/v0.3.5 [2] Git compare v0.3.0...v0.3.5 (809 commit subjects, GitHub API) — https://github.com/HKUDS/nanobot/compare/v0.3.0...v0.3.5 [3] CLI Reference v0.3.5 (session storage & rollback) — https://github.com/HKUDS/nanobot/blob/v0.3.5/docs/cli-reference.md [4] Configuration v0.3.5 (runtime env vars) — https://github.com/HKUDS/nanobot/blob/v0.3.5/docs/configuration.md [5] PyPI JSON API — https://pypi.org/pypi/nanobot-ai/json