This post covers what shipped in v2026.1.12 and what it means for OpenClaw VPS operators.
What shipped
Highlights
- BREAKING: rename chat βprovidersβ (Slack/Telegram/WhatsApp/β¦) to channels across CLI/RPC/config; legacy config keys auto-migrate on load (and are written back as
channels.*). - Memory: add vector search for agent memories (Markdown-only) with SQLite index, chunking, lazy sync + file watch, and per-agent enablement/fallback.
- Plugins: restore full voice-call plugin parity (Telnyx/Twilio, streaming, inbound policies, tools/CLI).
- Models: add Synthetic provider plus Moonshot Kimi K2 0905 + turbo/thinking variants (with docs). (#811) β thanks @siraht; (#818) β thanks @mickahouan.
- Cron: one-shot schedules accept ISO timestamps (UTC) with optional delete-after-run; cron jobs can target a specific agent (CLI + macOS/Control UI).
- Agents: add compaction mode config with optional safeguard summarization and per-agent model fallbacks. (#700) β thanks @thewilloftheshadow; (#583) β thanks @mitschabaude-bot.
New & Improved
- Memory: add custom OpenAI-compatible embedding endpoints; support OpenAI/local
node-llama-cppembeddings with per-agent overrides and provider metadata in tools/CLI. (#819) β thanks @mukhtharcm. - Memory: new
clawdbot memoryCLI plusmemorysearch/memorygettools with snippets + line ranges; index stored under~/.clawdbot/memory/{agentId}.sqlitewith watch-on-by-default. - Agents: strengthen memory recall guidance; make workspace bootstrap truncation configurable (default 20k) with warnings; add default sub-agent model config.
- Tools/Sandbox: add tool profiles + group shorthands; support tool-policy groups in
tools.sandbox.tools; drop legacymemoryshorthand; allow Docker bind mounts viadocker.binds. (#790) β thanks @akonyer. - Tools: add browser
scrollintoviewaction; allow Claude/Gemini tool param aliases; allow thinkingxhighfor GPT-5.2/Codex with safe downgrades. (#793) β thanks @hsrvc; (#444) β thanks @grp06. - Gateway/CLI: add Tailscale binary discovery, custom bind mode, and probe auth retry; add
clawdbot dashboardauto-open flow; default native slash commands to"auto"with per-provider overrides. (#740) β thanks @jeffersonwarrior. - Auth/Onboarding: add Chutes OAuth (PKCE + refresh + onboarding choice); normalize API key inputs; default TUI onboarding to
deliver: false. (#726) β thanks @FrieSei; (#791) β thanks @roshanasingh4. - Providers: add
discord.allowBots; trim legacy MiniMax M2 from default catalogs; route MiniMax vision to the Coding Plan VLM endpoint (also accepts@/path/to/file.pnginputs). (#802) β thanks @zknicker. - Gateway: allow Tailscale Serve identity headers to satisfy token auth; rebuild Control UI assets when protocol schema is newer. (#823) β thanks @roshanasingh4; (#786) β thanks @meaningfool.
- Heartbeat: default
ackMaxCharsto 300 so shortHEARTBEAT_OKreplies stay internal.
Installer
- Install: run
clawdbot doctor --non-interactiveafter git installs/updates and nudge daemon restarts when detected.
Fixes
- Doctor: warn on pnpm workspace mismatches, missing Control UI assets, and missing tsx binaries; offer UI rebuilds.
- Models/Providers: treat credential validation failures as auth errors to trigger fallback; normalize
${ENV_VAR}apiKey values and auto-fill missing provider keys; preserve explicit GitHub Copilot provider config + agent-dir auth profiles. (#822) β thanks @sebslight; (#705) β thanks @TAGOOZ. - Auth: drop invalid auth profiles from ordering so environment keys can still be used for providers like MiniMax.
- Gemini: normalize Gemini 3 ids to preview variants; strip Gemini CLI tool call/response ids; downgrade missing
thoughtsignature; strip Claudemsg*thought_signature fields to avoid base64 decode errors. (#795) β thanks @thewilloftheshadow; (#783) β thanks @ananth-vardhan-cn; (#793) β thanks @hsrvc; (#805) β thanks @marcmarg. - Agents: auto-recover from compaction context overflow by resetting the session and retrying; propagate overflow details from embedded runs so callers can recover.
- MiniMax: strip malformed tool invocation XML; include
MiniMax-VL-01in implicit provider for image pairing. (#809) β thanks @latitudeki5223. - Onboarding/Auth: honor
CLAWDBOTAGENTDIR/PICODINGAGENT_DIRwhen writing auth profiles (MiniMax). (#829) β thanks @roshanasingh4. - Anthropic: handle
overloaded_errorwith a friendly message and failover classification. (#832) β thanks @danielz1z. - Anthropic: merge consecutive user turns (preserve newest metadata) before validation to avoid incorrect role errors. (#804) β thanks @ThomsenDrake.
- Messaging: enforce context isolation for message tool sends; keep typing indicators alive during tool execution. (#793) β thanks @hsrvc; (#450, #447) β thanks @thewilloftheshadow.
- Auto-reply:
/statusallowlist behavior, reasoning-tag enforcement on fallback, and system-event enqueueing for elevated/reasoning toggles. (#810) β thanks @mcinteerj. - System events: include local timestamps when events are injected into prompts. (#245) β thanks @thewilloftheshadow.
- Auto-reply: resolve ambiguous
/modelmatches; fix streaming block reply media handling; keep >300 char heartbeat replies instead of dropping. - Discord/Slack: centralize reply-thread planning; fix autoThread routing + add per-channel autoThread; avoid duplicate listeners; keep reasoning italics intact; allow clearing channel parents via message tool. (#800, #807) β thanks @davidguttman; (#744) β thanks @thewilloftheshadow.
- Telegram: preserve forum topic thread ids, persist polling offsets, respect account bindings in webhook mode, and show typing indicator in General topics. (#727, #739) β thanks @thewilloftheshadow; (#821) β thanks @gumadeiras; (#779) β thanks @azade-c.
- Slack: accept slash commands with or without leading
/for custom command configs. (#798) β thanks @thewilloftheshadow. - Cron: persist disabled jobs correctly; accept
jobIdaliases for update/run/remove params. (#205, #252) β thanks @thewilloftheshadow. - Gateway/CLI: honor
CLAWDBOTLAUNCHDLABEL/CLAWDBOTSYSTEMDUNIToverrides;agents.listrespects explicit config; reduce noisy loopback WS logs during tests; runclawdbot doctor --non-interactiveduring updates. (#781) β thanks @ronyrus. - Onboarding/Control UI: refuse invalid configs (run doctor first); quote Windows browser URLs for OAuth; keep chat scroll position unless the user is near the bottom. (#764) β thanks @mukhtharcm; (#794) β thanks @roshanasingh4; (#217) β thanks @thewilloftheshadow.
- Tools/UI: harden tool input schemas for strict providers; drop null-only union variants for Gemini schema cleanup; treat
maxChars: 0as unlimited; keep TUI last streamed response instead of "(no output)". (#782) β thanks @AbhisekBasu1; (#796) β thanks @gabriel-trigo; (#747) β thanks @thewilloftheshadow. - Connections UI: polish multi-account account cards. (#816) β thanks @steipete.
Maintenance
- Dependencies: bump Pi packages to 0.45.3 and refresh patched pi-ai.
- Testing: update Vitest + browser-playwright to 4.0.17.
- Docs: add Amazon Bedrock provider notes and link from models/FAQ.
What matters for hosted operators
- Validate channel delivery behavior (web chat + Telegram).
- Verify model/provider settings and fallback behavior.
- Run a smoke test after deploy: message flow, tool call, and response quality.
Post-upgrade checklist
- Send/receive test messages in active channels.
- Confirm bot settings and auth paths still behave as expected.
- Check billing/usage visibility and dashboard status.
- Log regressions immediately and keep rollback notes.
Related reading
Start your free 7-day Pro trial
Source
- https://github.com/openclaw/openclaw/releases/tag/v2026.1.12