Skip to content

v1.1.0

Released: 2026-04-17

The release that makes MateClaw feel like a real personal OS

1.0 brought the new look. 1.1 makes it work the way you expect. Chat replies stream live across every channel, long tasks keep running when you switch conversations, the Wiki is semantic now, and — for the first time — agents can write their own skills.

Under the hood this is the biggest 1.x release yet: 98 commits, 25 features, 44 fixes, 20 docs updates. This page is the shortlist. See UPGRADING.md if you're coming from 1.0.x.


The headline features

Agents that write their own skills — Auto Skill Synthesis (RFC-023)

When the agent discovers a useful workflow — a recurring way to query a database, a particular report layout, the exact commands to SSH into your box — it can now ask to turn it into a skill, get your approval, and save it for next time. No more re-typing "remember that I like tables sorted this way." The agent's memory grows with you.

  • skill_manage tool supports create / edit / patch / delete
  • Auto security scan before saving (blocks dangerous patterns)
  • Clean approval flow in ChatConsole
  • Migrate between agents, share as ZIP

Multi-agent delegation, in parallel (RFC-004)

One agent can now delegate to another — or to three at once. Hand the coding agent a Jira ticket while the research agent pulls competitor data while the writing agent drafts the Slack reply. Each runs in its own isolated session, results stream back to the orchestrator.

  • delegateToAgent and delegateParallel tools
  • Per-child conversation tracking + event relay so you see progress in real time
  • Smart routing hints in system prompt

Wiki goes semantic — two-phase digest + deep research (RFC-011, RFC-012, RFC-013)

The Wiki knowledge base you fed your PDFs into is no longer a search box. It's now a retrieval engine:

  • Semantic search on every page and every chunk — ask "what did we decide about auth?" and get the decision, not just pages with "auth" in them
  • pgvector-style chunk embeddings with mean-pool sub-segmentation for documents that exceed model context
  • Two-phase digest: phase A extracts route + metadata, phase B merges per-page — order of magnitude faster on large imports (60+ pages processed in parallel)
  • Progress bar per raw material — stop staring at "processing..." and see pages done / total
  • Resumable: interrupt mid-import, hit "reprocess", only the unfinished pages re-run
  • New wiki_search_pages (hybrid), wiki_semantic_search (chunk-level), wiki_read_page, wiki_trace_source tools

Deep thinking (RFC-001)

You can now turn on Anthropic extended thinking / DashScope qwq reasoning / OpenAI o1 reasoning_effort=high per agent and per turn. thinkingLevel: off / low / medium / high / max. The thinking block streams into the UI as a collapsible panel — you see the model reason, you don't see tokens wasted on tasks that don't need it.

Anthropic prompt caching (RFC-014)

System prompts, agent personas, tool definitions — all automatically marked as cache_control: ephemeral on Anthropic-compatible endpoints. First request warm, every follow-up cached. Dashboard now tracks cache_read_tokens / cache_write_tokens daily.

Declarative hook system (RFC-017)

A 5-milestone hook lifecycle: before_tool, after_tool, before_llm, after_llm, on_error. Hooks run in-process, can transform arguments / results / mask sensitive fields / add audit log entries. Tool guard rules are now one family of hooks.

Plugin SDK (RFC-003)

Third-party plugins can now extend MateClaw without forking. SPI for ChannelAdapter, Tool, MemoryProvider, Hook. Discovery from JAR drop-in plugins/ dir.

Voice for every channel (RFC-009)

IM channels (WeCom / WeChat / DingTalk) now support voice input. ASR via DashScope / OpenAI Whisper, multi-path fallback for WeChat's encrypted voice CDN. Voice replies synthesized via TTS and sent as audio messages.


The ChatConsole, reimagined for multi-channel

Watching external IM conversations happen in real time is new, and it's how MateClaw stops feeling like a web app and starts feeling like an operations console.

  • Realtime sync for external channels — a WeChat user talks to your agent, you see the reasoning, tool calls, and streaming reply happen in the ChatConsole sidebar. No F5.
  • Running indicator — amber pulse on every conversation with an active agent run
  • Switch doesn't kill — flip to a different conversation mid-stream, the previous one keeps running in the background; flip back, you reconnect to the live buffer
  • No duplicate bubbles — reconcile layer matches client-uuid placeholders with DB-persisted messages via ID promotion, so the streamed bubble becomes the saved message seamlessly
  • Actionable error cards — "does not support tools" from Ollama now shows the specific Chinese guidance ("switch to qwen3 / qwen2.5:7b+ / llama3.1:8b+"), not a generic "unknown error"

