2025-11-25 12:00:48 +01:00
# Changelog
2026-01-17 08:50:02 +00:00
Docs: https://docs.clawd.bot
2026-01-24 00:17:58 +00:00
## 2026.1.23 (Unreleased)
2026-01-23 08:42:40 +00:00
2026-01-24 09:40:18 +00:00
### Highlights
2026-01-24 12:10:55 +00:00
- TTS: move Telegram TTS into core + enable model-driven TTS tags by default for expressive audio replies. (#1559 ) Thanks @Glucksberg . https://docs.clawd.bot/tts
- Gateway: add `/tools/invoke` HTTP endpoint for direct tool calls (auth + tool policy enforced). (#1575 ) Thanks @vignesh07 . https://docs.clawd.bot/gateway/tools-invoke-http-api
- Heartbeat: per-channel visibility controls (OK/alerts/indicator). (#1452 ) Thanks @dlauer . https://docs.clawd.bot/gateway/heartbeat
- Deploy: add Fly.io deployment support + guide. (#1570 ) https://docs.clawd.bot/platforms/fly
- Channels: add Tlon/Urbit channel plugin (DMs, group mentions, thread replies). (#1544 ) Thanks @wca4a . https://docs.clawd.bot/channels/tlon
2026-01-24 09:40:18 +00:00
2026-01-23 11:49:59 +00:00
### Changes
2026-01-24 12:10:55 +00:00
- Channels: allow per-group tool allow/deny policies across built-in + plugin channels. (#1546 ) Thanks @adam91holt . https://docs.clawd.bot/multi-agent-sandbox-tools
- Agents: add Bedrock auto-discovery defaults + config overrides. (#1553 ) Thanks @fal3 . https://docs.clawd.bot/bedrock
- CLI: add `clawdbot system` for system events + heartbeat controls; remove standalone `wake` . (commit 71203829d) https://docs.clawd.bot/cli/system
- CLI: add live auth probes to `clawdbot models status` for per-profile verification. (commit 40181afde) https://docs.clawd.bot/cli/models
- CLI: restart the gateway by default after `clawdbot update` ; add `--no-restart` to skip it. (commit 2c85b1b40)
- Browser: add node-host proxy auto-routing for remote gateways (configurable per gateway/node). (commit c3cb26f7c)
- Plugins: add optional `llm-task` JSON-only tool for workflows. (#1498 ) Thanks @vignesh07 . https://docs.clawd.bot/tools/llm-task
2026-01-23 17:56:50 +00:00
- Markdown: add per-channel table conversion (bullets for Signal/WhatsApp, code blocks elsewhere). (#1495 ) Thanks @odysseus0 .
2026-01-24 12:10:55 +00:00
- Agents: keep system prompt time zone-only and move current time to `session_status` for better cache hits. (commit 66eec295b)
- Agents: remove redundant bash tool alias from tool registration/display. (#1571 ) Thanks @Takhoffman .
- Docs: add cron vs heartbeat decision guide (with Lobster workflow notes). (#1533 ) Thanks @JustYannicc . https://docs.clawd.bot/automation/cron-vs-heartbeat
- Docs: clarify HEARTBEAT.md empty file skips heartbeats, missing file still runs. (#1535 ) Thanks @JustYannicc . https://docs.clawd.bot/gateway/heartbeat
2026-01-23 11:49:59 +00:00
2026-01-23 08:42:40 +00:00
### Fixes
2026-01-24 11:09:06 +00:00
- Sessions: accept non-UUID sessionIds for history/send/status while preserving agent scoping. (#1518 )
2026-01-24 12:10:55 +00:00
- Messaging/Sessions: mirror outbound sends into target session keys (threads + dmScope), create session entries on send, and normalize session key casing. (#1520 , commit 4b6cdd1d3)
2026-01-24 04:51:34 +00:00
- Sessions: reject array-backed session stores to prevent silent wipes. (#1469 )
2026-01-24 12:10:55 +00:00
- Gateway: compare Linux process start time to avoid PID recycling lock loops; keep locks unless stale. (#1572 ) Thanks @steipete .
- Gateway: accept null optional fields in exec approval requests. (#1511 ) Thanks @pvoo .
- Exec approvals: persist allowlist entry ids to keep macOS allowlist rows stable. (#1521 ) Thanks @ngutman .
- Exec: honor tools.exec ask/security defaults for elevated approvals (avoid unwanted prompts). (commit 5662a9cdf)
- Daemon: use platform PATH delimiters when building minimal service paths. (commit a4e57d3ac)
- Linux: include env-configured user bin roots in systemd PATH and align PATH audits. (#1512 ) Thanks @robbyczgw -cla.
2026-01-24 00:16:07 +00:00
- Tailscale: retry serve/funnel with sudo only for permission errors and keep original failure details. (#1551 ) Thanks @sweepies .
2026-01-24 12:10:55 +00:00
- Docker: update gateway command in docker-compose and Hetzner guide. (#1514 )
- Agents: show tool error fallback when the last assistant turn only invoked tools (prevents silent stops). (commit 8ea8801d0)
- Agents: ignore IDENTITY.md template placeholders when parsing identity. (#1556 )
- Agents: drop orphaned OpenAI Responses reasoning blocks on model switches. (#1562 ) Thanks @roshanasingh4 .
2026-01-24 02:54:22 +00:00
- Agents: add CLI log hint to "agent failed before reply" messages. (#1550 ) Thanks @sweepies .
2026-01-24 12:10:55 +00:00
- Agents: warn and ignore tool allowlists that only reference unknown or unloaded plugin tools. (#1566 )
- Agents: treat plugin-only tool allowlists as opt-ins; keep core tools enabled. (#1467 )
- Agents: honor enqueue overrides for embedded runs to avoid queue deadlocks in tests. (commit 084002998)
- Slack: honor open groupPolicy for unlisted channels in message + slash gating. (#1563 ) Thanks @itsjaydesu .
2026-01-23 21:01:15 +01:00
- Discord: limit autoThread mention bypass to bot-owned threads; keep ack reactions mention-gated. (#1511 ) Thanks @pvoo .
2026-01-24 12:10:55 +00:00
- Discord: retry rate-limited allowlist resolution + command deploy to avoid gateway crashes. (commit f70ac0c7c)
- Mentions: ignore mentionPattern matches when another explicit mention is present in group chats (Slack/Discord/Telegram/WhatsApp). (commit d905ca0e0)
2026-01-24 03:39:21 +00:00
- Telegram: render markdown in media captions. (#1478 )
2026-01-24 12:10:55 +00:00
- MS Teams: remove `.default` suffix from Graph scopes and Bot Framework probe scopes. (#1507 , #1574 ) Thanks @Evizero .
- Browser: keep extension relay tabs controllable when the extension reuses a session id after switching tabs. (#1160 )
- Voice wake: auto-save wake words on blur/submit across iOS/Android and align limits with macOS. (commit 69f645c66)
- UI: keep the Control UI sidebar visible while scrolling long pages. (#1515 ) Thanks @pookNast .
- UI: cache Control UI markdown rendering + memoize chat text extraction to reduce Safari typing jank. (commit d57cb2e1a)
- TUI: forward unknown slash commands, include Gateway commands in autocomplete, and render slash replies as system output. (commit 1af227b61, commit 8195497ce, commit 6fba598ea)
- CLI: auth probe output polish (table output, inline errors, reduced noise, and wrap fixes in `clawdbot models status` ). (commit da3f2b489, commit 00ae21bed, commit 31e59cd58, commit f7dc27f2d, commit 438e782f8, commit 886752217, commit aabe0bed3, commit 81535d512, commit c63144ab1)
2026-01-24 03:46:07 +00:00
- Media: only parse `MEDIA:` tags when they start the line to avoid stripping prose mentions. (#1206 )
2026-01-23 08:42:40 +00:00
- Media: preserve PNG alpha when possible; fall back to JPEG when still over size cap. (#1491 ) Thanks @robbyczgw -cla.
2026-01-24 12:10:55 +00:00
- Skills: gate bird Homebrew install to macOS. (#1569 ) Thanks @bradleypriest .
2026-01-23 08:42:40 +00:00
2026-01-22 10:04:56 +01:00
## 2026.1.22
2026-01-22 21:33:19 +00:00
2026-01-22 07:37:55 +00:00
### Changes
2026-01-23 06:39:24 +00:00
- Highlight: Compaction safeguard now uses adaptive chunking, progressive fallback, and UI status + retries. (#1466 ) Thanks @dlauer .
2026-01-23 02:17:59 -05:00
- Providers: add Antigravity usage tracking to status output. (#1490 ) Thanks @patelhiren .
2026-01-23 05:24:18 +00:00
- Slack: add chat-type reply threading overrides via `replyToModeByChatType` . (#1442 ) Thanks @stefangalescu .
2026-01-23 04:37:58 +00:00
- BlueBubbles: add `asVoice` support for MP3/CAF voice memos in sendAttachment. (#1477 , #1482 ) Thanks @Nicell .
2026-01-23 04:32:13 +00:00
- Onboarding: add hatch choice (TUI/Web/Later), token explainer, background dashboard seed on macOS, and showcase link.
2026-01-22 07:37:55 +00:00
2026-01-22 21:33:19 +00:00
### Fixes
- BlueBubbles: stop typing indicator on idle/no-reply. (#1439 ) Thanks @Nicell .
2026-01-23 02:10:05 +00:00
- Message tool: keep path/filePath as-is for send; hydrate buffers only for sendAttachment. (#1444 ) Thanks @hopyky .
2026-01-22 21:40:54 +00:00
- Auto-reply: only report a model switch when session state is available. (#1465 ) Thanks @robbyczgw -cla.
2026-01-22 21:57:02 +00:00
- Control UI: resolve local avatar URLs with basePath across injection + identity RPC. (#1457 ) Thanks @dlauer .
2026-01-23 07:01:29 +00:00
- Agents: sanitize assistant history text to strip tool-call markers. (#1456 ) Thanks @zerone0x .
2026-01-23 14:50:05 +09:00
- Discord: clarify Message Content Intent onboarding hint. (#1487 ) Thanks @kyleok .
2026-01-23 07:17:27 +00:00
- Gateway: stop the service before uninstalling and fail if it remains loaded.
2026-01-22 22:24:25 +00:00
- Agents: surface concrete API error details instead of generic AI service errors.
2026-01-23 06:26:30 +00:00
- Exec: fall back to non-PTY when PTY spawn fails (EBADF). (#1484 )
2026-01-23 00:10:19 +00:00
- Exec approvals: allow per-segment allowlists for chained shell commands on gateway + node hosts. (#1458 ) Thanks @czekaj .
2026-01-23 00:28:41 +00:00
- Agents: make OpenAI sessions image-sanitize-only; gate tool-id/repair sanitization by provider.
2026-01-23 03:13:44 +00:00
- Doctor: honor CLAWDBOT_GATEWAY_TOKEN for auth checks and security audit token reuse. (#1448 ) Thanks @azade -c.
2026-01-23 00:59:44 +00:00
- Agents: make tool summaries more readable and only show optional params when set.
2026-01-23 06:00:13 +01:00
- Agents: honor SOUL.md guidance even when the file is nested or path-qualified. (#1434 ) Thanks @neooriginal .
2026-01-23 05:38:04 +00:00
- Matrix (plugin): persist m.direct for resolved DMs and harden room fallback. (#1436 , #1486 ) Thanks @sibbl .
2026-01-23 02:49:47 +00:00
- CLI: prefer `~` for home paths in output.
- Mattermost (plugin): enforce pairing/allowlist gating, keep @username targets, and clarify plugin-only docs. (#1428 ) Thanks @damoahdominic .
2026-01-23 01:34:21 +00:00
- Agents: centralize transcript sanitization in the runner; keep < final > tags and error turns intact.
2026-01-22 10:04:56 +01:00
- Auth: skip auth profiles in cooldown during initial selection and rotation. (#1316 ) Thanks @odrobnik .
- Agents/TUI: honor user-pinned auth profiles during cooldown and preserve search picker ranking. (#1432 ) Thanks @tobiasbischoff .
2026-01-22 22:51:59 +00:00
- Docs: fix gog auth services example to include docs scope. (#1454 ) Thanks @zerone0x .
2026-01-23 06:28:01 +00:00
- Slack: reduce WebClient retries to avoid duplicate sends. (#1481 )
2026-01-23 01:17:45 -03:00
- Slack: read thread replies for message reads when threadId is provided (replies-only). (#1450 ) Thanks @rodrigouroz .
2026-01-23 08:45:25 +00:00
- Discord: honor accountId across message actions and cron deliveries. (#1492 ) Thanks @svkozak .
2026-01-22 08:08:33 +00:00
- macOS: prefer linked channels in gateway summary to avoid false “not linked” status.
2026-01-23 05:59:29 +00:00
- macOS/tests: fix gateway summary lookup after guard unwrap; prevent browser opens during tests. (ECID-1483)
2026-01-22 21:33:19 +00:00
2026-01-22 11:42:42 +00:00
## 2026.1.21-2
### Fixes
- Control UI: ignore bootstrap identity placeholder text for avatar values and fall back to the default avatar. https://docs.clawd.bot/cli/agents https://docs.clawd.bot/web/control-ui
2026-01-22 08:39:54 -05:00
- Slack: remove deprecated `filetype` field from `files.uploadV2` to eliminate API warnings. (#1447 )
2026-01-22 11:42:42 +00:00
2026-01-21 07:48:00 +00:00
## 2026.1.21
2026-01-21 11:06:14 +00:00
### Changes
2026-01-23 07:12:08 +00:00
- Highlight: Lobster optional plugin tool for typed workflows + approval gates. https://docs.clawd.bot/tools/lobster
- Lobster: allow workflow file args via `argsJson` in the plugin tool. https://docs.clawd.bot/tools/lobster
2026-01-22 10:04:56 +01:00
- Heartbeat: allow running heartbeats in an explicit session key. (#1256 ) Thanks @zknicker .
- CLI: default exec approvals to the local host, add gateway/node targeting flags, and show target details in allowlist output.
- CLI: exec approvals mutations render tables instead of raw JSON.
- Exec approvals: support wildcard agent allowlists (`*` ) across all agents.
- Exec approvals: allowlist matches resolved binary paths only, add safe stdin-only bins, and tighten allowlist shell parsing.
- Nodes: expose node PATH in status/describe and bootstrap PATH for node-host execution.
- CLI: flatten node service commands under `clawdbot node` and remove `service node` docs.
- CLI: move gateway service commands under `clawdbot gateway` and add `gateway probe` for reachability.
- Sessions: add per-channel reset overrides via `session.resetByChannel` . (#1353 ) Thanks @cash -echo-bot.
2026-01-23 07:51:40 +00:00
- Agents: add identity avatar config support and Control UI avatar rendering. (#1329 , #1424 ) Thanks @dlauer .
- UI: show per-session assistant identity in the Control UI. (#1420 ) Thanks @robbyczgw -cla.
- CLI: add `clawdbot update wizard` for interactive channel selection and restart prompts. https://docs.clawd.bot/cli/update
- Signal: add typing indicators and DM read receipts via signal-cli.
- MSTeams: add file uploads, adaptive cards, and attachment handling improvements. (#1410 ) Thanks @Evizero .
- Onboarding: remove the run setup-token auth option (paste setup-token or reuse CLI creds instead).
- Docs: add troubleshooting entry for gateway.mode blocking gateway start. https://docs.clawd.bot/gateway/troubleshooting
- Docs: add /model allowlist troubleshooting note. (#1405 )
- Docs: add per-message Gmail search example for gog. (#1220 ) Thanks @mbelinky .
2026-01-21 11:06:14 +00:00
2026-01-21 23:58:30 +00:00
### Breaking
- **BREAKING:** Control UI now rejects insecure HTTP without device identity by default. Use HTTPS (Tailscale Serve) or set `gateway.controlUi.allowInsecureAuth: true` to allow token-only auth. https://docs.clawd.bot/web/control-ui#insecure -http
2026-01-23 07:51:40 +00:00
- **BREAKING:** Envelope and system event timestamps now default to host-local time (was UTC) so agents don’ t have to constantly convert.
2026-01-21 23:58:30 +00:00
2026-01-21 07:48:00 +00:00
### Fixes
2026-01-22 00:43:21 +00:00
- Nodes/macOS: prompt on allowlist miss for node exec approvals, persist allowlist decisions, and flatten node invoke errors. (#1394 ) Thanks @ngutman .
2026-01-22 10:04:56 +01:00
- Gateway: keep auto bind loopback-first and add explicit tailnet binding to avoid Tailscale taking over local UI. (#1380 )
2026-01-23 07:51:40 +00:00
- Memory: prevent CLI hangs by deferring vector probes, adding sqlite-vec/embedding timeouts, and showing sync progress early.
2026-01-22 10:04:56 +01:00
- Agents: enforce 9-char alphanumeric tool call ids for Mistral providers. (#1372 ) Thanks @zerone0x .
2026-01-21 18:17:10 +00:00
- Embedded runner: persist injected history images so attachments aren’ t reloaded each turn. (#1374 ) Thanks @Nicell .
2026-01-22 10:04:56 +01:00
- Nodes tool: include agent/node/gateway context in tool failure logs to speed approval debugging.
- macOS: exec approvals now respect wildcard agent allowlists (`*` ).
- macOS: allow SSH agent auth when no identity file is set. (#1384 ) Thanks @ameno -.
- Gateway: prevent multiple gateways from sharing the same config/state at once (singleton lock).
- UI: remove the chat stop button and keep the composer aligned to the bottom edge.
- Typing: start instant typing indicators at run start so DMs and mentions show immediately.
- Configure: restrict the model allowlist picker to OAuth-compatible Anthropic models and preselect Opus 4.5.
- Configure: seed model fallbacks from the allowlist selection when multiple models are chosen.
- Model picker: list the full catalog when no model allowlist is configured.
- Discord: honor wildcard channel configs via shared match helpers. (#1334 ) Thanks @pvoo .
- BlueBubbles: resolve short message IDs safely and expose full IDs in templates. (#1387 ) Thanks @tyler6204 .
- Infra: preserve fetch helper methods when wrapping abort signals. (#1387 )
- macOS: default distribution packaging to universal binaries. (#1396 ) Thanks @JustYannicc .
2026-01-21 07:48:00 +00:00
2026-01-21 07:28:11 +00:00
## 2026.1.20
2026-01-21 07:36:32 +00:00
### Changes
2026-01-21 08:42:19 +00:00
- Control UI: add copy-as-markdown with error feedback. (#1345 ) https://docs.clawd.bot/web/control-ui
- Control UI: drop the legacy list view. (#1345 ) https://docs.clawd.bot/web/control-ui
- TUI: add syntax highlighting for code blocks. (#1200 ) https://docs.clawd.bot/tui
- TUI: session picker shows derived titles, fuzzy search, relative times, and last message preview. (#1271 ) https://docs.clawd.bot/tui
- TUI: add a searchable model picker for quicker model selection. (#1198 ) https://docs.clawd.bot/tui
- TUI: add input history (up/down) for submitted messages. (#1348 ) https://docs.clawd.bot/tui
- ACP: add `clawdbot acp` for IDE integrations. https://docs.clawd.bot/cli/acp
- ACP: add `clawdbot acp client` interactive harness for debugging. https://docs.clawd.bot/cli/acp
- Skills: add download installs with OS-filtered options. https://docs.clawd.bot/tools/skills
- Skills: add the local sherpa-onnx-tts skill. https://docs.clawd.bot/tools/skills
- Memory: add hybrid BM25 + vector search (FTS5) with weighted merging and fallback. https://docs.clawd.bot/concepts/memory
- Memory: add SQLite embedding cache to speed up reindexing and frequent updates. https://docs.clawd.bot/concepts/memory
- Memory: add OpenAI batch indexing for embeddings when configured. https://docs.clawd.bot/concepts/memory
- Memory: enable OpenAI batch indexing by default for OpenAI embeddings. https://docs.clawd.bot/concepts/memory
- Memory: allow parallel OpenAI batch indexing jobs (default concurrency: 2). https://docs.clawd.bot/concepts/memory
- 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
- Memory: add native Gemini embeddings provider for memory search. (#1151 ) https://docs.clawd.bot/concepts/memory
- Browser: allow config defaults for efficient snapshots in the tool/CLI. (#1336 ) https://docs.clawd.bot/tools/browser
- Nostr: add the Nostr channel plugin with profile management + onboarding defaults. (#1323 ) https://docs.clawd.bot/channels/nostr
- Matrix: migrate to matrix-bot-sdk with E2EE support, location handling, and group allowlist upgrades. (#1298 ) https://docs.clawd.bot/channels/matrix
- Slack: add HTTP webhook mode via Bolt HTTP receiver. (#1143 ) https://docs.clawd.bot/channels/slack
- Telegram: enrich forwarded-message context with normalized origin details + legacy fallback. (#1090 ) https://docs.clawd.bot/channels/telegram
- Discord: fall back to `/skill` when native command limits are exceeded. (#1287 )
- Discord: expose `/skill` globally. (#1287 )
- Zalouser: add channel dock metadata, config schema, setup wiring, probe, and status issues. (#1219 ) https://docs.clawd.bot/plugins/zalouser
- Plugins: require manifest-embedded config schemas with preflight validation warnings. (#1272 ) https://docs.clawd.bot/plugins/manifest
- Plugins: move channel catalog metadata into plugin manifests. (#1290 ) https://docs.clawd.bot/plugins/manifest
- Plugins: align Nextcloud Talk policy helpers with core patterns. (#1290 ) https://docs.clawd.bot/plugins/manifest
- Plugins/UI: let channel plugin metadata drive UI labels/icons and cron channel options. (#1306 ) https://docs.clawd.bot/web/control-ui
2026-01-22 03:54:31 +00:00
- Agents/UI: add agent avatar support in identity config, IDENTITY.md, and the Control UI. (#1329 ) https://docs.clawd.bot/gateway/configuration
2026-01-21 08:42:19 +00:00
- Plugins: add plugin slots with a dedicated memory slot selector. https://docs.clawd.bot/plugins/agent-tools
- Plugins: ship the bundled BlueBubbles channel plugin (disabled by default). https://docs.clawd.bot/channels/bluebubbles
- Plugins: migrate bundled messaging extensions to the plugin SDK and resolve plugin-sdk imports in the loader.
- Plugins: migrate the Zalo plugin to the shared plugin SDK runtime. https://docs.clawd.bot/channels/zalo
- Plugins: migrate the Zalo Personal plugin to the shared plugin SDK runtime. https://docs.clawd.bot/plugins/zalouser
- Plugins: allow optional agent tools with explicit allowlists and add the plugin tool authoring guide. https://docs.clawd.bot/plugins/agent-tools
- Plugins: auto-enable bundled channel/provider plugins when configuration is present.
- Plugins: sync plugin sources on channel switches and update npm-installed plugins during `clawdbot update` .
- Plugins: share npm plugin update logic between `clawdbot update` and `clawdbot plugins update` .
2026-01-22 03:54:31 +00:00
2026-01-21 08:42:19 +00:00
- Gateway/API: add `/v1/responses` (OpenResponses) with item-based input + semantic streaming events. (#1229 )
- Gateway/API: expand `/v1/responses` to support file/image inputs, tool_choice, usage, and output limits. (#1229 )
- Usage: add `/usage cost` summaries and macOS menu cost charts. https://docs.clawd.bot/reference/api-usage-costs
- Security: warn when < =300B models run without sandboxing while web tools are enabled. https://docs.clawd.bot/cli/security
- Exec: add host/security/ask routing for gateway + node exec. https://docs.clawd.bot/tools/exec
- Exec: add `/exec` directive for per-session exec defaults (host/security/ask/node). https://docs.clawd.bot/tools/exec
- Exec approvals: migrate approvals to `~/.clawdbot/exec-approvals.json` with per-agent allowlists + skill auto-allow toggle, and add approvals UI + node exec lifecycle events. https://docs.clawd.bot/tools/exec-approvals
- Nodes: add headless node host (`clawdbot node start` ) for `system.run` /`system.which` . https://docs.clawd.bot/cli/node
- Nodes: add node daemon service install/status/start/stop/restart. https://docs.clawd.bot/cli/node
- Bridge: add `skills.bins` RPC to support node host auto-allow skill bins.
- Sessions: add daily reset policy with per-type overrides and idle windows (default 4am local), preserving legacy idle-only configs. (#1146 ) https://docs.clawd.bot/concepts/session
- Sessions: allow `sessions_spawn` to override thinking level for sub-agent runs. https://docs.clawd.bot/tools/subagents
- Channels: unify thread/topic allowlist matching + command/mention gating helpers across core providers. https://docs.clawd.bot/concepts/groups
- Models: add Qwen Portal OAuth provider support. (#1120 ) https://docs.clawd.bot/providers/qwen
- Onboarding: add allowlist prompts and username-to-id resolution across core and extension channels. https://docs.clawd.bot/start/onboarding
- Docs: clarify allowlist input types and onboarding behavior for messaging channels. https://docs.clawd.bot/start/onboarding
- Docs: refresh Android node discovery docs for the Gateway WS service type. https://docs.clawd.bot/platforms/android
- Docs: surface Amazon Bedrock in provider lists and clarify Bedrock auth env vars. (#1289 ) https://docs.clawd.bot/bedrock
- Docs: clarify WhatsApp voice notes. https://docs.clawd.bot/channels/whatsapp
- Docs: clarify Windows WSL portproxy LAN access notes. https://docs.clawd.bot/platforms/windows
- Docs: refresh bird skill install metadata and usage notes. (#1302 ) https://docs.clawd.bot/tools/browser-login
- 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.
2026-01-21 07:36:32 +00:00
- Android: migrate node transport to the Gateway WebSocket protocol with TLS pinning support + gateway discovery naming.
2026-01-21 08:42:19 +00:00
- 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.
2026-01-19 11:14:27 +00:00
- Android: bump okhttp + dnsjava to satisfy lint dependency checks.
2026-01-21 08:42:19 +00:00
- 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.
2026-01-19 00:04:58 +00:00
2026-01-19 03:38:51 +00:00
### Breaking
2026-01-21 08:42:19 +00:00
- **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.
- Diagnostics: export OTLP logs, correct queue depth tracking, and document message-flow telemetry.
- Diagnostics: emit message-flow diagnostics across channels via shared dispatch. (#1244 )
- Diagnostics: gate heartbeat/webhook logging. (#1244 )
- Gateway: strip inbound envelope headers from chat history messages to keep clients clean.
- Gateway: clarify unauthorized handshake responses with token/password mismatch guidance.
- Gateway: allow mobile node client ids for iOS + Android handshake validation. (#1354 )
- Gateway: clarify connect/validation errors for gateway params. (#1347 )
- Gateway: preserve restart wake routing + thread replies across restarts. (#1337 )
- Gateway: reschedule per-agent heartbeats on config hot reload without restarting the runner.
- Gateway: require authorized restarts for SIGUSR1 (restart/apply/update) so config gating can't be bypassed.
- Cron: auto-deliver isolated agent output to explicit targets without tool calls. (#1285 )
- Agents: preserve subagent announce thread/topic routing + queued replies across channels. (#1241 )
2026-01-19 00:45:03 +00:00
- Agents: propagate accountId into embedded runs so sub-agent announce routing honors the originating account. (#1058 )
2026-01-21 08:42:19 +00:00
- 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 )
2026-01-19 01:44:08 +00:00
- Compaction: include tool failure summaries in safeguard compaction to prevent retry loops. (#1084 )
2026-01-21 08:42:19 +00:00
- 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.
2026-01-19 05:17:06 +00:00
- Doctor: canonicalize legacy session keys in session stores to prevent stale metadata. (#1169 )
2026-01-18 22:38:15 +00:00
- Docs: make docs:list fail fast with a clear error if the docs directory is missing.
2026-01-21 08:42:19 +00:00
- 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 )
2026-01-19 00:15:08 +00:00
- TUI: highlight model search matches and stabilize search ordering.
2026-01-21 08:42:19 +00:00
- 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.
2026-01-18 16:09:55 +00:00
- Memory: index atomically so failed reindex preserves the previous memory database. (#1151 )
- Memory: avoid sqlite-vec unique constraint failures when reindexing duplicate chunk ids. (#1151 )
2026-01-21 08:42:19 +00:00
- Memory: retry transient 5xx errors (Cloudflare) during embedding indexing.
- Memory: parallelize embedding indexing with rate-limit retries.
- Memory: split overly long lines to keep embeddings under token limits.
- Memory: skip empty chunks to avoid invalid embedding inputs.
- Memory: split embedding batches to avoid OpenAI token limits during indexing.
- Memory: probe sqlite-vec availability in `clawdbot memory status` .
- Exec approvals: enforce allowlist when ask is off.
- Exec approvals: prefer raw command for node approvals/events.
- Tools: show exec elevated flag before the command and keep it outside markdown in tool summaries.
2026-01-18 04:27:33 +00:00
- Tools: return a companion-app-required message when node exec is requested with no paired node.
2026-01-18 16:36:13 +00:00
- Tools: return a companion-app-required message when `system.run` is requested without a supporting node.
2026-01-21 08:42:19 +00:00
- Exec: default gateway/node exec security to allowlist when unset (sandbox stays deny).
- Exec: prefer bash when fish is default shell, falling back to sh if bash is missing. (#1297 )
- Exec: merge login-shell PATH for host=gateway exec while keeping daemon PATH minimal. (#1304 )
- Streaming: emit assistant deltas for OpenAI-compatible SSE chunks. (#1147 )
- Discord: make resolve warnings avoid raw JSON payloads on rate limits.
- Discord: process message handlers in parallel across sessions to avoid event queue blocking. (#1295 )
- Discord: stop reconnecting the gateway after aborts to prevent duplicate listeners.
2026-01-18 16:36:13 +00:00
- Discord: only emit slow listener warnings after 30s.
2026-01-21 08:42:19 +00:00
- Discord: inherit parent channel allowlists for thread slash commands and reactions. (#1123 )
- Telegram: honor pairing allowlists for native slash commands.
- Telegram: preserve hidden text_link URLs by expanding entities in inbound text. (#1118 )
- Slack: resolve Bolt import interop for Bun + Node. (#1191 )
- Web search: infer Perplexity base URL from API key source (direct vs OpenRouter).
- Web fetch: harden SSRF protection with shared hostname checks and redirect limits. (#1346 )
- Browser: register AI snapshot refs for act commands. (#1282 )
2026-01-18 04:25:17 +00:00
- Voice call: include request query in Twilio webhook verification when publicUrl is set. (#864 )
2026-01-21 08:42:19 +00:00
- Anthropic: default API prompt caching to 1h with configurable TTL override.
- Anthropic: ignore TTL for OAuth.
- Auth profiles: keep auto-pinned preference while allowing rotation on failover. (#1138 )
- Auth profiles: user pins stay locked. (#1138 )
- Model catalog: avoid caching import failures, log transient discovery errors, and keep partial results. (#1332 )
- Tests: stabilize Windows gateway/CLI tests by skipping sidecars, normalizing argv, and extending timeouts.
- Tests: stabilize plugin SDK resolution and embedded agent timeouts.
- Windows: install gateway scheduled task as the current user.
- Windows: show friendly guidance instead of failing on access denied.
- macOS: load menu session previews asynchronously so items populate while the menu is open.
- macOS: use label colors for session preview text so previews render in menu subviews.
- macOS: suppress usage error text in the menubar cost view.
- macOS: Doctor repairs LaunchAgent bootstrap issues for Gateway + Node when listed but not loaded. (#1166 )
- macOS: avoid touching launchd in Remote over SSH so quitting the app no longer disables the remote gateway. (#1105 )
2026-01-18 16:09:55 +00:00
- macOS: bundle Textual resources in packaged app builds to avoid code block crashes. (#1006 )
2026-01-21 08:42:19 +00:00
- Daemon: include HOME in service environments to avoid missing HOME errors. (#1214 )
2026-01-21 07:36:32 +00:00
2026-01-21 08:42:19 +00:00
Thanks @AlexMikhalev , @CoreyH , @John -Rood, @KrauseFx , @MaudeBot , @Nachx639 , @NicholaiVogel , @RyanLisse , @ThePickle31 , @VACInc , @Whoaa512 , @YuriNachos , @aaronveklabs , @abdaraxus , @alauppe , @ameno -, @artuskg , @austinm911 , @bradleypriest , @cheeeee , @dougvk , @fogboots , @gnarco , @gumadeiras , @jdrhyne , @joelklabo , @longmaba , @mukhtharcm , @odysseus0 , @oscargavin , @rhjoh , @sebslight , @sibbl , @sleontenko , @steipete , @suminhthanh , @thewilloftheshadow , @tyler6204 , @vignesh07 , @visionik , @ysqander , @zerone0x .
2026-01-17 18:07:06 +00:00
2026-01-17 12:30:11 +00:00
## 2026.1.16-2
### Changes
- CLI: stamp build commit into dist metadata so banners show the commit in npm installs.
2026-01-18 00:11:45 +00:00
- CLI: close memory manager after memory commands to avoid hanging processes. (#1127 ) — thanks @NicholasSpisak .
2026-01-17 12:30:11 +00:00
2026-01-17 11:12:43 +00:00
## 2026.1.16-1
2026-01-15 16:47:19 +00:00
2026-01-17 00:02:54 +00:00
### Highlights
2026-01-17 08:50:02 +00:00
- Hooks: add hooks system with bundled hooks, CLI tooling, and docs. (#1028 ) — thanks @ThomsenDrake . https://docs.clawd.bot/hooks
- Media: add inbound media understanding (image/audio/video) with provider + CLI fallbacks. https://docs.clawd.bot/nodes/media-understanding
- Plugins: add Zalo Personal plugin (`@clawdbot/zalouser` ) and unify channel directory for plugins. (#1032 ) — thanks @suminhthanh . https://docs.clawd.bot/plugins/zalouser
- Models: add Vercel AI Gateway auth choice + onboarding updates. (#1016 ) — thanks @timolins . https://docs.clawd.bot/providers/vercel-ai-gateway
2026-01-17 12:30:11 +00:00
- Sessions: add `session.identityLinks` for cross-platform DM session li nking. (#1033 ) — thanks @thewilloftheshadow . https://docs.clawd.bot/concepts/session
2026-01-17 08:50:02 +00:00
- Web search: add `country` /`language` parameters (schema + Brave API) and docs. (#1046 ) — thanks @YuriNachos . https://docs.clawd.bot/tools/web
2026-01-17 00:02:54 +00:00
### Breaking
2026-01-17 04:15:39 +00:00
- **BREAKING:** `clawdbot message` and message tool now require `target` (dropping `to` /`channelId` for destinations). (#1034 ) — thanks @tobalsan .
2026-01-17 08:50:02 +00:00
- **BREAKING:** Channel auth now prefers config over env for Discord/Telegram/Matrix (env is fallback only). (#1040 ) — thanks @thewilloftheshadow .
2026-01-17 05:40:28 +00:00
- **BREAKING:** Drop legacy `chatType: "room"` support; use `chatType: "channel"` .
2026-01-17 06:03:19 +00:00
- **BREAKING:** remove legacy provider-specific target resolution fallbacks; target resolution is centralized with plugin hints + directory lookups.
2026-01-17 08:50:02 +00:00
- **BREAKING:** `clawdbot hooks` is now `clawdbot webhooks` ; hooks live under `clawdbot hooks` . https://docs.clawd.bot/cli/webhooks
2026-01-17 07:08:04 +00:00
- **BREAKING:** `clawdbot plugins install <path>` now copies into `~/.clawdbot/extensions` (use `--link` to keep path-based loading).
2026-01-17 00:02:54 +00:00
### Changes
2026-01-17 10:16:32 +00:00
- Plugins: ship bundled plugins disabled by default and allow overrides by installed versions. (#1066 ) — thanks @ItzR3NO .
- Plugins: add bundled Antigravity + Gemini CLI OAuth + Copilot Proxy provider plugins. (#1066 ) — thanks @ItzR3NO .
2026-01-17 00:02:54 +00:00
- Tools: improve `web_fetch` extraction using Readability (with fallback).
- Tools: add Firecrawl fallback for `web_fetch` when configured.
- Tools: send Chrome-like headers by default for `web_fetch` to improve extraction on bot-sensitive sites.
- Tools: Firecrawl fallback now uses bot-circumvention + cache by default; remove basic HTML fallback when extraction fails.
2026-01-17 05:43:27 +00:00
- Tools: default `exec` exit notifications and auto-migrate legacy `tools.bash` to `tools.exec` .
2026-01-17 08:50:02 +00:00
- Tools: add `exec` PTY support for interactive sessions. https://docs.clawd.bot/tools/exec
2026-01-17 06:12:25 +00:00
- Tools: add tmux-style `process send-keys` and bracketed paste helpers for PTY sessions.
2026-01-17 06:38:47 +00:00
- Tools: add `process submit` helper to send CR for PTY sessions.
2026-01-17 07:05:15 +00:00
- Tools: respond to PTY cursor position queries to unblock interactive TUIs.
2026-01-17 08:50:02 +00:00
- Tools: include tool outputs in verbose mode and expand verbose tool feedback.
2026-01-17 10:59:06 +00:00
- Skills: update coding-agent guidance to prefer PTY-enabled exec runs and simplify tmux usage.
2026-01-17 08:22:32 +00:00
- TUI: refresh session token counts after runs complete or fail. (#1079 ) — thanks @d -ploutarchos.
2026-01-17 04:54:16 +00:00
- Status: trim `/status` to current-provider usage only and drop the OAuth/token block.
2026-01-17 00:02:54 +00:00
- Directory: unify `clawdbot directory` across channels and plugin channels.
- UI: allow deleting sessions from the Control UI.
2026-01-17 18:02:25 +00:00
- Memory: add sqlite-vec vector acceleration with CLI status details.
2026-01-17 19:42:23 +00:00
- Memory: add experimental session transcript indexing for memory_search (opt-in via memorySearch.experimental.sessionMemory + sources).
2026-01-17 00:02:54 +00:00
- Skills: add user-invocable skill commands and expanded skill command registration.
- Telegram: default reaction level to minimal and enable reaction notifications by default.
- Telegram: allow reply-chain messages to bypass mention gating in groups. (#1038 ) — thanks @adityashaw2 .
2026-01-17 08:50:02 +00:00
- iMessage: add remote attachment support for VM/SSH deployments.
2026-01-17 05:00:10 +00:00
- Messages: refresh live directory cache results when resolving targets.
2026-01-17 01:48:02 +00:00
- Messages: mirror delivered outbound text/media into session transcripts. (#1031 ) — thanks @TSavo .
2026-01-17 08:29:13 +00:00
- Messages: avoid redundant sender envelopes for iMessage + Signal group chats. (#1080 ) — thanks @tyler6204 .
2026-01-17 09:19:27 +00:00
- Media: normalize Deepgram audio upload bytes for fetch compatibility.
2026-01-17 00:02:54 +00:00
- Cron: isolated cron jobs now start a fresh session id on every run to prevent context buildup.
- Docs: add `/help` hub, Node/npm PATH guide, and expand directory CLI docs.
2026-01-17 00:29:08 +00:00
- Config: support env var substitution in config values. (#1044 ) — thanks @sebslight .
2026-01-17 01:14:17 +00:00
- Health: add per-agent session summaries and account-level health details, and allow selective probes. (#1047 ) — thanks @gumadeiras .
2026-01-17 07:08:04 +00:00
- Hooks: add hook pack installs (npm/path/zip/tar) with `clawdbot.hooks` manifests and `clawdbot hooks install/update` .
- Plugins: add zip installs and `--link` to avoid copying local paths.
2026-01-17 00:02:54 +00:00
### Fixes
2026-01-17 08:24:34 +00:00
- macOS: drain subprocess pipes before waiting to avoid deadlocks. (#1081 ) — thanks @thesash .
2026-01-17 10:17:57 +00:00
- Verbose: wrap tool summaries/output in markdown only for markdown-capable channels.
2026-01-17 17:55:04 +00:00
- Tools: include provider/session context in elevated exec denial errors.
2026-01-17 19:42:23 +00:00
- Tools: normalize exec tool alias naming in tool error logs.
- Logging: reuse shared ANSI stripping to keep console capture lint-clean.
- Logging: prefix nested agent output with session/run/channel context.
2026-01-17 07:49:57 +00:00
- Telegram: accept tg/group/telegram prefixes + topic targets for inline button validation. (#1072 ) — thanks @danielz1z .
2026-01-17 08:50:02 +00:00
- Telegram: split long captions into follow-up messages.
2026-01-17 10:25:24 +00:00
- Config: block startup on invalid config, preserve best-effort doctor config, and keep rolling config backups. (#1083 ) — thanks @mukhtharcm .
2026-01-17 03:57:59 +00:00
- Sub-agents: normalize announce delivery origin + queue bucketing by accountId to keep multi-account routing stable. (#1061 , #1058 ) — thanks @adam91holt .
2026-01-17 06:38:15 +00:00
- Sessions: include deliveryContext in sessions.list and reuse normalized delivery routing for announce/restart fallbacks. (#1058 )
2026-01-17 06:54:22 +00:00
- Sessions: propagate deliveryContext into last-route updates to keep account/channel routing stable. (#1058 )
2026-01-17 08:50:02 +00:00
- Sessions: preserve overrides on `/new` reset.
2026-01-17 08:03:53 +00:00
- Memory: prevent unhandled rejections when watch/interval sync fails. (#1076 ) — thanks @roshanasingh4 .
2026-01-17 09:45:45 +00:00
- Memory: avoid gateway crash when embeddings return 429/insufficient_quota (disable tool + surface error). (#1004 )
2026-01-17 04:24:47 +00:00
- Gateway: honor explicit delivery targets without implicit accountId fallback; preserve lastAccountId for implicit routing.
2026-01-17 06:01:30 +00:00
- Gateway: avoid reusing last-to/accountId when the requested channel differs; sync deliveryContext with last route fields.
2026-01-17 08:50:02 +00:00
- Build: allow `@lydell/node-pty` builds on supported platforms.
2026-01-17 03:25:05 +00:00
- Repo: fix oxlint config filename and move ignore pattern into config. (#1064 ) — thanks @connorshea .
2026-01-17 00:02:54 +00:00
- Messages: `/stop` now hard-aborts queued followups and sub-agent runs; suppress zero-count stop notes.
2026-01-17 08:50:02 +00:00
- Messages: honor message tool channel when deduping sends.
2026-01-17 05:21:02 +00:00
- Messages: include sender labels for live group messages across channels, matching queued/history formatting. (#1059 )
2026-01-17 00:02:54 +00:00
- Sessions: reset `compactionCount` on `/new` and `/reset` , and preserve `sessions.json` file mode (0600).
- Sessions: repair orphaned user turns before embedded prompts.
2026-01-17 08:50:02 +00:00
- Sessions: hard-stop `sessions.delete` cleanup.
2026-01-17 00:02:54 +00:00
- Channels: treat replies to the bot as implicit mentions across supported channels.
2026-01-17 08:50:02 +00:00
- Channels: normalize object-format capabilities in channel capability parsing.
- Security: default-deny slash/control commands unless a channel computed `CommandAuthorized` (fixes accidental “open” behavior), and ensure WhatsApp + Zalo plugin channels gate inline `/…` tokens correctly. https://docs.clawd.bot/gateway/security
2026-01-17 08:27:59 +00:00
- Security: redact sensitive text in gateway WS logs.
2026-01-17 08:50:02 +00:00
- Tools: cap pending `exec` process output to avoid unbounded buffers.
2026-01-17 06:49:17 +00:00
- CLI: speed up `clawdbot sandbox-explain` by avoiding heavy plugin imports when normalizing channel ids.
2026-01-17 00:57:35 +00:00
- Browser: remote profile tab operations prefer persistent Playwright and avoid silent HTTP fallbacks. (#1057 ) — thanks @mukhtharcm .
2026-01-17 01:28:22 +00:00
- Browser: remote profile tab ops follow-up: shared Playwright loader, Playwright-based focus, and more coverage (incl. opt-in live Browserless test). (follow-up to #1057 ) — thanks @mukhtharcm .
2026-01-17 07:42:47 +00:00
- Browser: refresh extension relay tab metadata after navigation so `/json/list` stays current. (#1073 ) — thanks @roshanasingh4 .
2026-01-17 00:02:54 +00:00
- WhatsApp: scope self-chat response prefix; inject pending-only group history and clear after any processed message.
2026-01-17 08:50:02 +00:00
- WhatsApp: include `linked` field in `describeAccount` .
2026-01-17 00:02:54 +00:00
- Agents: drop unsigned Gemini tool calls and avoid JSON Schema `format` keyword collisions.
2026-01-17 09:33:53 +00:00
- Agents: hide the image tool when the primary model already supports images.
2026-01-17 00:08:51 +00:00
- Agents: avoid duplicate sends by replying with `NO_REPLY` after `message` tool sends.
2026-01-17 00:02:54 +00:00
- Auth: inherit/merge sub-agent auth profiles from the main agent.
- Gateway: resolve local auth for security probe and validate gateway token/password file modes. (#1011 , #1022 ) — thanks @ivanrvpereira , @kkarimi .
- Signal/iMessage: bound transport readiness waits to 30s with periodic logging. (#1014 ) — thanks @Szpadel .
2026-01-17 08:50:02 +00:00
- iMessage: avoid RPC restart loops.
- OpenAI image-gen: handle URL + `b64_json` responses and remove deprecated `response_format` (use URL downloads).
2026-01-17 00:02:54 +00:00
- CLI: auto-update global installs when installed via a package manager.
2026-01-17 01:14:17 +00:00
- Routing: migrate legacy `accountID` bindings to `accountId` and remove legacy fallback lookups. (#1047 ) — thanks @gumadeiras .
2026-01-17 00:02:54 +00:00
- Discord: truncate skill command descriptions to 100 chars for slash command limits. (#1018 ) — thanks @evalexpr .
- Security: bump `tar` to 7.5.3.
- Models: align ZAI thinking toggles.
2026-01-17 05:04:29 +00:00
- iMessage/Signal: include sender metadata for non-queued group messages. (#1059 )
2026-01-17 07:11:15 +00:00
- Discord: preserve whitespace when chunking long lines so message splits keep spacing intact.
2026-01-17 08:27:59 +00:00
- Skills: fix skills watcher ignored list typing (tsc).
2026-01-17 00:02:54 +00:00
## 2026.1.15
2026-01-16 09:46:12 +00:00
### Highlights
2026-01-16 09:51:27 +00:00
- Plugins: add provider auth registry + `clawdbot models auth login` for plugin-driven OAuth/API key flows.
- Browser: improve remote CDP/Browserless support (auth passthrough, `wss` upgrade, timeouts, clearer errors).
- Heartbeat: per-agent configuration + 24h duplicate suppression. (#980 ) — thanks @voidserf .
- Security: audit warns on weak model tiers; app nodes store auth tokens encrypted (Keychain/SecurePrefs).
### Breaking
2026-01-16 09:02:21 +00:00
- **BREAKING:** iOS minimum version is now 18.0 to support Textual markdown rendering in native chat. (#702 )
2026-01-16 02:58:08 +00:00
- **BREAKING:** Microsoft Teams is now a plugin; install `@clawdbot/msteams` via `clawdbot plugins install @clawdbot/msteams` .
2026-01-16 23:12:50 +00:00
- **BREAKING:** Channel auth now prefers config over env for Discord/Telegram/Matrix (env is fallback only). (#1040 ) — thanks @thewilloftheshadow .
2026-01-16 09:46:12 +00:00
### Changes
2026-01-16 14:15:14 -06:00
- UI/Apps: move channel/config settings to schema-driven forms and rename Connections → Channels. (#1040 ) — thanks @thewilloftheshadow .
2026-01-16 01:33:20 +00:00
- CLI: set process titles to `clawdbot-<command>` for clearer process listings.
2026-01-16 07:32:58 +00:00
- CLI/macOS: sync remote SSH target/identity to config and let `gateway status` auto-infer SSH targets (ssh-config aware).
2026-01-16 20:16:35 +00:00
- Telegram: scope inline buttons with allowlist default + callback gating in DMs/groups.
2026-01-16 20:51:39 +00:00
- Telegram: default reaction notifications to own.
2026-01-16 23:17:55 +00:00
- Tools: improve `web_fetch` extraction using Readability (with fallback).
2026-01-15 16:24:52 -08:00
- Heartbeat: tighten prompt guidance + suppress duplicate alerts for 24h. (#980 ) — thanks @voidserf .
2026-01-16 11:30:04 +01:00
- Repo: ignore local identity files to avoid accidental commits. (#1001 ) — thanks @gerardward2007 .
2026-01-15 10:57:00 +00:00
- Sessions/Security: add `session.dmScope` for multi-user DM isolation and audit warnings. (#948 ) — thanks @Alphonse -arianee.
2026-01-16 00:39:22 +00:00
- Plugins: add provider auth registry + `clawdbot models auth login` for plugin-driven OAuth/API key flows.
2026-01-16 01:29:25 +00:00
- Onboarding: switch channels setup to a single-select loop with per-channel actions and disabled hints in the picker.
2026-01-16 01:13:14 +00:00
- TUI: show provider/model labels for the active session and default model.
2026-01-16 00:46:07 +00:00
- Heartbeat: add per-agent heartbeat configuration and multi-agent docs example.
2026-01-16 09:01:45 +00:00
- UI: show gateway auth guidance + doc link on unauthorized Control UI connections.
2026-01-16 22:33:38 +00:00
- UI: add session deletion action in Control UI sessions list. (#1017 ) — thanks @Szpadel .
2026-01-16 09:33:59 +00:00
- Security: warn on weak model tiers (Haiku, below GPT-5, below Claude 4.5) in `clawdbot security audit` .
2026-01-16 09:51:27 +00:00
- Apps: store node auth tokens encrypted (Keychain/SecurePrefs).
2026-01-15 23:09:08 +00:00
- Daemon: share profile/state-dir resolution across service helpers and honor `CLAWDBOT_STATE_DIR` for Windows task scripts.
2026-01-15 22:09:45 +00:00
- Docs: clarify multi-gateway rescue bot guidance. (#969 ) — thanks @bjesuiter .
2026-01-15 22:26:31 +00:00
- Agents: add Current Date & Time system prompt section with configurable time format (auto/12/24).
- Tools: normalize Slack/Discord message timestamps with `timestampMs` /`timestampUtc` while keeping raw provider fields.
2026-01-16 07:31:26 +00:00
- macOS: add `system.which` for prompt-free remote skill discovery (with gateway fallback to `system.run` ).
2026-01-15 22:26:31 +00:00
- Docs: add Date & Time guide and update prompt/timezone configuration docs.
2026-01-15 15:07:19 -08:00
- Messages: debounce rapid inbound messages across channels with per-connector overrides. (#971 ) — thanks @juanpablodlc .
2026-01-16 03:15:07 +00:00
- Messages: allow media-only sends (CLI/tool) and show Telegram voice recording status for voice notes. (#957 ) — thanks @rdev .
2026-01-16 00:24:31 +00:00
- Auth/Status: keep auth profiles sticky per session (rotate on compaction/new), surface provider usage headers in `/status` and `clawdbot models status` , and update docs.
2026-01-16 05:40:35 +00:00
- CLI: add `--json` output for `clawdbot daemon` lifecycle/install commands.
2026-01-15 18:37:02 +00:00
- Memory: make `node-llama-cpp` an optional dependency (avoid Node 25 install failures) and improve local-embeddings fallback/errors.
2026-01-15 17:03:40 +00:00
- Browser: add `snapshot refs=aria` (Playwright aria-ref ids) for self-resolving refs across `snapshot` → `act` .
- Browser: `profile="chrome"` now defaults to host control and returns clearer “attach a tab” errors.
2026-01-16 03:24:53 +00:00
- Browser: prefer stable Chrome for auto-detect, with Brave/Edge fallbacks and updated docs. (#983 ) — thanks @cpojer .
2026-01-16 09:01:25 +00:00
- Browser: increase remote CDP reachability timeouts + add `remoteCdpTimeoutMs` /`remoteCdpHandshakeTimeoutMs` .
2026-01-16 08:31:51 +00:00
- Browser: preserve auth/query tokens for remote CDP endpoints and pass Basic auth for CDP HTTP/WS. (#895 ) — thanks @mukhtharcm .
2026-01-15 17:20:17 +00:00
- Telegram: add bidirectional reaction support with configurable notifications and agent guidance. (#964 ) — thanks @bohdanpodvirnyi .
2026-01-16 08:20:48 +00:00
- Telegram: allow custom commands in the bot menu (merged with native; conflicts ignored). (#860 ) — thanks @nachoiacovino .
2026-01-15 11:53:13 -06:00
- Discord: allow allowlisted guilds without channel lists to receive messages when `groupPolicy="allowlist"` . — thanks @thewilloftheshadow .
2026-01-16 06:50:27 +00:00
- Discord: allow emoji/sticker uploads + channel actions in config defaults. (#870 ) — thanks @JDIVE .
2026-01-16 09:46:12 +00:00
### Fixes
2026-01-17 00:00:15 +00:00
- Messages: make `/stop` clear queued followups and pending session lane work for a hard abort.
- Messages: make `/stop` abort active sub-agent runs spawned from the requester session and report how many were stopped.
- WhatsApp: report linked status consistently in channel status. (#1050 ) — thanks @YuriNachos .
- Sessions: keep per-session overrides when `/new` resets compaction counters. (#1050 ) — thanks @YuriNachos .
- Skills: allow OpenAI image-gen helper to handle URL or base64 responses. (#1050 ) — thanks @YuriNachos .
2026-01-17 00:34:44 +00:00
- WhatsApp: default response prefix only for self-chat, using identity name when set.
- Signal/iMessage: bound transport readiness waits to 30s with periodic logging. (#1014 ) — thanks @Szpadel .
- iMessage: treat missing `imsg rpc` support as fatal to avoid restart loops.
- Auth: merge main auth profiles into per-agent stores for sub-agents and document inheritance. (#1013 ) — thanks @marcmarg .
- Agents: avoid JSON Schema `format` collisions in tool params by renaming snapshot format fields. (#1013 ) — thanks @marcmarg .
- Fix: make `clawdbot update` auto-update global installs when installed via a package manager.
2026-01-16 09:46:12 +00:00
- Fix: list model picker entries as provider/model pairs for explicit selection. (#970 ) — thanks @mcinteerj .
- Fix: align OpenAI image-gen defaults with DALL-E 3 standard quality and document output formats. (#880 ) — thanks @mkbehr .
- Fix: persist `gateway.mode=local` after selecting Local run mode in `clawdbot configure` , even if no other sections are chosen.
- Daemon: fix profile-aware service label resolution (env-driven) and add coverage for launchd/systemd/schtasks. (#969 ) — thanks @bjesuiter .
- Agents: avoid false positives when logging unsupported Google tool schema keywords.
- Agents: skip Gemini history downgrades for google-antigravity to preserve tool calls. (#894 ) — thanks @mukhtharcm .
- Status: restore usage summary line for current provider when no OAuth profiles exist.
- Fix: guard model fallback against undefined provider/model values. (#954 ) — thanks @roshanasingh4 .
- Fix: refactor session store updates, add chat.inject, and harden subagent cleanup flow. (#944 ) — thanks @tyler6204 .
- Fix: clean up suspended CLI processes across backends. (#978 ) — thanks @Nachx639 .
- Fix: support MiniMax coding plan usage responses with `model_remains` /`current_interval_*` payloads.
2026-01-16 16:23:51 -08:00
- Fix: honor message tool channel for duplicate suppression (prefer `NO_REPLY` after `message` tool sends). (#1053 ) — thanks @sashcatanzarite .
2026-01-16 09:46:12 +00:00
- Fix: suppress WhatsApp pairing replies for historical catch-up DMs on initial link. (#904 )
- Browser: extension mode recovers when only one tab is attached (stale targetId fallback).
- Browser: fix `tab not found` for extension relay snapshots/actions when Playwright blocks `newCDPSession` (use the single available Page).
- Browser: upgrade `ws` → `wss` when remote CDP uses `https` (fixes Browserless handshake).
- Telegram: skip `message_thread_id=1` for General topic sends while keeping typing indicators. (#848 ) — thanks @azade -c.
2026-01-16 03:00:40 +00:00
- Fix: sanitize user-facing error text + strip `<final>` tags across reply pipelines. (#975 ) — thanks @ThomsenDrake .
2026-01-16 04:53:40 +00:00
- Fix: normalize pairing CLI aliases, allow extension channels, and harden Zalo webhook payload parsing. (#991 ) — thanks @longmaba .
2026-01-16 13:21:25 +05:30
- Fix: allow local Tailscale Serve hostnames without treating tailnet clients as direct. (#885 ) — thanks @oswalpalash .
2026-01-16 09:03:54 +00:00
- Fix: reset sessions after role-ordering conflicts to recover from consecutive user turns. (#998 )
2026-01-15 16:47:19 +00:00
2026-01-15 11:15:41 +00:00
## 2026.1.14-1
2026-01-15 01:25:11 +00:00
2026-01-15 07:50:00 +00:00
### Highlights
2026-01-15 08:59:16 +00:00
- Web search: `web_search` /`web_fetch` tools (Brave API) + first-time setup in onboarding/configure.
- Browser control: Chrome extension relay takeover mode + remote browser control via `clawdbot browser serve` .
- Plugins: channel plugins (gateway HTTP hooks) + Zalo plugin + onboarding install flow. (#854 ) — thanks @longmaba .
- Security: expanded `clawdbot security audit` (+ `--fix` ), detect-secrets CI scan, and a `SECURITY.md` reporting policy.
2026-01-15 07:50:00 +00:00
2026-01-15 01:25:11 +00:00
### Changes
2026-01-15 08:59:16 +00:00
- Docs: clarify per-agent auth stores, sandboxed skill binaries, and elevated semantics.
- Docs: add FAQ entries for missing provider auth after adding agents and Gemini thinking signature errors.
2026-01-15 23:06:58 +00:00
- Agents: add optional auth-profile copy prompt on `agents add` and improve auth error messaging.
2026-01-16 00:24:31 +00:00
- Security: expand `clawdbot security audit` checks (model hygiene, config includes, plugin allowlists, exposure matrix) and extend `--fix` to tighten more sensitive state paths.
- Security: add `SECURITY.md` reporting policy.
- Channels: add Matrix plugin (external) with docs + onboarding hooks.
2026-01-15 23:06:58 +00:00
- Plugins: add Zalo channel plugin with gateway HTTP hooks and onboarding install prompt. (#854 ) — thanks @longmaba .
- Onboarding: add a security checkpoint prompt (docs link + sandboxing hint); require `--accept-risk` for `--non-interactive` .
2026-01-15 08:59:16 +00:00
- Docs: expand gateway security hardening guidance and incident response checklist.
- Docs: document DM history limits for channel DMs. (#883 ) — thanks @pkrmf .
2026-01-15 23:06:58 +00:00
- Security: add detect-secrets CI scan and baseline guidance. (#227 ) — thanks @Hyaxia .
- Tools: add `web_search` /`web_fetch` (Brave API), auto-enable `web_fetch` for sandboxed sessions, and remove the `brave-search` skill.
- CLI/Docs: add a web tools configure section for storing Brave API keys and update onboarding tips.
- Browser: add Chrome extension relay takeover mode (toolbar button), plus `clawdbot browser extension install/path` and remote browser control via `clawdbot browser serve` + `browser.controlToken` .
2026-01-15 08:59:16 +00:00
2026-01-14 16:52:10 -08:00
### Fixes
2026-01-15 23:06:58 +00:00
- Sessions: refactor session store updates to lock + mutate per-entry, add chat.inject, and harden subagent cleanup flow. (#944 ) — thanks @tyler6204 .
2026-01-15 09:23:10 +00:00
- Browser: add tests for snapshot labels/efficient query params and labeled image responses.
- Google: downgrade unsigned thinking blocks before send to avoid missing signature errors.
- Doctor: avoid re-adding WhatsApp config when only legacy ack reactions are set. (#927 , fixes #900 ) — thanks @grp06 .
- Agents: scrub tuple `items` schemas for Gemini tool calls. (#926 , fixes #746 ) — thanks @grp06 .
2026-01-16 01:52:34 +00:00
- Agents: harden Antigravity Claude history/tool-call sanitization. (#968 ) — thanks @rdev .
2026-01-15 09:23:10 +00:00
- Agents: stabilize sub-agent announce status from runtime outcomes and normalize Result/Notes. (#835 ) — thanks @roshanasingh4 .
- Embedded runner: suppress raw API error payloads from replies. (#924 ) — thanks @grp06 .
- Auth: normalize Claude Code CLI profile mode to oauth and auto-migrate config. (#855 ) — thanks @sebslight .
2026-01-15 08:59:16 +00:00
- Daemon: clear persisted launchd disabled state before bootstrap (fixes `daemon install` after uninstall). (#849 ) — thanks @ndraiman .
2026-01-15 23:06:58 +00:00
- Logging: tolerate `EIO` from console writes to avoid gateway crashes. (#925 , fixes #878 ) — thanks @grp06 .
- Sandbox: restore `docker.binds` config validation for custom bind mounts. (#873 ) — thanks @akonyer .
- Sandbox: preserve configured PATH for `docker exec` so custom tools remain available. (#873 ) — thanks @akonyer .
- Slack: respect `channels.slack.requireMention` default when resolving channel mention gating. (#850 ) — thanks @evalexpr .
- Telegram: aggregate split inbound messages into one prompt (reduces “one reply per fragment”).
- Auto-reply: treat trailing `NO_REPLY` tokens as silent replies.
- Config: prevent partial config writes from clobbering unrelated settings (base hash guard + merge patch for connection saves).
2026-01-15 08:59:16 +00:00
2026-01-15 23:06:58 +00:00
## 2026.1.14
2026-01-15 08:59:16 +00:00
2026-01-15 23:06:58 +00:00
### Changes
- Usage: add MiniMax coding plan usage tracking.
- Auth: label Claude Code CLI auth options. (#915 ) — thanks @SeanZoR .
- Docs: standardize Claude Code CLI naming across docs and prompts. (follow-up to #915 )
- Telegram: add message delete action in the message tool. (#903 ) — thanks @sleontenko .
- Config: add `channels.<provider>.configWrites` gating for channel-initiated config writes; migrate Slack channel IDs.
### Fixes
- Mac: pass auth token/password to dashboard URL for authenticated access. (#918 ) — thanks @rahthakor .
- UI: use application-defined WebSocket close code (browser compatibility). (#918 ) — thanks @rahthakor .
2026-01-15 08:59:16 +00:00
- TUI: render picker overlays via the overlay stack so /models and /settings display. (#921 ) — thanks @grizzdank .
- TUI: add a bright spinner + elapsed time in the status line for send/stream/run states.
2026-01-15 14:04:54 +00:00
- TUI: show LLM error messages (rate limits, auth, etc.) instead of `(no output)` .
2026-01-15 23:06:58 +00:00
- Gateway/Dev: ensure `pnpm gateway:dev` always uses the dev profile config + state (`~/.clawdbot-dev` ).
2026-01-15 14:04:54 +00:00
#### Agents / Auth / Tools / Sandbox
- Agents: make user time zone and 24-hour time explicit in the system prompt. (#859 ) — thanks @CashWilliams .
- Agents: strip downgraded tool call text without eating adjacent replies and filter thinking-tag leaks. (#905 ) — thanks @erikpr1994 .
- Agents: cap tool call IDs for OpenAI/OpenRouter to avoid request rejections. (#875 ) — thanks @j1philli .
- Agents: scrub tuple `items` schemas for Gemini tool calls. (#926 , fixes #746 ) — thanks @grp06 .
- Agents: stabilize sub-agent announce status from runtime outcomes and normalize Result/Notes. (#835 ) — thanks @roshanasingh4 .
- Auth: normalize Claude Code CLI profile mode to oauth and auto-migrate config. (#855 ) — thanks @sebslight .
- Embedded runner: suppress raw API error payloads from replies. (#924 ) — thanks @grp06 .
- Logging: tolerate `EIO` from console writes to avoid gateway crashes. (#925 , fixes #878 ) — thanks @grp06 .
- Sandbox: restore `docker.binds` config validation and preserve configured PATH for `docker exec` . (#873 ) — thanks @akonyer .
- Google: downgrade unsigned thinking blocks before send to avoid missing signature errors.
#### macOS / Apps
- macOS: ensure launchd log directory exists with a test-only override. (#909 ) — thanks @roshanasingh4 .
- macOS: format ConnectionsStore config to satisfy SwiftFormat lint. (#852 ) — thanks @mneves75 .
- macOS: pass auth token/password to dashboard URL for authenticated access. (#918 ) — thanks @rahthakor .
- macOS: reuse launchd gateway auth and skip wizard when gateway config already exists. (#917 )
2026-01-16 01:59:14 +00:00
- macOS: prefer the default bridge tunnel port in remote mode for node bridge connectivity; document macOS remote control + bridge tunnels. (#960 , fixes #865 ) — thanks @kkarimi .
2026-01-15 14:04:54 +00:00
- Apps: use canonical main session keys from gateway defaults across macOS/iOS/Android to avoid creating bare `main` sessions.
2026-01-15 08:01:15 +00:00
- macOS: fix cron preview/testing payload to use `channel` key. (#867 ) — thanks @wes -davis.
- Telegram: honor `channels.telegram.timeoutSeconds` for grammY API requests. (#863 ) — thanks @Snaver .
2026-01-15 23:06:58 +00:00
- Telegram: split long captions into media + follow-up text messages. (#907 ) - thanks @jalehman .
2026-01-15 08:01:15 +00:00
- Telegram: migrate group config when supergroups change chat IDs. (#906 ) — thanks @sleontenko .
- Messaging: unify markdown formatting + format-first chunking for Slack/Telegram/Signal. (#920 ) — thanks @TheSethRose .
2026-01-15 23:06:58 +00:00
- Slack: drop Socket Mode events with mismatched `api_app_id` /`team_id` . (#889 ) — thanks @roshanasingh4 .
- Discord: isolate autoThread thread context. (#856 ) — thanks @davidguttman .
2026-01-15 08:01:15 +00:00
- WhatsApp: fix context isolation using wrong ID (was bot's number, now conversation ID). (#911 ) — thanks @tristanmanchester .
- WhatsApp: normalize user JIDs with device suffix for allowlist checks in groups. (#838 ) — thanks @peschee .
2026-01-15 07:50:00 +00:00
2026-01-13 23:59:04 +00:00
## 2026.1.13
2026-01-13 23:12:27 +00:00
### Fixes
- Postinstall: treat already-applied pnpm patches as no-ops to avoid npm/bun install failures.
2026-01-13 23:59:04 +00:00
- Packaging: pin `@mariozechner/pi-ai` to 0.45.7 and refresh patched dependency to match npm resolution.
2026-01-13 23:12:27 +00:00
2026-01-13 09:36:15 +00:00
## 2026.1.12-2
### Fixes
- Packaging: include `dist/memory/**` in the npm tarball (fixes `ERR_MODULE_NOT_FOUND` for `dist/memory/index.js` ).
2026-01-13 10:10:15 +00:00
- Agents: persist sub-agent registry across gateway restarts and resume announce flow safely. (#831 ) — thanks @roshanasingh4 .
2026-01-13 12:29:45 +01:00
- Agents: strip invalid Gemini thought signatures from OpenRouter history to avoid 400s. (#841 , #845 ) — thanks @MatthieuBizien .
2026-01-13 09:36:15 +00:00
2026-01-13 09:33:02 +00:00
## 2026.1.12-1
### Fixes
- Packaging: include `dist/channels/**` in the npm tarball (fixes `ERR_MODULE_NOT_FOUND` for `dist/channels/registry.js` ).
2026-01-13 09:25:50 +00:00
## 2026.1.12
2026-01-12 11:18:31 +00:00
2026-01-12 16:53:53 +00:00
### Highlights
2026-01-13 06:16:43 +00:00
- **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.*` ).
2026-01-13 07:03:44 +00:00
- 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).
2026-01-13 09:25:50 +00:00
- Models: add Synthetic provider plus Moonshot Kimi K2 0905 + turbo/thinking variants (with docs). (#811 ) — thanks @siraht ; (#818 ) — thanks @mickahouan .
2026-01-13 07:03:44 +00:00
- Cron: one-shot schedules accept ISO timestamps (UTC) with optional delete-after-run; cron jobs can target a specific agent (CLI + macOS/Control UI).
2026-01-13 09:25:50 +00:00
- Agents: add compaction mode config with optional safeguard summarization and per-agent model fallbacks. (#700 ) — thanks @thewilloftheshadow ; (#583 ) — thanks @mitschabaude -bot.
2026-01-13 07:03:44 +00:00
### New & Improved
2026-01-13 09:25:50 +00:00
- Memory: add custom OpenAI-compatible embedding endpoints; support OpenAI/local `node-llama-cpp` embeddings with per-agent overrides and provider metadata in tools/CLI. (#819 ) — thanks @mukhtharcm .
2026-01-13 07:03:44 +00:00
- Memory: new `clawdbot memory` CLI plus `memory_search` /`memory_get` tools with snippets + line ranges; index stored under `~/.clawdbot/memory/{agentId}.sqlite` with watch-on-by-default.
- Agents: strengthen memory recall guidance; make workspace bootstrap truncation configurable (default 20k) with warnings; add default sub-agent model config.
2026-01-13 09:25:50 +00:00
- Tools/Sandbox: add tool profiles + group shorthands; support tool-policy groups in `tools.sandbox.tools` ; drop legacy `memory` shorthand; allow Docker bind mounts via `docker.binds` . (#790 ) — thanks @akonyer .
2026-01-13 09:59:21 +00:00
- Tools: add provider/model-specific tool policy overrides (`tools.byProvider` ) to trim tool exposure per provider.
2026-01-13 09:25:50 +00:00
- Tools: add browser `scrollintoview` action; allow Claude/Gemini tool param aliases; allow thinking `xhigh` for 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 dashboard` auto-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.png` inputs). (#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 .
2026-01-13 07:03:44 +00:00
- Heartbeat: default `ackMaxChars` to 300 so short `HEARTBEAT_OK` replies stay internal.
2026-01-12 11:18:31 +00:00
2026-01-13 07:25:25 +00:00
### Installer
- Install: run `clawdbot doctor --non-interactive` after git installs/updates and nudge daemon restarts when detected.
2026-01-12 11:18:31 +00:00
### Fixes
2026-01-13 07:25:25 +00:00
- Doctor: warn on pnpm workspace mismatches, missing Control UI assets, and missing tsx binaries; offer UI rebuilds.
2026-01-13 09:59:21 +00:00
- Tools: apply global tool allow/deny even when agent-specific tool policy is set.
2026-01-13 09:25:50 +00:00
- 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 .
2026-01-13 07:42:47 +00:00
- Auth: drop invalid auth profiles from ordering so environment keys can still be used for providers like MiniMax.
2026-01-13 09:25:50 +00:00
- Gemini: normalize Gemini 3 ids to preview variants; strip Gemini CLI tool call/response ids; downgrade missing `thought_signature` ; strip Claude `msg_*` thought_signature fields to avoid base64 decode errors. (#795 ) — thanks @thewilloftheshadow ; (#783 ) — thanks @ananth -vardhan-cn; (#793 ) — thanks @hsrvc ; (#805 ) — thanks @marcmarg .
2026-01-13 08:02:58 +00:00
- Agents: auto-recover from compaction context overflow by resetting the session and retrying; propagate overflow details from embedded runs so callers can recover.
2026-01-13 09:25:50 +00:00
- MiniMax: strip malformed tool invocation XML; include `MiniMax-VL-01` in implicit provider for image pairing. (#809 ) — thanks @latitudeki5223 .
2026-01-13 07:30:50 +00:00
- Onboarding/Auth: honor `CLAWDBOT_AGENT_DIR` / `PI_CODING_AGENT_DIR` when writing auth profiles (MiniMax). (#829 ) — thanks @roshanasingh4 .
2026-01-13 08:32:06 +00:00
- Anthropic: handle `overloaded_error` with a friendly message and failover classification. (#832 ) — thanks @danielz1z .
2026-01-13 09:25:50 +00:00
- 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: `/status` allowlist 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 .
2026-01-13 07:03:44 +00:00
- Auto-reply: resolve ambiguous `/model` matches; fix streaming block reply media handling; keep >300 char heartbeat replies instead of dropping.
2026-01-13 09:25:50 +00:00
- 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 `jobId` aliases for update/run/remove params. (#205 , #252 ) — thanks @thewilloftheshadow .
- Gateway/CLI: honor `CLAWDBOT_LAUNCHD_LABEL` / `CLAWDBOT_SYSTEMD_UNIT` overrides; `agents.list` respects explicit config; reduce noisy loopback WS logs during tests; run `clawdbot doctor --non-interactive` during 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: 0` as 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 .
2026-01-13 07:03:44 +00:00
### 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.
2026-01-12 09:46:34 +00:00
2026-01-12 01:16:39 +00:00
## 2026.1.11
2026-01-11 10:15:37 +00:00
2026-01-12 05:28:17 +00:00
### Highlights
- Plugins are now first-class: loader + CLI management, plus the new Voice Call plugin.
- Config: modular `$include` support for split config files. (#731 ) — thanks @pasogott .
- Agents/Pi: reserve compaction headroom so pre-compaction memory writes can run before auto-compaction.
- Agents: automatic pre-compaction memory flush turn to store durable memories before compaction.
2026-01-11 10:15:37 +00:00
### Changes
2026-01-12 05:49:02 +00:00
- CLI/Onboarding: simplify MiniMax auth choice to a single M2.1 option.
- CLI: configure section selection now loops until Continue.
2026-01-12 05:57:49 +00:00
- Docs: explain MiniMax vs MiniMax Lightning (speed vs cost) and restore LM Studio example.
- Docs: add Cerebras GLM 4.6/4.7 config example (OpenAI-compatible endpoint).
2026-01-12 05:08:11 +00:00
- Onboarding/CLI: group model/auth choice by provider and label Z.AI as GLM 4.7.
2026-01-12 06:47:52 +00:00
- Onboarding/Docs: add Moonshot AI (Kimi K2) auth choice + config example.
- CLI/Onboarding: prompt to reuse detected API keys for Moonshot/MiniMax/Z.AI/Gemini/Anthropic/OpenCode.
2026-01-12 06:02:39 +00:00
- Auto-reply: add compact `/model` picker (models + available providers) and show provider endpoints in `/model status` .
2026-01-12 07:09:46 +00:00
- Control UI: add Config tab model presets (MiniMax M2.1, GLM 4.7, Kimi) for one-click setup.
2026-01-12 01:16:39 +00:00
- Plugins: add extension loader (tools/RPC/CLI/services), discovery paths, and config schema + Control UI labels (uiHints).
- Plugins: add `clawdbot plugins install` (path/tgz/npm), plus `list|info|enable|disable|doctor` UX.
2026-01-11 23:23:23 +00:00
- Plugins: voice-call plugin now real (Twilio/log), adds start/status RPC/CLI/tool + tests.
2026-01-11 12:11:12 +00:00
- Docs: add plugins doc + cross-links from tools/skills/gateway config.
2026-01-12 01:27:11 +00:00
- Docs: add beginner-friendly plugin quick start + expand Voice Call plugin docs.
2026-01-12 01:16:39 +00:00
- Tests: add Docker plugin loader + tgz-install smoke test.
2026-01-12 01:27:11 +00:00
- Tests: extend Docker plugin E2E to cover installing from local folders (`plugins.load.paths` ) and `file:` npm specs.
2026-01-12 16:53:53 +00:00
- Tests: add coverage for pre-compaction memory flush settings.
2026-01-12 06:59:17 +00:00
- Tests: modernize live model smoke selection for current releases and enforce tools/images/thinking-high coverage. (#769 ) — thanks @steipete .
2026-01-12 03:42:49 +00:00
- Agents/Tools: add `apply_patch` tool for multi-file edits (experimental; gated by tools.exec.applyPatch; OpenAI-only).
2026-01-12 02:49:55 +00:00
- Agents/Tools: rename the bash tool to exec (config alias maintained). (#748 ) — thanks @myfunc .
2026-01-12 05:28:17 +00:00
- Agents: add pre-compaction memory flush config (`agents.defaults.compaction.*` ) with a soft threshold + system prompt.
2026-01-12 00:12:03 +00:00
- Config: add `$include` directive for modular config files. (#731 ) — thanks @pasogott .
2026-01-11 11:26:39 +00:00
- Build: set pnpm minimum release age to 2880 minutes (2 days). (#718 ) — thanks @dan -dr.
2026-01-11 10:31:15 +00:00
- macOS: prompt to install the global `clawdbot` CLI when missing in local mode; install via `clawd.bot/install-cli.sh` (no onboarding) and use external launchd/CLI instead of the embedded gateway runtime.
2026-01-11 10:39:40 +00:00
- Docs: add gog calendar event color IDs from `gog calendar colors` . (#715 ) — thanks @mjrussell .
2026-01-12 05:28:17 +00:00
- Cron/CLI: add `--model` flag to cron add/edit commands. (#711 ) — thanks @mjrussell .
2026-01-11 10:52:40 +00:00
- Cron/CLI: trim model overrides on cron edits and document main-session guidance. (#711 ) — thanks @mjrussell .
2026-01-11 11:32:30 +00:00
- Skills: bundle `skill-creator` to guide creating and packaging skills.
2026-01-12 05:28:17 +00:00
- Providers: add per-DM history limit overrides (`dmHistoryLimit` ) with provider-level config. (#728 ) — thanks @pkrmf .
- Discord: expose channel/category management actions in the message tool. (#730 ) — thanks @NicholasSpisak .
2026-01-11 23:37:44 +00:00
- Docs: rename README “macOS app” section to “Apps”. (#733 ) — thanks @AbhisekBasu1 .
2026-01-12 04:38:52 +00:00
- Gateway: require `client.id` in WebSocket connect params; use `client.instanceId` for presence de-dupe; update docs/tests.
- macOS: remove the attach-only gateway setting; local mode now always manages launchd while still attaching to an existing gateway if present.
2026-01-11 10:15:37 +00:00
2026-01-11 23:54:26 +00:00
### Installer
- Postinstall: replace `git apply` with builtin JS patcher (works npm/pnpm/bun; no git dependency) plus regression tests.
2026-01-12 05:28:17 +00:00
- Postinstall: skip pnpm patch fallback when the new patcher is active.
2026-01-11 23:54:26 +00:00
- Installer tests: add root+non-root docker smokes, CI workflow to fetch clawd.bot scripts and run install sh/cli with onboarding skipped.
- Installer UX: support `CLAWDBOT_NO_ONBOARD=1` for non-interactive installs; fix npm prefix on Linux and auto-install git.
2026-01-12 02:00:09 +00:00
- Installer UX: add `install.sh --help` with flags/env and git install hint.
2026-01-12 00:59:08 +00:00
- Installer UX: add `--install-method git|npm` and auto-detect source checkouts (prompt to update git checkout vs migrate to npm).
2026-01-11 23:54:26 +00:00
2026-01-11 10:48:46 +00:00
### Fixes
2026-01-12 05:09:59 +00:00
- Models/Onboarding: configure MiniMax (minimax.io) via Anthropic-compatible `/anthropic` endpoint by default (keep `minimax-api` as a legacy alias).
2026-01-12 07:02:49 +00:00
- Models: normalize Gemini 3 Pro/Flash IDs to preview names for live model lookups. (#769 ) — thanks @steipete .
- CLI: fix guardCancel typing for configure prompts. (#769 ) — thanks @steipete .
2026-01-12 05:28:17 +00:00
- Gateway/WebChat: include handshake validation details in the WebSocket close reason for easier debugging; preserve close codes.
2026-01-12 00:15:14 +00:00
- Gateway/Auth: send invalid connect responses before closing the handshake; stabilize invalid-connect auth test.
2026-01-12 05:28:17 +00:00
- Gateway: tighten gateway listener detection.
- Control UI: hide onboarding chat when configured and guard the mobile chat sidebar overlay.
- Auth: read Codex keychain credentials and make the lookup platform-aware.
- macOS/Release: avoid bundling dist artifacts in relay builds and generate appcasts from zip-only sources.
2026-01-11 12:11:12 +00:00
- Doctor: surface plugin diagnostics in the report.
2026-01-12 05:28:17 +00:00
- Plugins: treat `plugins.load.paths` directory entries as package roots when they contain `package.json` + `clawdbot.extensions` ; load plugin packages from config dirs; extract archives without system tar.
- Config: expand `~` in `CLAWDBOT_CONFIG_PATH` and common path-like config fields (including `plugins.load.paths` ); guard invalid `$include` paths. (#731 ) — thanks @pasogott .
2026-01-12 05:17:54 +00:00
- Agents: stop pre-creating session transcripts so first user messages persist in JSONL history.
2026-01-12 06:33:14 +00:00
- Agents: skip pre-compaction memory flush when the session workspace is read-only.
2026-01-12 07:39:44 +00:00
- Auto-reply: ignore inline `/status` directives unless the message is directive-only.
2026-01-12 02:51:17 +00:00
- Auto-reply: align `/think` default display with model reasoning defaults. (#751 ) — thanks @gabriel -trigo.
2026-01-12 02:54:57 +00:00
- Auto-reply: flush block reply buffers on tool boundaries. (#750 ) — thanks @sebslight .
2026-01-12 06:28:53 +00:00
- Auto-reply: allow sender fallback for command authorization when `SenderId` is empty (WhatsApp self-chat). (#755 ) — thanks @juanpablodlc .
2026-01-13 01:20:52 +00:00
- Auto-reply: treat whitespace-only sender ids as missing for command authorization (WhatsApp self-chat). (#766 ) — thanks @steipete .
2026-01-12 05:28:17 +00:00
- Heartbeat: refresh prompt text for updated defaults.
- Agents/Tools: use PowerShell on Windows to capture system utility output. (#748 ) — thanks @myfunc .
2026-01-12 00:38:05 +00:00
- Docker: tolerate unset optional env vars in docker-setup.sh under strict mode. (#725 ) — thanks @petradonka .
2026-01-11 10:48:46 +00:00
- CLI/Update: preserve base environment when passing overrides to update subprocesses. (#713 ) — thanks @danielz1z .
2026-01-11 11:04:29 +00:00
- Agents: treat message tool errors as failures so fallback replies still send; require `to` + `message` for `action=send` . (#717 ) — thanks @theglove44 .
2026-01-12 05:28:17 +00:00
- Agents: preserve reasoning items on tool-only turns.
- Agents/Subagents: wait for completion before announcing, align wait timeout with run timeout, and make announce prompts more emphatic.
2026-01-11 11:19:38 +00:00
- Agents: route subagent transcripts to the target agent sessions directory and add regression coverage. (#708 ) — thanks @xMikeMickelson .
- Agents/Tools: preserve action enums when flattening tool schemas. (#708 ) — thanks @xMikeMickelson .
2026-01-12 01:05:43 +00:00
- Gateway/Agents: canonicalize main session aliases for store writes and add regression coverage. (#709 ) — thanks @xMikeMickelson .
2026-01-12 00:28:02 +00:00
- Agents: reset sessions and retry when auto-compaction overflows instead of crashing the gateway.
2026-01-12 05:28:17 +00:00
- Providers/Telegram: normalize command mentions for consistent parsing. (#729 ) — thanks @obviyus .
- Providers: skip DM history limit handling for non-DM sessions. (#728 ) — thanks @pkrmf .
2026-01-12 01:23:37 +00:00
- Sandbox: fix non-main mode incorrectly sandboxing the main DM session and align `/status` runtime reporting with effective sandbox state.
2026-01-12 02:22:56 +00:00
- Sandbox/Gateway: treat `agent:<id>:main` as a main-session alias when `session.mainKey` is customized (backwards compatible).
2026-01-12 06:10:17 +00:00
- Auto-reply: fast-path allowlisted slash commands (inline `/help` /`/commands` /`/status` /`/whoami` stripped before model).
2026-01-11 10:48:46 +00:00
2026-01-11 04:41:38 +01:00
## 2026.1.10
2026-01-11 03:57:44 +01:00
2026-01-11 04:17:37 +01:00
### Highlights
2026-01-11 04:41:38 +01:00
- CLI: `clawdbot status` now table-based + shows OS/update/gateway/daemon/agents/sessions; `status --all` adds a full read-only debug report (tables, log tails, Tailscale summary, and scan progress via OSC-9 + spinner).
2026-01-11 01:40:09 +00:00
- CLI Backends: add Codex CLI fallback with resume support (text output) and JSONL parsing for new runs, plus a live CLI resume probe.
2026-01-11 04:41:38 +01:00
- CLI: add `clawdbot update` (safe-ish git checkout update) + `--update` shorthand. (#673 ) — thanks @fm1randa .
2026-01-11 11:45:25 +00:00
- Gateway: add OpenAI-compatible `/v1/chat/completions` HTTP endpoint (auth, SSE streaming, per-agent routing). (#680 ).
2026-01-11 04:17:37 +01:00
### Changes
2026-01-11 04:41:38 +01:00
- Onboarding/Models: add first-class Z.AI (GLM) auth choice (`zai-api-key` ) + `--zai-api-key` flag.
2026-01-11 03:42:27 +01:00
- CLI/Onboarding: add OpenRouter API key auth option in configure/onboard. (#703 ) — thanks @mteam88 .
2026-01-11 04:41:38 +01:00
- Agents: add human-delay pacing between block replies (modes: off/natural/custom, per-agent configurable). (#446 ) — thanks @tony -freedomology.
2026-01-11 04:17:37 +01:00
- Agents/Browser: add `browser.target` (sandbox/host/custom) with sandbox host-control gating via `agents.defaults.sandbox.browser.allowHostControl` , allowlists for custom control URLs/hosts/ports, and expand browser tool docs (remote control, profiles, internals).
2026-01-11 04:41:38 +01:00
- Onboarding/Models: add catalog-backed default model picker to onboarding + configure. (#611 ) — thanks @jonasjancarik .
- Agents/OpenCode Zen: update fallback models + defaults, keep legacy alias mappings. (#669 ) — thanks @magimetal .
2026-01-11 10:23:52 +00:00
- CLI: add `clawdbot reset` and `clawdbot uninstall` flows (interactive + non-interactive) plus docker cleanup smoke test.
2026-01-11 11:45:25 +00:00
- Providers: move provider wiring to a plugin architecture. (#661 ).
- Providers: unify group history context wrappers across providers with per-provider/per-account `historyLimit` overrides (fallback to `messages.groupChat.historyLimit` ). Set `0` to disable. (#672 ).
2026-01-11 04:41:38 +01:00
- Gateway/Heartbeat: optionally deliver heartbeat `Reasoning:` output (`agents.defaults.heartbeat.includeReasoning` ). (#690 )
- Docker: allow optional home volume + extra bind mounts in `docker-setup.sh` . (#679 ) — thanks @gabriel -trigo.
2026-01-11 01:40:09 +00:00
2026-01-11 02:42:14 +01:00
### Fixes
2026-01-11 10:46:20 +00:00
- Auto-reply: suppress draft/typing streaming for `NO_REPLY` (silent system ops) so it doesn’ t leak partial output.
2026-01-11 04:41:38 +01:00
- CLI/Status: expand tables to full terminal width; clarify provider setup vs runtime warnings; richer per-provider detail; token previews in `status` while keeping `status --all` redacted; add troubleshooting link footer; keep log tails pasteable; show gateway auth used when reachable; surface provider runtime errors (Signal/iMessage/Slack); harden `tailscale status --json` parsing; make `status --all` scan progress determinate; and replace the footer with a 3-line “Next steps” recommendation (share/debug/probe).
- CLI/Gateway: clarify that `clawdbot gateway status` reports RPC health (connect + RPC) and shows RPC failures separately from connect failures.
- CLI/Update: gate progress spinner on stdout TTY and align clean-check step label. (#701 ) — thanks @bjesuiter .
2026-01-11 04:17:37 +01:00
- Telegram: add `/whoami` + `/id` commands to reveal sender id for allowlists; allow `@username` and prefixed ids in `allowFrom` prompts (with stability warning).
2026-01-11 23:26:51 +00:00
- Heartbeat: strip markup-wrapped `HEARTBEAT_OK` so acks don’ t leak to external providers (e.g., Telegram).
2026-01-11 04:17:37 +01:00
- Control UI: stop auto-writing `telegram.groups["*"]` and warn/confirm before enabling wildcard groups.
- WhatsApp: send ack reactions only for handled messages and ignore legacy `messages.ackReaction` (doctor copies to `whatsapp.ackReaction` ). (#629 ) — thanks @pasogott .
2026-01-11 04:24:11 +01:00
- Sandbox/Skills: mirror skills into sandbox workspaces for read-only mounts so SKILL.md stays accessible.
2026-01-11 02:42:14 +01:00
- Terminal/Table: ANSI-safe wrapping to prevent table clipping/color loss; add regression coverage.
2026-01-11 03:27:48 +01:00
- Docker: allow optional apt packages during image build and document the build arg. (#697 ) — thanks @gabriel -trigo.
2026-01-11 04:17:37 +01:00
- Gateway/Heartbeat: deliver reasoning even when the main heartbeat reply is `HEARTBEAT_OK` . (#694 ) — thanks @antons .
2026-01-11 23:55:14 +00:00
- Agents/Pi: inject config `temperature` /`maxTokens` into streaming without replacing the session streamFn; cover with live maxTokens probe. (#732 ) — thanks @peschee .
2026-01-11 03:19:24 +01:00
- macOS: clear unsigned launchd overrides on signed restarts and warn via doctor when attach-only/disable markers are set. (#695 ) — thanks @jeffersonwarrior .
2026-01-11 01:40:09 +00:00
- Agents: enforce single-writer session locks and drop orphan tool results to prevent tool-call ID failures (MiniMax/Anthropic-compatible APIs).
2026-01-11 04:41:38 +01:00
- Docs: make `clawdbot status` the first diagnostic step, clarify `status --deep` behavior, and document `/whoami` + `/id` .
2026-01-11 01:40:09 +00:00
- Docs/Testing: clarify live tool+image probes and how to list your testable `provider/model` ids.
2026-01-11 04:46:30 +00:00
- Tests/Live: make gateway bash+read probes resilient to provider formatting while still validating real tool calls.
2026-01-11 04:08:33 +01:00
- WhatsApp: detect @lid mentions in groups using authDir reverse mapping + resolve self JID E.164 for mention gating. (#692 ) — thanks @peschee .
- Gateway/Auth: default to token auth on loopback during onboarding, add doctor token generation flow, and tighten audio transcription config to Whisper-only.
2026-01-11 00:12:17 +01:00
- Providers: dedupe inbound messages across providers to avoid duplicate LLM runs on redeliveries/reconnects. (#689 ) — thanks @adam91holt .
2026-01-10 23:23:23 +01:00
- Agents: strip `<thought>` /`<antthinking>` tags from hidden reasoning output and cover tag variants in tests. (#688 ) — thanks @theglove44 .
2026-01-10 23:39:39 +01:00
- macOS: save model picker selections as normalized provider/model IDs and keep manual entries aligned. (#683 ) — thanks @benithors .
2026-01-10 23:12:27 +01:00
- Agents: recognize "usage limit" errors as rate limits for failover. (#687 ) — thanks @evalexpr .
2026-01-10 22:52:09 +01:00
- CLI: avoid success message when daemon restart is skipped. (#685 ) — thanks @carlulsoe .
2026-01-11 00:42:04 +01:00
- Commands: disable `/config` + `/debug` by default; gate via `commands.config` /`commands.debug` and hide from native registration/help output.
2026-01-11 05:04:14 +01:00
- Agents/System: clarify that sub-agents remain sandboxed and cannot use elevated host access.
2026-01-10 21:55:54 +00:00
- Gateway: disable the OpenAI-compatible `/v1/chat/completions` endpoint by default; enable via `gateway.http.endpoints.chatCompletions.enabled=true` .
2026-01-10 22:25:05 +01:00
- macOS: stabilize bridge tunnels, guard invoke senders on disconnect, and drain stdout/stderr to avoid deadlocks. (#676 ) — thanks @ngutman .
2026-01-10 21:37:04 +01:00
- Agents/System: clarify sandboxed runtime in system prompt and surface elevated availability when sandboxed.
2026-01-10 17:32:19 +01:00
- Auto-reply: prefer `RawBody` for command/directive parsing (WhatsApp + Discord) and prevent fallback runs from clobbering concurrent session updates. (#643 ) — thanks @mcinteerj .
2026-01-10 18:06:53 +13:00
- WhatsApp: fix group reactions by preserving message IDs and sender JIDs in history; normalize participant phone numbers to JIDs in outbound reactions. (#640 ) — thanks @mcinteerj .
2026-01-10 21:08:49 +01:00
- WhatsApp: expose group participant IDs to the model so reactions can target the right sender.
2026-01-10 18:05:23 +01:00
- Cron: `wakeMode: "now"` waits for heartbeat completion (and retries when the main lane is busy). (#666 ) — thanks @roshanasingh4 .
2026-01-11 04:41:38 +01:00
- Agents/OpenAI: fix Responses tool-only → follow-up turn handling (avoid standalone `reasoning` items that trigger 400 “required following item”) and replay reasoning items in Responses/Codex Responses history for tool-call-only turns.
2026-01-10 20:28:34 +01:00
- Sandbox: add `clawdbot sandbox explain` (effective policy inspector + fix-it keys); improve “sandbox jail” tool-policy/elevated errors with actionable config key paths; link to docs.
2026-01-10 18:52:17 +01:00
- Hooks/Gmail: keep Tailscale serve path at `/` while preserving the public path. (#668 ) — thanks @antons .
2026-01-10 19:19:30 +01:00
- Hooks/Gmail: allow Tailscale target URLs to preserve internal serve paths.
2026-01-10 16:37:49 +01:00
- Auth: update Claude Code keychain credentials in-place during refresh sync; share JSON file helpers; add CLI fallback coverage.
2026-01-10 17:44:03 +01:00
- Auth: throttle external CLI credential syncs (Claude/Codex), reduce Keychain reads, and skip sync when cached credentials are still fresh.
2026-01-10 18:06:05 +01:00
- CLI: respect `CLAWDBOT_STATE_DIR` for node pairing + voice wake settings storage. (#664 ) — thanks @azade -c.
2026-01-10 04:19:43 +00:00
- Onboarding/Gateway: persist non-interactive gateway token auth in config; add WS wizard + gateway tool-calling regression coverage.
2026-01-10 17:02:20 +01:00
- Gateway/Control UI: make `chat.send` non-blocking, wire Stop to `chat.abort` , and treat `/stop` as an out-of-band abort. (#653 )
2026-01-10 17:23:16 +01:00
- Gateway/Control UI: allow `chat.abort` without `runId` (abort active runs), suppress post-abort chat streaming, and prune stuck chat runs. (#653 )
2026-01-10 20:06:33 +01:00
- Gateway/Control UI: sniff image attachments for chat.send, drop non-images, and log mismatches. (#670 ) — thanks @cristip73 .
2026-01-10 23:48:33 +01:00
- macOS: force `restart-mac.sh --sign` to require identities and keep bundled Node signed for relay verification. (#580 ) — thanks @jeffersonwarrior .
2026-01-10 20:34:34 +00:00
- Gateway/Agent: accept image attachments on `agent` (multimodal message) and add live gateway image probe (`CLAWDBOT_LIVE_GATEWAY_IMAGE_PROBE=1` ).
2026-01-10 05:14:09 +01:00
- CLI: `clawdbot sessions` now includes `elev:*` + `usage:*` flags in the table output.
2026-01-10 16:36:43 +01:00
- CLI/Pairing: accept positional provider for `pairing list|approve` (npm-run compatible); update docs/bot hints.
2026-01-10 05:14:09 +01:00
- Branding: normalize user-facing “ClawdBot”/“CLAWDBOT” → “Clawdbot” (CLI, status, docs).
2026-01-10 16:52:14 +01:00
- Auto-reply: fix native `/model` not updating the actual chat session (Telegram/Slack/Discord). (#646 )
2026-01-10 21:14:30 +01:00
- Doctor: offer to run `clawdbot update` first on git installs (keeps doctor output aligned with latest).
2026-01-10 16:23:28 +01:00
- Doctor: avoid false legacy workspace warning when install dir is `~/clawdbot` . (#660 )
2026-01-10 15:31:57 +01:00
- iMessage: fix reasoning persistence across DMs; avoid partial/duplicate replies when reasoning is enabled. (#655 ) — thanks @antons .
2026-01-10 15:08:12 +01:00
- Models/Auth: allow MiniMax API configs without `models.providers.minimax.apiKey` (auth profiles / `MINIMAX_API_KEY` ). (#656 ) — thanks @mneves75 .
2026-01-10 15:28:13 +01:00
- Agents: avoid duplicate replies when the message tool sends. (#659 ) — thanks @mickahouan .
2026-01-10 18:03:43 +01:00
- Agents: harden Cloud Code Assist tool ID sanitization (toolUse/toolCall/toolResult) and scrub extra JSON Schema constraints. (#665 ) — thanks @sebslight .
2026-01-11 04:46:30 +00:00
- Agents: sanitize tool results + Cloud Code Assist tool IDs at context-build time (prevents mid-run strict-provider request rejects).
2026-01-10 17:09:56 +01:00
- Agents/Tools: resolve workspace-relative Read/Write/Edit paths; align bash default cwd. (#642 ) — thanks @mukhtharcm .
2026-01-10 18:30:06 +01:00
- Discord: include forwarded message snapshots in agent session context. (#667 ) — thanks @rubyrunsstuff .
- Telegram: add `telegram.draftChunk` to tune draft streaming chunking for `streamMode: "block"` . (#667 ) — thanks @rubyrunsstuff .
2026-01-10 17:26:29 +01:00
- Tests/Agents: add regression coverage for workspace tool path resolution and bash cwd defaults.
2026-01-10 16:04:08 +00:00
- iOS/Android: enable stricter concurrency/lint checks; fix Swift 6 strict concurrency issues + Android lint errors (ExifInterface, obsolete SDK check). (#662 ) — thanks @KristijanJovanovski .
2026-01-11 23:39:55 +00:00
- Auth: read Codex CLI keychain tokens on macOS before falling back to `~/.codex/auth.json` , preventing stale refresh tokens from breaking gateway live tests.
2026-01-10 16:23:25 +00:00
- iOS/macOS: share `AsyncTimeout` , require explicit `bridgeStableID` on connect, and harden tool display defaults (avoids missing-resource label fallbacks).
2026-01-10 18:05:33 +01:00
- Telegram: serialize media-group processing to avoid missed albums under load.
2026-01-10 19:13:23 +01:00
- Signal: handle `dataMessage.reaction` events (signal-cli SSE) to avoid broken attachment errors. (#637 ) — thanks @neist .
2026-01-10 16:16:48 +01:00
- Docs: showcase entries for ParentPay, R2 Upload, iOS TestFlight, and Oura Health. (#650 ) — thanks @henrino3 .
2026-01-10 21:45:10 +00:00
- Agents: repair session transcripts by dropping duplicate tool results across the whole history (unblocks Anthropic-compatible APIs after retries).
- Tests/Live: reset the gateway session between model runs to avoid cross-provider transcript incompatibilities (notably OpenAI Responses reasoning replay rules).
2026-01-11 04:41:38 +01:00
2026-01-10 04:17:27 +01:00
## 2026.1.9
### Highlights
- Microsoft Teams provider: polling, attachments, outbound CLI send, per-channel policy.
- Models/Auth expansion: OpenCode Zen + MiniMax API onboarding; token auth profiles + auth order; OAuth health in doctor/status.
- CLI/Gateway UX: message subcommands, gateway discover/status/SSH, /config + /debug, sandbox CLI.
- Provider reliability sweep: WhatsApp contact cards/targets, Telegram audio-as-voice + streaming, Signal reactions, Slack threading, Discord stability.
- Auto-reply + status: block-streaming controls, reasoning handling, usage/cost reporting.
- Control UI/TUI: queued messages, session links, reasoning view, mobile polish, logs UX.
### Breaking
- CLI: `clawdbot message` now subcommands (`message send|poll|...` ) and requires `--provider` unless only one provider configured.
- Commands/Tools: `/restart` and gateway restart tool disabled by default; enable with `commands.restart=true` .
### New Features and Changes
- Models/Auth: OpenCode Zen onboarding (#623 ) — thanks @magimetal ; MiniMax Anthropic-compatible API + hosted onboarding (#590 , #495 ) — thanks @mneves75 , @tobiasbischoff .
- Models/Auth: setup-token + token auth profiles; `clawdbot models auth order {get,set,clear}` ; per-agent auth candidates in `/model status` ; OAuth expiry checks in doctor/status.
- Agent/System: claude-cli runner; `session_status` tool (and sandbox allow); adaptive context pruning default; system prompt messaging guidance + no auto self-update; eligible skills list injection; sub-agent context trimmed.
- Commands: `/commands` list; `/models` alias; `/usage` alias; `/debug` runtime overrides + effective config view; `/config` chat updates + `/config get` ; `config --section` .
- CLI/Gateway: unified message tool + message subcommands; gateway discover (local + wide-area DNS-SD) with JSON/timeout; gateway status human-readable + JSON + SSH loopback; wide-area records include gatewayPort/sshPort/cliPath + tailnet DNS fallback.
- CLI UX: logs output modes (pretty/plain/JSONL) + colorized health/daemon output; global `--no-color` ; lobster palette in onboarding/config.
- Dev ergonomics: gateway `--dev/--reset` + dev profile auto-config; C-3PO dev templates; dev gateway/TUI helper scripts.
- Sandbox/Workspace: sandbox list/recreate commands; sync skills into sandbox workspace; sandbox browser auto-start.
- Config/Onboarding: inline env vars; OpenAI API key flow to shared `~/.clawdbot/.env` ; Opus 4.5 default prompt for Anthropic auth; QuickStart auto-install gateway (Node-only) + provider picker tweaks + skip-systemd flags; TUI bootstrap prompt (`tui --message` ); remove Bun runtime choice.
- Providers: Microsoft Teams provider (polling, attachments, outbound sends, requireMention, config reload/DM policy). (#404 ) — thanks @onutc
- Providers: WhatsApp broadcast groups for multi-agent replies (#547 ) — thanks @pasogott ; inbound media size cap configurable (#505 ) — thanks @koala73 ; identity-based message prefixes (#578 ) — thanks @p6l -richard.
- Providers: Telegram inline keyboard buttons + callback payload routing (#491 ) — thanks @azade -c; cron topic delivery targets (#474/#478 ) — thanks @mitschabaude -bot, @nachoiacovino ; `[[audio_as_voice]]` tag support (#490 ) — thanks @jarvis -medmatic.
- Providers: Signal reactions + notifications with allowlist support.
- Status/Usage: /status cost reporting + `/cost` lines; auth profile snippet; provider usage windows.
- Control UI: mobile responsiveness (#558 ) — thanks @carlulsoe ; queued messages + Enter-to-send (#527 ) — thanks @YuriNachos ; session links (#471 ) — thanks @HazAT ; reasoning view; skill install feedback (#445 ) — thanks @pkrmf ; chat layout refresh (#475 ) — thanks @rahthakor ; docs link + new session button; drop explicit `ui:install` .
- TUI: agent picker + agents list RPC; improved status line.
- Doctor/Daemon: audit/repair flows, permissions checks, supervisor config audits; provider status probes + warnings for Discord intents and Telegram privacy; last activity timestamps; gateway restart guidance.
- Docs: Hetzner Docker VPS guide + cross-links (#556/#592 ) — thanks @Iamadig ; Ansible guide (#545 ) — thanks @pasogott ; provider troubleshooting index; hook parameter expansion (#532 ) — thanks @mcinteerj ; model allowlist notes; OAuth deep dive; showcase refresh.
- Apps/Branding: refreshed iOS/Android/macOS icons (#521 ) — thanks @fishfisher .
### Fixes
2026-01-10 04:30:56 +01:00
- Packaging: include MS Teams send module in npm tarball.
2026-01-10 04:17:27 +01:00
- Sandbox/Browser: auto-start CDP endpoint; proxy CDP out of container for attachOnly; relax Bun fetch typing; align sandbox list output with config images.
- Agents/Runtime: gate heartbeat prompt to default sessions; /stop aborts between tool calls; require explicit system-event session keys; guard small context windows; fix model fallback stringification; sessions_spawn inherits provider; failover on billing/credits; respect auth cooldown ordering; restore Anthropic OAuth tool dispatch + tool-name bypass; avoid OpenAI invalid reasoning replay; harden Gmail hook model defaults.
- Agent history/schema: strip/skip empty assistant/error blocks to prevent session corruption/Claude 400s; scrub unsupported JSON Schema keywords + sanitize tool call IDs for Cloud Code Assist; simplify Gemini-compatible tool/session schemas; require raw for config.apply.
- Auto-reply/Streaming: default audioAsVoice false; preserve audio_as_voice propagation + buffer audio blocks + guard voice notes; block reply ordering (timeout) + forced-block fence-safe; avoid chunk splits inside parentheses + fence-close breaks + invalid UTF-16 truncation; preserve inline directive spacing + allow whitespace in reply tags; filter NO_REPLY prefixes + normalize routed replies; suppress < think > leakage with separate Reasoning; block streaming defaults (off by default, minChars/idle tuning) + coalesced blocks; dedupe followup queue; restore explicit responsePrefix default.
- Status/Commands: provider prefix in /status model display; usage filtering + provider mapping; auth label + usage snapshots (claude-cli fallback + optional claude.ai); show Verbose/Elevated only when enabled; compact usage/cost line + restore emoji-rich status; /status in directive-only + multi-directive handling; mention-bypass elevated handling; surface provider usage errors; wire /usage to /status; restore hidden gateway-daemon alias; fallback /model list when catalog unavailable.
- WhatsApp: vCard/contact cards (prefer FN, include numbers, show all contacts, keep summary counts, better empty summaries); preserve group JIDs + normalize targets; resolve @lid mappings/JIDs (Baileys/auth-dir) + inbound mapping; route queued replies to sender; improve web listener errors + remove provider name from errors; record outbound activity account id; fix web media fetch errors; broadcast group history consistency.
- Telegram: keep streamMode draft-only; long-poll conflict retries + update dedupe; grammY fetch mismatch fixes + restrict native fetch to Bun; suppress getUpdates stack traces; include user id in pairing; audio_as_voice handling fixes.
- Discord/Slack: thread context helpers + forum thread starters; avoid category parent overrides; gateway reconnect logs + HELLO timeout + stop provider after reconnect exhaustion; DM recipient parsing for numeric IDs; remove incorrect limited warning; reply threading + mrkdwn edge cases; remove ack reactions after reply; gateway debug event visibility.
- Signal: reaction handling safety; own-reaction matching (uuid+phone); UUID-only senders accepted; ignore reaction-only messages.
- MS Teams: download image attachments reliably; fix top-level replies; stop on shutdown + honor chunk limits; normalize poll providers/deps; pairing label fixes.
- iMessage: isolate group-ish threads by chat_id.
- Gateway/Daemon/Doctor: atomic config writes; repair gateway service entrypoint + install switches; non-interactive legacy migrations; systemd unit alignment + KillMode=process; node bridge keepalive/pings; Launch at Login persistence; bundle ClawdbotKit resources + Swift 6.2 compat dylib; relay version check + remove smoke test; regen Swift GatewayModels + keep agent provider string; cron jobId alias + channel alias migration + main session key normalization; heartbeat Telegram accountId resolution; avoid WhatsApp fallback for internal runs; gateway listener error wording; serveBaseUrl param; honor gateway --dev; fix wide-area discovery updates; align agents.defaults schema; provider account metadata in daemon status; refresh Carbon patch for gateway fixes; restore doctor prompter initialValue handling.
- Control UI/TUI: persist per-session verbose off + hide tool cards; logs tab opens at bottom; relative asset paths + landing cleanup; session labels lookup/persistence; stop pinning main session in recents; start logs at bottom; TUI status bar refresh + timeout handling + hide reasoning label when off.
- Onboarding/Configure: QuickStart single-select provider picker; avoid Codex CLI false-expiry warnings; clarify WhatsApp owner prompt; fix Minimax hosted onboarding (agents.defaults + msteams heartbeat target); remove configure Control UI prompt; honor gateway --dev flag.
2026-01-10 04:24:52 +01:00
### Maintenance
- Dependencies: bump pi-* stack to 0.42.2.
- Dependencies: Pi 0.40.0 bump (#543 ) — thanks @mcinteerj .
- Build: Docker build cache layer (#605 ) — thanks @zknicker .
2026-01-14 20:06:32 +00:00
- Auth: enable OAuth token refresh for Claude Code CLI credentials (`anthropic:claude-cli` ) with bidirectional sync back to Claude Code storage (file on Linux/Windows, Keychain on macOS). This allows long-running agents to operate autonomously without manual re-authentication (#654 — thanks @radek -paclt).
2026-01-08 09:11:28 +01:00
## 2026.1.8
### Highlights
- Security: DMs locked down by default across providers; pairing-first + allowlist guidance.
- Sandbox: per-agent scope defaults + workspace access controls; tool/session isolation tuned.
- Agent loop: compaction, pruning, streaming, and error handling hardened.
- Providers: Telegram/WhatsApp/Discord/Slack reliability, threading, reactions, media, and retries improved.
- Control UI: logs tab, streaming stability, focus mode, and large-output rendering fixes.
- CLI/Gateway/Doctor: daemon/logs/status, auth migration, and diagnostics significantly expanded.
2026-01-05 23:02:13 +00:00
### Breaking
2026-01-06 17:51:38 +01:00
- **SECURITY (update ASAP):** inbound DMs are now **locked down by default** on Telegram/WhatsApp/Signal/iMessage/Discord/Slack.
- Previously, if you didn’ t configure an allowlist, your bot could be **open to anyone** (especially discoverable Telegram bots).
- New default: DM pairing (`dmPolicy="pairing"` / `discord.dm.policy="pairing"` / `slack.dm.policy="pairing"` ).
- To keep old “open to everyone” behavior: set `dmPolicy="open"` and include `"*"` in the relevant `allowFrom` (Discord/Slack: `discord.dm.allowFrom` / `slack.dm.allowFrom` ).
2026-01-10 16:36:43 +01:00
- Approve requests via `clawdbot pairing list <provider>` + `clawdbot pairing approve <provider> <code>` .
2026-01-09 13:47:03 +01:00
- Sandbox: default `agent.sandbox.scope` to `"agent"` (one container/workspace per agent). Use `"session"` for per-session isolation; `"shared"` disables cross-session isolation.
- Timestamps in agent envelopes are now UTC (compact `YYYY-MM-DDTHH:mmZ` ); removed `messages.timestampPrefix` . Add `agent.userTimezone` to tell the model the user’ s local time (system prompt only).
2026-01-06 00:56:29 +00:00
- Model config schema changes (auth profiles + model lists); doctor auto-migrates and the gateway rewrites legacy configs on startup.
2026-01-06 02:06:06 +01:00
- Commands: gate all slash commands to authorized senders; add `/compact` to manually compact session context.
2026-01-06 03:30:33 +01:00
- Groups: `whatsapp.groups` , `telegram.groups` , and `imessage.groups` now act as allowlists when set. Add `"*"` to keep allow-all behavior.
2026-01-07 11:59:48 +01:00
- Auto-reply: removed `autoReply` from Discord/Slack/Telegram channel configs; use `requireMention` instead (Telegram topics now support `requireMention` overrides).
2026-01-08 07:40:08 +01:00
- CLI: remove `update` , `gateway-daemon` , `gateway {install|uninstall|start|stop|restart|daemon status|wake|send|agent}` , and `telegram` commands; move `login/logout` to `providers login/logout` (top-level aliases hidden); use `daemon` for service control, `send` /`agent` /`wake` for RPC, and `nodes canvas` for canvas ops.
2026-01-05 23:02:13 +00:00
2026-01-05 02:48:25 +01:00
### Fixes
2026-01-08 09:11:28 +01:00
- **CLI/Gateway/Doctor:** daemon runtime selection + improved logs/status/health/errors; auth/password handling for local CLI; richer close/timeout details; auto-migrate legacy config/sessions/state; integrity checks + repair prompts; `--yes` /`--non-interactive` ; `--deep` gateway scans; better restart/service hints.
- **Agent loop + compaction:** compaction/pruning tuning, overflow handling, safer bootstrap context, and per-provider threading/confirmations; opt-in tool-result pruning + compact tracking.
- **Sandbox + tools:** per-agent sandbox overrides, workspaceAccess controls, session tool visibility, tool policy overrides, process isolation, and tool schema/timeout/reaction unification.
- **Providers (Telegram/WhatsApp/Discord/Slack/Signal/iMessage):** retry/backoff, threading, reactions, media groups/attachments, mention gating, typing behavior, and error/log stability; long polling + forum topic isolation for Telegram.
- **Gateway/CLI UX:** `clawdbot logs` , cron list colors/aliases, docs search, agents list/add/delete flows, status usage snapshots, runtime/auth source display, and `/status` /commands auth unification.
- **Control UI/Web:** logs tab, focus mode polish, config form resilience, streaming stability, tool output caps, windowed chat history, and reconnect/password URL auth.
- **macOS/Android/TUI/Build:** macOS gateway races, QR bundling, JSON5 config safety, Voice Wake hardening; Android EXIF rotation + APK naming/versioning; TUI key handling; tooling/bundling fixes.
- **Packaging/compat:** npm dist folder coverage, Node 25 qrcode-terminal import fixes, Bun/Playwright/WebSocket patches, and Docker Bun install.
- **Docs:** new FAQ/ClawdHub/config examples/showcase entries and clarified auth, sandbox, and systemd docs.
2026-01-05 05:27:58 +01:00
### Maintenance
2026-01-08 09:11:28 +01:00
- Skills additions (Himalaya email, CodexBar, 1Password).
- Dependency refreshes (pi-* stack, Slack SDK, discord-api-types, file-type, zod, Biome, Vite).
- Refactors: centralized group allowlist/mention policy; lint/import cleanup; switch tsx → bun for TS execution.
2026-01-05 03:28:25 +01:00
2026-01-05 02:39:42 +01:00
## 2026.1.5
2026-01-04 19:35:00 +01:00
### Highlights
2026-01-09 13:47:03 +01:00
- Models: add image-specific model config (`agent.imageModel` + fallbacks) and scan support.
2026-01-04 19:35:00 +01:00
- Agent tools: new `image` tool routed to the image model (when configured).
2026-01-05 00:59:25 +01:00
- Config: default model shorthands (`opus` , `sonnet` , `gpt` , `gpt-mini` , `gemini` , `gemini-flash` ).
2026-01-05 01:02:30 +01:00
- Docs: document built-in model shorthands + precedence (user config wins).
2026-01-06 03:30:33 +01:00
- Bun: optional local install/build workflow without maintaining a Bun lockfile (see `docs/bun.md` ).
2026-01-04 19:35:00 +01:00
2026-01-04 16:16:20 +00:00
### Fixes
2026-01-05 01:22:19 +01:00
- Control UI: render Markdown in tool result cards.
2026-01-05 01:21:33 +01:00
- Control UI: prevent overlapping action buttons in Discord guild rules on narrow layouts.
2026-01-04 17:02:46 +00:00
- Android: tapping the foreground service notification brings the app to the front. (#179 ) — thanks @Syhids
2026-01-05 02:15:11 +01:00
- Cron tool uses `id` for update/remove/run/runs (aligns with gateway params). (#180 ) — thanks @adamgall
2026-01-05 00:15:13 +00:00
- Control UI: chat view uses page scroll with sticky header/sidebar and fixed composer (no inner scroll frame).
2026-01-04 18:46:57 +01:00
- macOS: treat location permission as always-only to avoid iOS-only enums. (#165 ) — thanks @Nachx639
2026-01-04 14:39:21 -08:00
- macOS: make generated gateway protocol models `Sendable` for Swift 6 strict concurrency. (#195 ) — thanks @andranik -sahakyan
2026-01-05 02:19:26 +01:00
- macOS: bundle QR code renderer modules so DMG gateway boot doesn't crash on missing qrcode-terminal vendor files.
2026-01-05 04:58:37 +00:00
- macOS: parse JSON5 config safely to avoid wiping user settings when comments are present.
2026-01-05 12:03:36 +13:00
- WhatsApp: suppress typing indicator during heartbeat background tasks. (#190 ) — thanks @mcinteerj
2026-01-05 01:33:19 +01:00
- WhatsApp: mark offline history sync messages as read without auto-reply. (#193 ) — thanks @mcinteerj
2026-01-05 00:46:46 +01:00
- Discord: avoid duplicate replies when a provider emits late streaming `text_end` events (OpenAI/GPT).
2026-01-05 02:19:26 +01:00
- CLI: use tailnet IP for local gateway calls when bind is tailnet/auto (fixes #176 ).
2026-01-05 00:41:36 +01:00
- Env: load global `$CLAWDBOT_STATE_DIR/.env` (`~/.clawdbot/.env` ) as a fallback after CWD `.env` .
2026-01-05 00:59:25 +01:00
- Env: optional login-shell env fallback (opt-in; imports expected keys without overriding existing env).
2026-01-05 00:15:42 +01:00
- Agent tools: OpenAI-compatible tool JSON Schemas (fix `browser` , normalize union schemas).
2026-01-06 09:08:25 +01:00
- Onboarding: when running from source, auto-build missing Control UI assets (`bun run ui:build` ).
2026-01-04 22:11:04 +01:00
- Discord/Slack: route reaction + system notifications to the correct session (no main-session bleed).
2026-01-09 13:47:03 +01:00
- Agent tools: honor `agent.tools` allow/deny policy even when sandbox is off.
2026-01-05 00:39:34 +01:00
- Discord: avoid duplicate replies when OpenAI emits repeated `message_end` events.
2026-01-05 01:31:36 +01:00
- Commands: unify /status (inline) and command auth across providers; group bypass for authorized control commands; remove Discord /clawd slash handler.
2026-01-06 03:30:33 +01:00
- CLI: run `clawdbot agent` via the Gateway by default; use `--local` to force embedded mode.