All posts

ZeroClaw v0.7.4 — Foundations, Polish, and a Quiet Recovery

|JordanTheJetCEO, ZeroClaw Labs

v0.7.4 is the first patch release on top of the v0.7.x workspace foundation we shipped a few weeks ago. It's not a flashy release — there's no single tentpole feature — but it's one of the most substantive patch releases in ZeroClaw's history. Around 110 commits from 36 contributors, touching channels, providers, the web dashboard, security, and a lot of developer-experience seams that were quietly slowing us down.

Here's what we think is worth your attention.

A real i18n story for the docs

The docs are now driven by a Mozilla Fluent-based pipeline, with a multi-locale mdBook layered on top. Alongside the i18n plumbing, the entire docs tree got a comprehensive overhaul — restructured, deduplicated, and tightened up. Header links now point at the upstream repo instead of the deploy preview, and the CNAME is preserved on every Pages deploy so the custom domain doesn't drop on rebuilds.

If you've been holding off on contributing translations, this is the release that unblocks that.

Onboarding, rewritten

zeroclaw onboard was the single most-touched-and-most-complained-about surface in v0.6. So we threw it out and started over.

The new flow is schema-driven, idempotent, and DRY. Run it twice, run it after a partial setup, run it on a machine where someone hand-edited the config — it converges to a sane state instead of accreting cruft. For unknown providers, it now falls back to a generic OpenAI-compatible /v1/models probe, so the wizard works against essentially any OpenAI-shaped endpoint without us having to ship a per-provider adapter. For local AI providers running in Docker, URLs are now container-aware so you don't get the "works on host, fails in container" surprise.

Windows users: setup.bat is fixed, and cargo test is unbroken.

Matrix, from the ground up

The Matrix channel had become a long-running patch pile against an older matrix-rust-sdk. Rather than continue carrying that, we did a clean-room reimplementation on matrix-rust-sdk 0.16. E2EE auto-verification of allowed_users is preserved, the moving parts are dramatically simpler, and the channel is markedly easier to operate.

If you're on the previous Matrix integration, the migration is drop-in — same config surface, same trust model.

WeChat iLink Bot is back

A while ago, a bulk revert took out the WeChat iLink Bot integration along with some other code. v0.7.4 brings it back, ported cleanly to the current trait surfaces. As part of that work, request_approval() is now implemented across Discord, Slack, Signal, Matrix, and WhatsApp — which means approval-gated tool flows work uniformly across every supported chat platform, not just the originals.

Session management as first-class agent capability

The agent can now manage its own sessions. New SessionResetTool, SessionDeleteTool, and SessionsCurrentTool give it explicit, scoped control. On the gateway side, there's a new session-abort endpoint with incremental streaming persistence — so cancelled or interrupted sessions don't leave you reconstructing partial state from logs.

Under the hood, prune_history Phase 1 now treats mixed-protection tool groups as atomic (no more partial pruning leaving the conversation in an invalid shape), and the runtime self-heals orphaned tool_result blocks both on session load and during compaction.

Voice: the foundation lands

A new Vad trait and VoiceEvent protocol are in, behind the gateway-voice-duplex feature flag. This is the substrate for live voice channels — not the channels themselves, but the shape they'll plug into.

PostgreSQL memory backend

Memory can now be persisted to PostgreSQL via the new memory-postgres backend. If you've been running ZeroClaw in environments where SQLite isn't a great fit — multi-instance deployments, managed Postgres you're already paying for — this is for you.

Provider quality pass

A lot of small, painful provider issues got resolved this cycle:

  • OpenRouter: extra_body passthrough lets you forward arbitrary upstream params; the upstream stream task now aborts cleanly when the consumer drops.
  • MiniMax: native tool calling is now enabled.
  • Bedrock: temperature is omitted for Opus 4.7, matching the model's actual API contract.
  • Gemini / OpenRouter: tool-call compatibility fixes plus a clearer google_workspace schema.
  • Groq: native tool calling is disabled where it was misbehaving (we'll re-enable when upstream catches up).
  • strip_native_tool_messages now coalesces adjacent assistant turns instead of leaving fragmented runs.

Channels, the long tail

Beyond Matrix and WeChat, the channel layer got a lot of attention:

  • Slack: strict_mention_in_thread lets you require an @-mention even in threads where the agent has already replied.
  • IRC: mention_only config option.
  • Telegram: request_approval forwards message_thread_id; auto-injected topic-root reply context is skipped in forum topics; bot command list updated.
  • IMAP: polling fallback for servers that don't support IDLE.
  • ACP: defaultModel resolves from config and is null when unconfigured; tool output formatting fixed; INFO logs suppressed and the missing protocol method implemented.
  • Feishu: mention_only is wired through.

Web dashboard

Chat message deletion, clear-all, and a compact mode. A cron job configuration UI. The pack bin now embeds the web build directly. A bug-fix bundle covering an Overview crash, model save, editor caret, and chat CPU usage. Array-returning API helpers now guard against non-array responses, and the WebSocket session ID persists in localStorage across page reloads.

Architecture & workspace

  • gateway and tui-onboarding are decoupled from agent-runtime, so each compiles without dragging in the full agent loop.
  • SessionBackend gained clear_messages() for O(1) session reset and get_session_metadata(key) for typed metadata access.
  • The hardware crate's wizard UI moved from main.rs into zeroclaw_hardware::wizard so it's reusable outside the binary.
  • The web router was refactored for clearer route ownership.

Distribution

  • OpenShift / Kubernetes deployment manifests.
  • Docker images now ship the web dashboard (release image and Dockerfile.debian local-dev image).
  • The install script prompts for pre-built vs source, defaulting to pre-built on curl | bash.
  • Self-update target triples added; Windows cargo test unbroken.

Security

cargo update and deny.toml audit on 2026-04-27. rustls-webpki updated to v0.103.13 (with the unfixable v0.102.8 copy ignored). rand patches applied, picomatch ReDoS fixed, wasmtime and glib ignores documented. A daily advisory scan workflow now runs in CI. rand bumped 0.10.0 → 0.10.1; postcss bumped 8.5.6 → 8.5.10 in /web.

Tauri desktop

Two fixes worth calling out individually: rustls crypto provider is now installed at startup (preventing a desktop crash), and the PNG-as-ICO that was blocking Win11 builds is replaced with a real Windows ICO.

Thank you

This release is the work of 36 contributors. A few of them are stepping up consistently across multiple cycles — you know who you are, and we're grateful. If you've been thinking about contributing, the i18n pipeline and the new onboarding schema are both excellent on-ramps.

Release: https://github.com/zeroclaw-labs/zeroclaw/releases/tag/v0.7.4

Full diff: git log v0.7.3..v0.7.4 --oneline

Zero overhead. Zero compromise. 100% Rust.

— JordanTheJet

CEO, ZeroClaw Labs

JordanTheJet · CEO, ZeroClaw Labs

Back to home