v0.13.0
v0.13.0 is an agent-extensibility and runtime-reliability release. It adds
WorkBuddy and MiMo Code integrations, lets users register state-only custom HTTP
agents, adds a default idle-animation picker, brings remote approval to both
Feishu and Lark, surfaces Codex request_user_input questions on the desktop,
and hardens hook recovery and Windows/macOS window behavior.
This release welcomes seven first-time contributors.
New Integrations And Extensibility
- WorkBuddy support (#618) — optional Claude Code-compatible command hooks
support the current~/.workbuddy-ai/settings.jsonlocation and the legacy
~/.workbuddy/settings.jsonlocation. WorkBuddy is state + Notification only:
approval remains in WorkBuddy's native sandbox and GUI, and Clawd never
registers a/permissionhook. Thanks to first-time contributor @kkirito16. - MiMo Code support (#607) — MiMo joins the opencode family through
@mimo-ai/plugin, with comment-preserving JSONC install/repair/uninstall,
deterministic handling of multiple config candidates, and the same
Allow/Always/Deny permission bridge and DND fallback as opencode.taskchild
sessions are headless and do not participate in the visible multi-session
animation fanout. Thanks to first-time contributor @jiaxuan1101. - Custom HTTP agents (#652) — Settings can register local applications and
assign stablecustom-...IDs for state-only/statereporting through the
runtime-discovered port. Registration does not install a hook or observe a
process automatically; disabled, removed, stale, and forged IDs fail closed,
while server-side session namespacing prevents two custom applications from
overwriting one another. Thanks to first-time contributor @200780381. - Default idle animation picker (#679) — choose the idle visual used by a
theme while preserving eye-tracking capability rules. Thanks to returning
contributor @KaiC5504. - Lark remote approval (#493) — the existing Feishu channel now supports
Lark tenants as a first-class platform, with real-tenant fixes and updated
event-subscription guidance.
Agent Runtime And Permission Reliability
- Codex desktop questions (#707) — supported
request_user_inputprompts
can appear as desktop question cards, including recovery after restart and
correct resolution cleanup. Recovery is bounded by age, file count, and byte
budget, keeps durable read positions, handles exact 1 MiB record boundaries,
and does not replay stale completion events. Thanks to first-time contributor
@JesmonX; rollout read-position and unavailable-session work also came from
first-time contributor @lurui1997 (#698, #700). - Codex Desktop attribution and deduplication (#669) — Desktop originator
metadata is retained and Desktop sessions are counted separately where
needed. Thanks to first-time contributor @Dxy2326. - Claude hook self-healing (#673) — all in-process Claude settings mutations
now run through one server-owned queue. Directory watching catches atomic
replacement, a periodic read-only health audit finds deleted scripts even
without an fs event, and three repeated failed repairs transition to a manual
fix state. Explicit Install/Fix only reports success after the entire declared
hook set verifies healthy. - CodeBuddy permission ownership — local and explicitly configured custom
permission URLs remain supported, while unrelated HTTP hooks are preserved;
a bare hook named onlyclawdis never treated as owned. - Kimi passive approval cues (#675, #680, #702, #703) — permission cards are
tool-aware, batched approval state is tracked without taking over Kimi's
native decision, dismissing a cue can focus the terminal, and the legacy
suspect heuristic is migrated safely. New legacy~/.kimiinstalls now
default to persisted--permission-mode=suspectbecause current kimi-cli
versions do not emit explicit permission fields; an existing explicit choice
is preserved. Pre-approved gated commands lasting longer than about 0.8s may
briefly show a false-alarm cue. SetCLAWD_KIMI_PERMISSION_MODE=explicit
before reinstalling/syncing to opt out persistently, or use the same runtime
environment variable for a temporary override. - Permission fallback clarity (#704) — opencode-family bubbles can return
control to the terminal without silently deciding the request. - Nested hook Doctor checks (#668) — integration health is validated per
event instead of accepting a partially present nested hook configuration.
Desktop And Platform Fixes
- No residual Windows Terminal prompt flash (#672) — foreground Windows
Terminal sampling moves into the already-running Electron process, removing
the remaining per-prompt PowerShell spawn. Hook process-tree inspection is
also skipped when Clawd is offline and temporary caches no longer retain agent
command lines (#681). Thanks to @Dxy2326. - Windows DWM cloak recovery (#525, #701) — the pet can detect and recover
from an unexpectedly cloaked window across watchdog and power/display-wake
paths. - Windows first-frame visibility recovery — after the first pet visual is
actually rendered, Clawd replays the existing window bounds and native
visibility/topmost recovery sequence without relocating the saved pet
position. This prevents an upgrade launch from requiring the tray recovery
action before the pet appears. - Desktop shell fullscreen detection (#721) — Explorer/desktop shell
windows are no longer mistaken for fullscreen applications. Thanks to
returning contributor @KaiC5504. - Stable tray flash icon (#722, #723) — notification flashing no longer
changes tray icon size. Thanks to first-time contributor @chen86860. - macOS SkyLight editing dodge (#640, #664) — while a text-input bubble is
being edited, the pet and hit windows are transactionally moved out of the
private stationary Space so they sit behind the input/IME surface, with a
fade fallback if the native path cannot be applied. Thanks to returning
contributor @Yike-Ye. - Electron install integrity (#710, #712) — postinstall and explicit
verification detect incomplete or mismatched Electron distributions, retain
Linux override fallback behavior, and validate packaged platform binaries.
Electron is updated to 41.10.2; source builds now require Node.js 22.12.0 or
newer and the repository pins Node 24.18.0 in.nvmrc.
Release Hardening
- Release CI now runs the full test suite on Windows, macOS, and Linux before
building, so POSIX-only installer/JSONC behavior is no longer skipped by the
only test job. - Custom-agent session keys are namespaced at the HTTP trust boundary, Claude
explicit repairs require a fully healthy report, and local/remote Codex
recovery retains complete records that begin exactly at the tail window. - Windows still ships separate x64 and ARM64 NSIS installers. macOS and Linux
packages retain their platform-specific sidecars and executable checks.
Contributors
Welcome to first-time contributors @jiaxuan1101, @kkirito16,
@200780381, @Dxy2326, @lurui1997, @JesmonX, and @chen86860.
Thanks also to returning contributors @KaiC5504, @Yike-Ye, and
@Git-creat7, and to everyone who tested real agent and platform behavior.
Upgrade Notes
- Existing preferences, themes, and installed/enabled integration flags are
preserved when upgrading from v0.12.0. - WorkBuddy users should prefer
~/.workbuddy-ai/settings.json; the legacy
~/.workbuddy/settings.jsonpath remains supported. - Custom HTTP senders must continue discovering the active port from
~/.clawd/runtime.json; port 23333 must not be hardcoded. - After upgrading from v0.12.0 or earlier, fully quit and start Clawd once so
~/.clawd/runtime.jsongains itsownerPid. Until that first restart, hooks
fail closed for process-tree metadata: state/approval routing still works,
but terminal PID and click-to-focus metadata may be temporarily absent. - WorkBuddy has no verified standalone Linux/WSL CLI. MiMo/opencode
task
children remain headless rather than driving visible building fanout.
Validation Status
- Windows x64: packaged real-machine smoke passed on July 22, 2026. The final
win-unpackedapp opened a live window, owned its runtime identity, fell back
from occupied port 23333 to 23334, and returned a validGET /statehealth
response. The NSIS cleanup entry point also removed a managed MiMo plugin
from JSONC while preserving its comment, trailing comma, third-party plugin,
and unrelated settings. After the first draft installer exposed a blank pet
on upgrade launch, the rebuilt package was cold-started twice with the saved
pre-fix position/display snapshot: both runs kept the saved189,403
position, reported a visible uncloaked native window, and the first run's
captured HWND contained the rendered Cloudling visual without using the tray
recovery action. - Windows ARM64: not real-machine validated for v0.13.0.
- macOS: not real-machine validated for the final v0.13.0 package in this
Windows-first release environment. - Linux: not real-machine validated for the final v0.13.0 package in this
Windows-first release environment. - Feishu China tenant and QoderWork IDE: not real-machine validated for
v0.13.0. Lark tenant behavior and Qoder CLI are covered separately.
CI builds and unit tests are release gates, but do not count as real-machine
validation.