CHANGELOG-next.md
ZeroClaw v0.8.2 opens up two new front doors: A2A agent discovery for agent-to-agent interop and a richer skills story (user-configured extra registries, typed slash-command options). Underneath, the release sharpens ZeroClaw's security posture across plugins, channels, and the SOP runtime, lands a durable run/task control plane, and broadens channel surfaces (Discord interaction components, Slack attachments, WhatsApp group allowlists). It spans 152 commits from 31 contributors. Much of this is invisible at the surface and shows up as fewer leaks, fewer duplicate launches, and turns that behave the same on every transport.
registry:<name>/<skill> (#7827) and typed slash-command options in SKILL.md frontmatter (#8021).zeroclaw to PATH automatically with a --no-modify-path opt-out (#8038).zc_http_request, per-alias config scoping, and removal of raw environment access.ZeroClaw treats every inbound payload as untrusted and tightens the seams an attacker would reach for.
zc_http_request now blocks SSRF, including DNS-rebinding and redirect bypasses, with the host classifier moved to infra.__config is stripped before injection./bot<id>:<token> pattern, closing token leaks via reqwest error Display./pair with backfill of orphaned paired tokens (#7993).default agent cannot be created across operator surfaces (#8098).enabled is accepted on CronPatchBody for pause and resume, with the agent check scoped to shell-command patches (#7666).registry:<name>/<skill> (#7827).ZEROCLAW_SESSION_ID exposed to skill shell tools (#8035).read_skill (#7245).truncate_output guards against UTF-8 char boundaries (#7962).zeroclaw is added to PATH automatically, with a --no-modify-path opt-out (#8038).ResolvedAgentExecution::resolve routes the production turn paths (#8179), with per-agent ToolLoop fields bundled into it (#8156) and the loop args bundled into a ToolLoop struct (#7969).process_message path (#7819).agent_alias and turn_id propagate to agent lifecycle observer events (#7771).SopRunStore trait plus an in-memory backend as EPIC B scaffolding (#8001).[EMBED:{...}] markers (#7833); slash command localizations and guild scope (#7922).allowed_groups group allowlist for Web mode (#7720)./model overrides (user or agent) for chat channels (#7998).static_voice_peers on the channel handle (#7982)./thinking overrides restored (#8011).refreshed_new_session_system_prompt loads bundled skills (#8203).trace_id with per-call cost_usd recorded (#8065).| Area | Fix |
|---|---|
| config | Gate Android shell import on non-Windows (#8189) |
| tools | Normalize Windows workspace-prefixed paths (#8114) |
| tools | Resolve external coding tool working_directory from project root (#7967) |
| tools/image | Expose stable attachment paths in image-generation output (#7985) |
| tools/git_operations | Add recovery hint and path context to non-repository error (#7835) |
| cron | Claim and release in-flight lock to prevent duplicate launches (#8107) |
| model_switch | Resolve list_models from the live models.dev catalog with the hardcoded list as offline fallback (#8097) |
| daemon | Handle file-descriptor exhaustion (EMFILE) in the IPC accept loop (#7983) |
| providers | Strip assistant reasoning on outbound replay for Groq (#7616) |
| providers | Enable vision support for the NVIDIA NIM provider (#8100) |
| providers | Update the Kimi Code endpoint to api.kimi.com/coding/v1 (#8163) |
| providers | Expose replay_assistant_reasoning and fallback tool-call handling (#8232) |
| providers | Coalesce stripped compatible history roles (#7931) |
| notion | Propagate header parse errors instead of unwrapping (#8147) |
| browser | Repair WebDriver snapshot returns and CSS selector escaping (#7908) |
| log | Make same-timestamp pagination deterministic via byte-offset cursor (#7921) |
| tools | Add a content_search internal fallback (#8060) |
| doctor | Pass Config to provider_validation_error for custom providers (#8084) |
| config | Warn when a2a.exposed_skills resolves no skills (#8283) |
| cli | Persist the model in config on models set instead of probing providers (#7094); refresh non-default channel guidance (#7955) |
| web_fetch | allowed_private_hosts = ["*"] covers DNS-resolved private hosts (#7412) |
| skills | Correct the "ClawhHub" typo in skill installer messages (#8262) |
| docker | Keep Node base policy in container TOML (#8112); correct Node 24 digest pins (#7932); drop stale aardvark-sys build.rs COPY (#8092) |
--all-features build on master (#8019).@Alix-007 @Audacity88 @ConYel @danielO99 @databillm @drbparadise @eldar702 @FTDGRT @hanZeng-08 @IftekharUddin @joe2643 @jokewithme110 @JordanTheJet @legokichi @MaHaoHao-ch @mazhuima @mov-xound-glitch @Nillth @NiuBlibing @OmkumarSolanki @perlowja @Pick-cat @RyanHoldren @sbenedetto @singlerider @theredspoon @tidux @wangmiao0668000666 @xianshishan @yuxuan-7814 @ZOOWH
Full diff: https://github.com/zeroclaw-labs/zeroclaw/compare/v0.8.1...v0.8.2