github zeroclaw-labs/zeroclaw v0.7.4

4 hours ago

Changelog — v0.7.3 → v0.7.4

The first patch release on top of the v0.7.x workspace foundation. v0.7.4 lands a
clean-room Matrix rewrite, a Mozilla Fluent i18n pipeline with multi-locale docs, a
ground-up rewrite of the CLI/TUI onboarding flow, recovers the WeChat iLink Bot channel. Around 110 commits from 36 contributors covering
channels, providers, web dashboard, security, and developer experience.


Highlights

  • Multi-locale docs and i18n pipeline — A Mozilla Fluent-based i18n pipeline now
    drives a multi-locale mdBook, alongside a comprehensive docs overhaul (#5788). Header
    links point at the upstream repo (#6124) and the CNAME is preserved on every Pages
    deploy (#6142).

  • Onboarding clean-slate rewritezeroclaw onboard is now schema-driven,
    idempotent, and DRY (#5960). It picks up a generic OpenAI-compatible /v1/models
    fallback for unknown providers (#6056) and uses container-aware URLs for local AI
    providers running in Docker (#5552).

  • Session management surface — New SessionResetTool, SessionDeleteTool, and
    SessionsCurrentTool give the agent first-class control over its own sessions
    (#5696, #6033). The gateway gained a session abort endpoint with incremental streaming
    persistence (#5705).

  • WeChat iLink Bot channel recovered — The previously reverted iLink Bot
    integration is back, ported to current trait surfaces (#6130). request_approval()
    is now implemented across Discord, Slack, Signal, Matrix, and WhatsApp.

  • Voice foundation — A new Vad trait and VoiceEvent protocol land behind a
    gateway-voice-duplex feature flag, paving the way for live voice channels (#5942).

  • PostgreSQL memory backend — Memory can now be persisted to PostgreSQL via a new
    memory-postgres backend.

  • Matrix channel rewritten — A clean-room reimplementation on matrix-rust-sdk 0.16
    replaces the long-running patch pile. E2EE auto-verification of allowed_users is
    preserved, and the channel is markedly simpler to operate (#6112).


What's New

Architecture & Workspace

  • Decoupled gateway and tui-onboarding from agent-runtime, so each can be
    compiled without dragging in the full agent loop (#5735).
  • SessionBackend trait gained clear_messages() for O(1) session reset (#5900) and
    get_session_metadata(key) for typed metadata access (#6043).
  • Hardware crate: wizard UI moved from main.rs into zeroclaw_hardware::wizard for
    reuse outside the binary (#6041).
  • Web router refactor for clearer route ownership (#6176).
  • Tools: rate-limiting delegated to wrappers for glob_search and content_search
    (#5772); session validation now uses typed errors (#6135).

Agent & Runtime

  • prune_history Phase 1 now treats mixed-protection tool groups as atomic, preventing
    partial pruning that left the conversation in an invalid state (#5828).
  • Self-heals orphaned tool_result blocks on session load and on compaction (#5853).
  • Sandbox auto-detection now respects runtime.kind = "native" (#5904).
  • runtime.kind is detected for memcg availability at daemon startup (#5906).

Providers

  • OpenRouter: extra_body passthrough for arbitrary request params (#5623); the
    upstream stream task is now aborted when the consumer drops the stream (#5830).
  • MiniMax native tool calling is now enabled (#6027).
  • Bedrock omits temperature for Opus 4.7, matching the model's API contract
    (#6144).
  • Gemini / OpenRouter tool-call compatibility fixes plus clearer
    google_workspace schema (#5975).
  • Groq: native tool calling is now disabled where it was misbehaving (#5848).
  • strip_native_tool_messages now coalesces adjacent assistant turns (#5829).

Channels

  • Matrix: clean-room rewrite on matrix-rust-sdk 0.16 replacing the prior
    long-running patch series (#6112).
  • WeChat iLink Bot: channel recovered from the bulk revert in PR #4221 (#6130).
  • Slack: strict_mention_in_thread option lets you require an @-mention even in
    threads where the agent has previously replied (#5992).
  • IRC: mention_only config option for IRC channels (#5998).
  • Telegram: bot command list updated (#5691); request_approval now forwards the
    message_thread_id (#5970); auto-injected topic-root reply context is skipped in
    forum topics (#5969).
  • IMAP: polling fallback for servers that don't support IDLE (#5712).
  • ACP: defaultModel resolves from config and is null when unconfigured (#6013);
    tool output formatting corrected (#6035); INFO logs suppressed and missing ACP spec
    protocol implemented (#5c81d4e).
  • Discord, Slack, Signal, Matrix, WhatsApp: request_approval() implemented across
    the channel set, unblocking approval-gated tool flows on every supported chat
    platform.
  • Feishu: mention_only config wired through (#5848).

Tools & Skills

  • SessionResetTool and SessionDeleteTool for in-agent session management (#5696).
  • SessionsCurrentTool exposes the active session identity (#6033).

Plugins

  • Extism WASM execution bridge wired up (Phase 2 D2 plumbing) (#5913).
  • image-gen-fal WASM plugin added as the fal.ai Flux reference plugin (#5921).
  • Markdown-only plugin bundles can now declare a skill capability (#6141).

Voice

  • New Vad trait and VoiceEvent protocol behind the gateway-voice-duplex feature
    flag (#5942).

Memory

  • PostgreSQL backend re-introduced as memory-postgres.
  • is_user_autosave_key detector identifies per-turn user message keys (#5631), and
    these keys are now skipped in every memory context path (#5632).

Web Dashboard

  • Chat message deletion, clear-all, and a compact mode (#6083).
  • Cron job configuration UI (#5936).
  • Embedded web build for the pack bin (#6181).
  • Bug-fix bundle: Overview crash, model save, editor caret, chat CPU usage (#6161).
  • Array-returning API helpers now guard against non-array responses (#6162).
  • WebSocket session ID persists in localStorage across page reloads (#5641).

Configuration

  • Vec<String> fields are now exposed via zeroclaw config get/set/list (#5950),
    including JSON-array syntax in config set (#0e9b9c2).
  • User-supplied providers.fallback is preserved through load/save (#6099) and
    mirrored under the canonical fallback key (#321e96f).
  • WebSocket buffer is preserved in the non-proxy ws_connect_with_proxy path (#5794).
  • [skill] TOML sections may now contain prompts (#5972).

Onboarding

  • Clean-slate rewrite: schema-driven, idempotent, DRY (#5960).
  • Generic OpenAI-compatible /v1/models fallback for unknown providers (#6056).
  • Container-aware URLs for local AI providers (#5552).
  • Windows: setup.bat issues fixed (#6137).

Gateway & Runtime

  • Session abort endpoint plus incremental streaming persistence (#5705).
  • Tool support enabled in the webhook endpoint (#6080).
  • Token usage emitted from the webhook handler (#5793).
  • Missing /api/channels route added (#6069).

Cron

  • Memory snowball accumulation in agent jobs prevented (#5817).
  • deliver_announcement returns Err when no delivery handler is registered (#5827).
  • Closing tag added to the memory context block in cron and daemon paths (#3b24f81).

Documentation

  • Mozilla Fluent i18n pipeline + multi-locale mdBook + full docs overhaul (#5788).
  • ZeroClaw Maturity Framework ratified and committed (#5911).
  • Manual release runbook (#5920).
  • AGENTS code-style rules clarified (#6163).

Installation & Distribution

  • OpenShift / Kubernetes deployment manifests (#5880).
  • Docker images now include the web dashboard (release image #5996, debian local-dev
    image #6025).
  • Install script prompts for pre-built vs source, defaulting to pre-built on
    curl | bash (#5968).
  • Windows cargo test unbroken; self-update target triples added (#6050).

Improvements

  • Refactor: web router (#6176); rate-limiting wrappers for filesystem tools (#5772);
    typed session validation errors (#6135); hardware wizard relocation (#6041).

Security & Dependencies

  • cargo update and deny.toml audit (2026-04-27) (#6152).
  • rustls-webpki updated to v0.103.13; unfixable v0.102.8 copy ignored (#6011).
  • Patches applied for rand; picomatch ReDoS fixed; wasmtime and glib ignores
    documented (#5971).
  • Daily advisory scan workflow added (#5928).
  • rand bumped from 0.10.0 to 0.10.1 (#5713).
  • postcss bumped from 8.5.6 to 8.5.10 in /web (#6084).

Bug Fixes

Area Fix
Tauri desktop Install rustls crypto provider to prevent crash (#5997); replace PNG-as-ICO with a real Windows ICO to unblock Win11 builds (#5966)
Telegram Forward message_thread_id in request_approval (#5970); skip auto-injected topic-root reply context in forum topics (#5969)
Skills (config) Allow prompts inside [skill] TOML section (#5972)
Providers Gemini/OpenRouter tool-call compatibility + google_workspace schema clarity (#5975); MiniMax native tool calling enabled (#6027); Bedrock omits temperature for Opus 4.7 (#6144); Groq native tools disabled where misbehaving (#5848); coalesce adjacent assistant turns in strip_native_tool_messages (#5829); abort OpenRouter stream task when consumer drops (#5830)
CI nextest now runs across all workspace crates (#6197); CNAME persisted on every Pages deploy (#6142)
Bulk revert recovery Recover 4 small fixes lost in bulk revert c3ff635 (#6169)
Runtime Align tool-call text preservation test (#6204); detect memcg availability at daemon startup (#5906); self-heal orphaned tool_result blocks on load + compact (#5853); register skill tools and apply excluded filter in gateway path (#5774); drop redundant narration push before AssistantToolCalls (#6093); unbreak pre-existing test failures on master (#6108); respect runtime.kind = "native" in sandbox auto-detection (#5904)
Infrastructure SQLite FTS UPDATE trigger for sessions_fts (#5985)
xtask Resolve real mdbook binary, avoid xtask self-spawn (#6171)
Web Dashboard bug-fix bundle (#6161); guard array-returning API helpers (#6162); persist WebSocket session ID across reloads (#5641)
Memory Add closing tag to memory context in cron and daemon (#3b24f81); skip user autosave keys in all memory context paths (#5632)
Gateway Enable tool support in webhook endpoint (#6080); add missing /api/channels route (#6069); emit token usage from webhook handler (#5793)
Channels (ACP) Resolve defaultModel from config (#6013); correct tool output formatting (#6035); suppress INFO logs and implement missing ACP spec protocol (#5c81d4e)
Channels (Feishu) Wire mention_only config (#5848)
Config Preserve providers.fallback through load/save (#6099); mirror provider entry under canonical fallback key (#321e96f); preserve WebSocket buffer in non-proxy path (#5794); parse JSON array syntax in config set for Vec<String> fields (#0e9b9c2)
Cron Prevent memory snowball accumulation in agent jobs (#5817); return Err when no delivery handler registered (#5827)
Multimodal Harden image-marker parser against non-path payloads (#5864)
Tools Multiply embedding score by 100 before percent formatting (#5857)
Shell Skip expansion guard when all commands allowed (#5773)
Onboarding Use container-aware URLs for local AI providers (#5552)
Docs mdBook header links point to upstream repo (#6124)
Install Prompt for pre-built vs source, default to pre-built on `curl
Docker Include web dashboard in release image (#5996) and Dockerfile.debian local-dev image (#6025)
Windows Fix setup.bat issues (#6137); unbreak cargo test and add self-update target triples (#6050)
rag-pdf Unbreak --features rag-pdf end-to-end and restore Windows tests (#6076)
Security rustls-webpki v0.103.13 (#6011); rand patches + picomatch ReDoS (#5971); cargo update + deny.toml audit (#6152)

Contributors


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

Don't miss a new zeroclaw release

NewReleases is sending notifications on new releases.