Memory: render progress immediately, color batch statuses in verbose logs, and poll OpenAI batch status every 2s by default. https://docs.clawd.bot/concepts/memory
Memory: add --verbose logging for memory status + batch indexing details. https://docs.clawd.bot/concepts/memory
Agents: add local docs path resolution and include docs/mirror/source/community pointers in the system prompt.
Agents: clarify node_modules read-only guidance in agent instructions.
Config: stamp last-touched metadata on write and warn if the config is newer than the running build.
macOS: hide usage section when usage is unavailable instead of showing provider errors.
Android: migrate node transport to the Gateway WebSocket protocol with TLS pinning support + gateway discovery naming.
Android: send structured payloads in node events/invokes and include user-agent metadata in gateway connects.
Android: remove legacy bridge transport code now that nodes use the gateway protocol.
Android: bump okhttp + dnsjava to satisfy lint dependency checks.
Build: update workspace + core/plugin deps.
Build: use tsgo for dev/watch builds by default (opt out with CLAWDBOT_TS_COMPILER=tsc).
Repo: remove the Peekaboo git submodule now that the SPM release is used.
macOS: switch PeekabooBridge integration to the tagged Swift Package Manager release.
macOS: stop syncing Peekaboo in postinstall.
Swabble: use the tagged Commander Swift package release.
Breaking
BREAKING: Reject invalid/unknown config entries and refuse to start the gateway for safety. Run clawdbot doctor --fix to repair, then update plugins (clawdbot plugins update) if you use any.
Fixes
Discovery: shorten Bonjour DNS-SD service type to _clawdbot-gw._tcp and update discovery clients/docs.
Agents: propagate accountId into embedded runs so sub-agent announce routing honors the originating account. (#1058)
Agents: avoid treating timeout errors with "aborted" messages as user aborts, so model fallback still runs. (#1137)
Agents: sanitize oversized image payloads before send and surface image-dimension errors.
Sessions: fall back to session labels when listing display names. (#1124)
Compaction: include tool failure summaries in safeguard compaction to prevent retry loops. (#1084)
Config: log invalid config issues once per run and keep invalid-config errors stackless.
Config: allow Perplexity as a web_search provider in config validation. (#1230)
Config: allow custom fields under skills.entries.<name>.config for skill credentials/config. (#1226)
Doctor: clarify plugin auto-enable hint text in the startup banner.
Doctor: canonicalize legacy session keys in session stores to prevent stale metadata. (#1169)
Docs: make docs:list fail fast with a clear error if the docs directory is missing.
Plugins: add Nextcloud Talk manifest for plugin config validation. (#1297)
Plugins: surface plugin load/register/config errors in gateway logs with plugin/source context.
CLI: preserve cron delivery settings when editing message payloads. (#1322)
CLI: keep clawdbot logs output resilient to broken pipes while preserving progress output.
CLI: avoid duplicating --profile/--dev flags when formatting commands.
CLI: centralize CLI command registration to keep fast-path routing and program wiring in sync. (#1207)
CLI: keep banners on routed commands, restore config guarding outside fast-path routing, and tighten fast-path flag parsing while skipping console capture for extra speed. (#1195)
CLI: skip runner rebuilds when dist is fresh. (#1231)
CLI: add WSL2/systemd unavailable hints in daemon status/doctor output.
Status: route native /status to the active agent so model selection reflects the correct profile. (#1301)
Status: show both usage windows with reset hints when usage data is available. (#1101)
UI: keep config form enums typed, preserve empty strings, protect sensitive defaults, and deepen config search. (#1315)
UI: preserve ordered list numbering in chat markdown. (#1341)
UI: allow Control UI to read gatewayUrl from URL params for remote WebSocket targets. (#1342)
UI: prevent double-scroll in Control UI chat by locking chat layout to the viewport. (#1283)
UI: enable shell mode for sync Windows spawns to avoid pnpm ui:build EINVAL. (#1212)
TUI: keep thinking blocks ordered before content during streaming and isolate per-run assembly. (#1202)
TUI: align custom editor initialization with the latest pi-tui API. (#1298)
TUI: show generic empty-state text for searchable pickers. (#1201)
TUI: highlight model search matches and stabilize search ordering.
Configure: hide OpenRouter auto routing model from the model picker. (#1182)
Memory: show total file counts + scan issues in clawdbot memory status.
Memory: fall back to non-batch embeddings after repeated batch failures.
Memory: apply OpenAI batch defaults even without explicit remote config.
Memory: index atomically so failed reindex preserves the previous memory database. (#1151)