2025-11-25 12:00:48 +01:00
# Changelog
2026-01-10 04:55:30 +01:00
## 2026.1.10
2026-01-10 16:32:21 +01:00
### New Features and Changes
- Onboarding/Models: add first-class Z.AI (GLM) auth choice (`zai-api-key` ) + `--zai-api-key` flag.
2026-01-10 17:15:27 +01:00
- Agents: add human-delay pacing between block replies (modes: off/natural/custom, per-agent configurable). (#446 ) — thanks @tony -freedomology.
2026-01-10 16:32:39 +00:00
- Onboarding/Models: add catalog-backed default model picker to onboarding + configure. (#611 ) — thanks @jonasjancarik .
2026-01-10 16:32:21 +01:00
2026-01-10 05:14:09 +01:00
### Fixes
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 04:19:43 +00:00
- Agents/OpenAI: fix Responses tool-only → follow-up turn handling (avoid standalone `reasoning` items that trigger 400 “required following item”).
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 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 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-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 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-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 16:16:48 +01:00
- Docs: showcase entries for ParentPay, R2 Upload, iOS TestFlight, and Oura Health. (#650 ) — thanks @henrino3 .
2026-01-10 05:14:09 +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-10 15:50:25 +01:00
- Auth: enable OAuth token refresh for Claude 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.