CHANGELOG-next.md
This release is a large consolidation cycle spanning 379 commits from 56 contributors, focused on the new Standard Operating Procedure (SOP) engine, a WebAssembly plugin host, a Git forge channel, and a broad round of runtime, provider, and security hardening. If you run ZeroClaw agents in production, the headline changes are the procedural-memory/SOP substrate, tighter context-budget accounting, and a wave of SSRF and secret-leak fixes. Desktop and quickstart flows also get meaningful polish.
git_forge tool and SOP ingress.wasi:http, inbound queue, config jail) and a registration API (#8368, #8551)./bind code round-trip (#8707).TurnOrigin ingress provenance, and a durable memory store seam adds supersede/dedup/budget/policy-gate handling with embedding-identity persistence and automatic vector migration on change (#8619, #8570, #8623).ResolvedModelAccess::run_model_query) now cover the model-query path and the max-iteration graceful summary (#8806, #8821).sysinfo, and a model-context-window bar was added to the ZeroCode TUI, gateway agent chat, and interactive CLI (#8802, #7946).elicitation/create when the client advertises form support, with single- and multi-select prompts rendered in the ZeroCode Code tab (#8338).provider_timeout_secs and extra_headers through the responses path (#8229).browser_open now allows http:// URLs and allowed_private_hosts opt-in (#8737, #8136, #8171)./api/tools listing with an agent-scoped tool picker (#8829, #8331).local_small runtime preset, and x-required-by-transport metadata for MCP servers (#8239, #8531, #8349).send_via with voice-delivery fixes landed (#7361).install.sh --full remains available for the broader source-build surface (#9051, #8566).process_message, and loop_::run) was routed through a single ScopedToolRegistry seam (#8711, #8744, #8701, #8700).ScopedAssembled boundary, and the orchestrator turn routes back through ResolvedAgentExecution::resolve (#8812, #8629).LazyLock, and the orchestrator notify channel is bounded with capped path/URL bodies (#8439, #8350, #8460).| Area | Fix |
|---|---|
| Runtime | Enforce context budget against provider-reported tokens; enforce leading user-turn invariant before dispatch; strip orphaned tool_use on max-iterations exit (#8840, #8696, #7865) |
| Runtime | Arc-share tool schemas to stop per-iteration clone churn; hot-reload log-persistence config; thread agent_alias into agent_turn's ToolLoop (#8817, #8816, #8921) |
| Providers | Guard SSE parsers against EOF-as-success truncation; omit tool_choice/empty tool-call content for empty tool lists; clean Anthropic tool schemas before native serialization (#8663, #8667, #8524, #7961) |
| Providers | Distinguish missing vs expired OpenAI Codex credentials; prefer chatgpt_account_id claim in Codex JWT extraction; cool down rate-limited fallback entries (#8029, #8002, #8317) |
| Security | Close SSRF gaps in Matrix marker URLs, text_browser, and skill_http userinfo; harden WeChat attachment path against traversal (#8657, #8635, #8658, #8628) |
| Security | Constant-time nodes.auth_token comparison; reject empty bearer token; prevent signing-key leak via VarError; scan link/image destinations for credential patterns (#8824, #8727, #8591, #8906) |
| Config | Protect runtime state files and real config.toml from agent self-modification; auto-materialize new map aliases in config patch (#8660, #8606, #8842) |
| Channels | Localize channel runtime replies; use resolved agent config for strict_tool_parsing/parallel_tools; serialize per-sender session persistence to prevent races (#8769, #7836, #7847) |
| ZeroCode | Fix intermittent ask_user failures under ACP elicitation; use runtime-profile max_context_tokens for context meter; strip markdown fences from code-block copy (#8773, #8872, #8777) |
| Memory | Refresh embedder on config change; resolve dotted embedding provider refs; make SqliteMemory: Clone valid by sharing one embedder lock (#8625, #8152, #8868) |
| Gateway | Propagate pairing DB errors instead of panic; advertise A2A cards on the runtime port; exclude env-overridden secrets from reload drift (#8466, #8538, #8704) |
| Cost | Atomic ledger appends with concatenated-record recovery; observability CLI one-shot no longer loses telemetry/token totals on exit (#8412, #8146) |
| Deps | Bump crossbeam-epoch (RUSTSEC-2026-0204), anyhow (RUSTSEC-2026-0190), and remove rag-pdf/ttf-parser (RUSTSEC-2026-0192) (#8783, #8500, #8547) |
| Install | Prebuild dashboard for embedded web; exclude Tauri apps from --full app sweep; register zerocode.exe in the Scoop manifest (#8643, #8786, #8276) |
| Tools | Pin http_request to vetted DNS addresses; cap calculator values array to prevent OOM; bound browser_open launcher waits (#7902, #8481, #8564) |
@alexandme @Alix-007 @alteckclub @Audacity88 @bheatwole @CedricConday @chengzhichao-xydt @ConYel @crh-code @databillm @drbparadise @dvgamerr @eugeneb50 @FTDGRT @hanZeng-08 @HonorVanEr @IftekharUddin @initiallyqq @jhheider @jokewithme110 @JordanTheJet @Leon-SK668 @Leuca @LiLan0125 @mazhuima @mov-xound-glitch @Nillth @NiuBlibing @octo-patch @OmkumarSolanki @ozpool @perlowja @Pick-cat @piiiico @Project516 @rifuki @ryanlee486 @SimianAstronaut7 @singlerider @sonytricoire @Stealinglight @Super-Cabbage @Taswen @theonlyhennygod @theredspoon @thunderjr @tidux @tzy-17 @vrurg @wangmiao0668000666 @WeeLi-009 @xydt-juyaohui @yanchenko @yuxuan-7814 @ZOOWH @zverozabr
Full diff: https://github.com/zeroclaw-labs/zeroclaw/compare/v0.8.2...v0.8.3