2025-11-25 12:00:48 +01:00
# Changelog
2026-01-04 16:16:20 +00:00
## Unreleased
2026-01-08 22:57:08 +01:00
- Security: per-agent mention patterns and group elevated directives now require explicit mention to avoid cross-agent toggles.
2026-01-08 22:37:06 +01:00
- Config: support inline env vars in config (`env.*` / `env.vars` ) and document env precedence.
2026-01-08 22:23:03 +01:00
- Agent: enable adaptive context pruning by default for tool-result trimming.
2026-01-08 21:51:34 +01:00
- Doctor: check config/state permissions and offer to tighten them. — thanks @steipete
2026-01-08 21:47:35 +01:00
- Doctor/Daemon: audit supervisor configs, add --repair/--force flows, surface service config audits in daemon status, and document user vs system services. — thanks @steipete
2026-01-08 21:16:06 +01:00
- Daemon: align generated systemd unit with docs for network-online + restart delay. (#479 ) — thanks @azade -c
2026-01-08 21:36:47 +00:00
- Doctor: run legacy state migrations in non-interactive mode without prompts.
2026-01-08 21:13:39 +00:00
- Cron: parse Telegram topic targets for isolated delivery. (#478 ) — thanks @nachoiacovino
2026-01-08 21:08:34 +01:00
- Outbound: default Telegram account selection for config-only tokens; remove heartbeat-specific accountId handling. (follow-up #516 ) — thanks @YuriNachos
2026-01-08 21:20:59 +01:00
- Cron: allow Telegram delivery targets with topic/thread IDs (e.g. `-100…:topic:123` ). (#474 ) — thanks @mitschabaude -bot
2026-01-08 20:46:58 +01:00
- Heartbeat: resolve Telegram account IDs from config-only tokens; cron tool accepts canonical `jobId` and legacy `id` for job actions. (#516 ) — thanks @YuriNachos
2026-01-08 20:08:27 +01:00
- Discord: stop provider when gateway reconnects are exhausted and surface errors. (#514 ) — thanks @joshp123
2026-01-08 21:54:04 +01:00
- Agents: strip empty assistant text blocks from session history to avoid Claude API 400s. (#210 )
2026-01-08 19:30:24 +01:00
- Auto-reply: preserve block reply ordering with timeout fallback for streaming. (#503 ) — thanks @joshp123
2026-01-08 20:26:05 +00:00
- Auto-reply: block reply ordering fix (duplicate PR superseded by #503 ). (#483 ) — thanks @AbhisekBasu1
2026-01-08 20:39:28 +01:00
- Auto-reply: avoid splitting outbound chunks inside parentheses. (#499 ) — thanks @philipp -spiess
2026-01-09 00:36:40 +01:00
- Auto-reply: preserve spacing when stripping inline directives. (#539 ) — thanks @joshp123
2026-01-08 20:13:45 +01:00
- Status: show provider prefix in /status model display. (#506 ) — thanks @mcinteerj
2026-01-08 19:24:01 +00:00
- macOS: package ClawdbotKit resources and Swift 6.2 compatibility dylib to avoid launch/tool crashes. (#473 ) — thanks @gupsammy
2026-01-08 09:44:59 +01:00
- WhatsApp: group `/model list` output by provider for scannability. (#456 ) - thanks @mcinteerj
2026-01-08 09:33:31 +00:00
- Hooks: allow per-hook model overrides for webhook/Gmail runs (e.g. GPT 5 Mini).
2026-01-08 11:42:28 +01:00
- Control UI: logs tab opens at the newest entries (bottom).
2026-01-08 12:04:11 +01:00
- Control UI: add Docs link, remove chat composer divider, and add New session button.
2026-01-08 12:04:21 +01:00
- Telegram: retry long-polling conflicts with backoff to avoid fatal exits.
2026-01-08 20:18:17 +01:00
- Telegram: fix grammY fetch type mismatch when injecting `fetch` . (#512 ) — thanks @YuriNachos
2026-01-08 22:08:54 +01:00
- WhatsApp: resolve @lid JIDs via Baileys mapping to unblock inbound messages. (#415 )
2026-01-08 23:19:13 +00:00
- Pairing: replies now include sender ids for Discord/Slack/Signal/iMessage/WhatsApp; pairing list labels them explicitly.
2026-01-08 23:06:38 +00:00
- Signal: accept UUID-only senders for pairing/allowlists/routing when sourceNumber is missing. (#523 ) — thanks @neist
2026-01-08 12:04:29 +01:00
- Agent system prompt: avoid automatic self-updates unless explicitly requested.
2026-01-08 12:06:39 +01:00
- Onboarding: tighten QuickStart hint copy for configuring later.
2026-01-08 12:16:09 +01:00
- Onboarding: avoid “token expired” for Codex CLI when expiry is heuristic.
2026-01-08 12:19:16 +01:00
- Onboarding: QuickStart jumps straight into provider selection with Telegram preselected when unset.
2026-01-08 12:19:45 +01:00
- Onboarding: QuickStart auto-installs the Gateway daemon with Node (no runtime picker).
2026-01-08 12:20:45 +01:00
- Daemon runtime: remove Bun from selection options.
2026-01-08 19:54:20 +00:00
- CLI: restore hidden `gateway-daemon` alias for legacy launchd configs.
2026-01-08 20:04:13 +00:00
- Control UI: show skill install progress + per-skill results, hide install once binaries present. (#445 ) — thanks @pkrmf
2026-01-08 23:07:24 +01:00
- Providers/Doctor: surface Discord privileged intent (Message Content) misconfiguration with actionable warnings.
2026-01-08 23:14:11 +01:00
- Providers/Doctor: warn when Telegram config expects unmentioned group messages but Bot API privacy mode is likely enabled; surface WhatsApp login/disconnect hints.
2026-01-08 23:48:07 +01:00
- Providers/Doctor: add last inbound/outbound activity timestamps in `providers status` and extend `--probe` with Discord channel permission + Telegram group membership audits.
2026-01-08 23:56:42 +01:00
- Docs: add provider troubleshooting index (`/providers/troubleshooting` ) and link it from the main troubleshooting guide.
2026-01-09 00:01:23 +01:00
- Telegram: include the user id in DM pairing messages and label it clearly in `clawdbot pairing list --provider telegram` .
2026-01-08 23:30:50 +01:00
- Apps: refresh iOS/Android/macOS app icons for Clawdbot branding. (#521 ) — thanks @fishfisher
2026-01-08 23:37:50 +01:00
- Docs: expand parameter descriptions for agent/wake hooks. (#532 ) — thanks @mcinteerj
2026-01-08 23:52:10 +01:00
- Docs: add community showcase entries from Discord. (#476 ) — thanks @gupsammy
2026-01-09 01:16:57 +01:00
- TUI: refresh status bar after think/verbose/reasoning changes. (#519 ) — thanks @jdrhyne
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-08 09:57:03 +01:00
- Approve requests via `clawdbot pairing list --provider <provider>` + `clawdbot pairing approve --provider <provider> <code>` .
2026-01-07 02:31:51 +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.
2026-01-05 23:02:13 +00:00
- 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
- Models: add image-specific model config (`agent.imageModel` + fallbacks) and scan support.
- 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-05 00:05:21 +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.