WeChat / WeCom stability (RFC-024)

Personal WeChat long-connection bot was the flakiest channel in 1.0. 1.1 rebuilds it:

  • pollLoop watchdog — no more silent pollers that stopped reconnecting
  • Jittered exponential backoff on token expiry / network blips
  • touchActivity per adapter — per-account staleness detection
  • Token persistence across restarts
  • Voice ASR with 3 fallback paths for WeChat's CDN schemes
  • WeCom markdown tables + refusal message detection

Under the hood

UI-configurable embedding models

No more EMBEDDING_API_KEY env vars. Embedding models are now regular rows in mate_model_config with model_type='embedding'. Settings → Models lists them alongside chat models. Knowledge bases pick theirs from a dropdown.

LLM provider hardening

  • DashScope "url error" correctly classified as client error (don't retry dead model)
  • DashScope model discovery now protocol-aware probe (skip non-chat modalities, reduces probe log noise)
  • Unavailable / dot-versioned DashScope models auto-purged on startup
  • Ollama auto-discovery rewrites seed :latest tags to actual installed versions (deepseek-r1:latestdeepseek-r1:7b) — no more model not found 404s
  • Ollama no-tools model blocklist — deepseek-r1, gemma*, phi3/4, etc. no longer auto-activated as default

MySQL migrations fixed — Gitee #IIYHLJ

All mysql/V*.sql migrations that used ALTER TABLE ... ADD COLUMN IF NOT EXISTS (MariaDB-only, not MySQL) have been rewritten to use INFORMATION_SCHEMA + prepared statement guards. Fresh MySQL 8.x deploys now succeed; existing users self-heal via FlywayRepairConfig.

Auto-create database on first connection

application-mysql.yml now includes createDatabaseIfNotExist=true. No more manual CREATE DATABASE mateclaw before first startup.

Defensive hardening (RFC-025)

Five quick wins from external CHANGELOG scans:

  • Tool argument redaction in logs
  • Stream fallback timer + idempotent cleanup
  • Approval placeholder cleanup on timeout
  • Agent instance cache invalidation on config change
  • Channel adapter stale-connection eviction

Docker compose now refuses to start with default passwords

docker-compose.yml reads all secrets from .env. Missing DB_PASSWORD / DB_ROOT_PASSWORD / DASHSCOPE_API_KEYdocker compose up fails fast with a clear error. The old hardcoded mateclaw123 default is gone. See .env.example for the template.


Fixes worth calling out

  • Tool guard — now scans procedures defined in migrations too
  • Flyway version collisions — V8/V9 and V9/V10 had parallel PR merge collisions; renumbered clean
  • Skill reinstallSKILL.md overwrites correctly, ClawHub fetchBundle now retries on transient failure
  • MCP autodetect — Node.js PATH discovery for Desktop app users on macOS/Linux without node in GUI launch env
  • Filesystem MCP — disabled by default, ~ placeholder made explicit
  • Wiki slug canonicalization — same concept across multiple chunks no longer wastes LLM calls
  • Wiki failure routing — DNS/TLS/connection-refused now fail fast with root cause in UI
  • ChatConsole — auto-scroll doesn't hijack mouse; sidebar shows channel-specific icons
  • TalkMode WebSocket — no more stray error on chat page load
  • MessageBubble — backend error translation (e.g., "当前模型不支持工具调用") now surfaces in the failed-message card

See the commit log (git log v1.0.418..v1.1.0) for the complete list.


Upgrading from 1.0.x

See UPGRADING.md. Most users: no manual steps. FlywayRepairConfig heals the mysql migration checksum drift, OllamaAutoDiscoveryRunner rewrites the broken :latest default, stale mate_model_config rows converge on next restart.

Production deployers must set new required env vars in .env:

  • DB_PASSWORD (strong, not mateclaw123)
  • DB_ROOT_PASSWORD
  • JWT_SECRET (recommended)
  • MATECLAW_CORS_ALLOWED_ORIGINS (recommended)

Thanks

To everyone who reported bugs on Gitee (#IIYHLJ and earlier), to the community running MateClaw on flaky home networks and corner-case environments, to the folks patient enough to restart their Ollama four times — this release is shaped by you.

Next up: v1.2 roadmap focuses on RFC-026 (channel tunnel / unified queue) and deeper agent autonomy. Watch the RFC folder.