diff --git a/CHANGELOG.md b/CHANGELOG.md index b84c324b5..2e836e9e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,78 +2,64 @@ Docs: https://docs.clawd.bot -## 2026.1.22 - -### Changes -- Highlight: Lobster optional plugin tool for typed workflows + approval gates. https://docs.clawd.bot/tools/lobster -- Agents: add identity avatar config support and Control UI avatar rendering. (#1329, #1424) Thanks @dlauer. -- Memory: prevent CLI hangs by deferring vector probes, adding sqlite-vec/embedding timeouts, and showing sync progress early. -- 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. -- UI: show per-session assistant identity in the Control UI. (#1420) Thanks @robbyczgw-cla. -- Onboarding: remove the run setup-token auth option (paste setup-token or reuse CLI creds instead). -- Signal: add typing indicators and DM read receipts via signal-cli. -- MSTeams: add file uploads, adaptive cards, and attachment handling improvements. (#1410) Thanks @Evizero. -- CLI: add `clawdbot update wizard` for interactive channel selection and restart prompts. https://docs.clawd.bot/cli/update - -### Breaking -- **BREAKING:** Envelope and system event timestamps now default to host-local time (was UTC) so agents don’t have to constantly convert. - -### Fixes -- Media: accept MEDIA paths with spaces/tilde and prefer the message tool hint for image replies. -- Google Antigravity: drop unsigned thinking blocks for Claude models to avoid signature errors. -- Config: avoid stack traces for invalid configs and log the config path. -- CLI: read Codex CLI account_id for workspace billing. (#1422) Thanks @aj47. -- Doctor: avoid recreating WhatsApp config when only legacy routing keys remain. (#900) -- Doctor: warn when gateway.mode is unset with configure/config guidance. -- OpenCode Zen: route models to the Zen API shape per family so proxy endpoints are used. (#1416) -- Browser: suppress Chrome restore prompts for managed profiles. (#1419) Thanks @jamesgroat. -- Logs: align rolling log filenames with local time and fall back to latest file when today's log is missing. (#1343) -- Models: inherit session model overrides in thread/topic sessions (Telegram topics, Slack/Discord threads). (#1376) -- macOS: keep local auto bind loopback-first; only use tailnet when bind=tailnet. -- macOS: include Textual syntax highlighting resources in packaged app to prevent chat crashes. (#1362) -- macOS: keep chat pinned to bottom during streaming replies. (#1279) -- Cron: cap reminder context history to 10 messages and honor `contextMessages`. (#1103) Thanks @mkbehr. -- Exec approvals: treat main as the default agent + migrate legacy default allowlists. (#1417) Thanks @czekaj. -- Exec: avoid defaulting to elevated mode when elevated is not allowed. -- Exec approvals: align node/gateway allowlist prechecks and approval gating; avoid null optional params in approval requests. (#1425) Thanks @czekaj. -- UI: refresh debug panel on route-driven tab changes. (#1373) Thanks @yazinsai. - ## 2026.1.21 +### Highlights +- Lobster optional plugin tool for typed workflows + approval gates. https://docs.clawd.bot/tools/lobster +- Custom assistant identity + avatars in the Control UI. https://docs.clawd.bot/cli/agents https://docs.clawd.bot/web/control-ui +- Exec approvals + elevated ask/full modes. https://docs.clawd.bot/tools/exec-approvals https://docs.clawd.bot/tools/elevated +- Signal typing/read receipts + MSTeams attachments. https://docs.clawd.bot/channels/signal https://docs.clawd.bot/channels/msteams +- `/models` UX refresh + `clawdbot update wizard`. https://docs.clawd.bot/cli/models https://docs.clawd.bot/cli/update + ### Changes -- 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. +- Highlight: Lobster optional plugin tool for typed workflows + approval gates. https://docs.clawd.bot/tools/lobster (#1152) Thanks @vignesh07. +- Agents/UI: add identity avatar config support and Control UI avatar rendering. (#1329, #1424) Thanks @dlauer. https://docs.clawd.bot/gateway/configuration https://docs.clawd.bot/cli/agents +- Control UI: add custom assistant identity support and per-session identity display. (#1420) Thanks @robbyczgw-cla. https://docs.clawd.bot/web/control-ui +- CLI: add `clawdbot update wizard` with interactive channel selection + restart prompts, plus preflight checks before rebasing. https://docs.clawd.bot/cli/update +- Models/Commands: add `/models`, improve `/model` listing UX, and expand `clawdbot models` paging. (#1398) Thanks @vignesh07. https://docs.clawd.bot/cli/models +- CLI: move gateway service commands under `clawdbot gateway`, flatten node service commands under `clawdbot node`, and add `gateway probe` for reachability. https://docs.clawd.bot/cli/gateway https://docs.clawd.bot/cli/node +- Exec: add elevated ask/full modes, tighten allowlist gating, and render approvals tables on write. https://docs.clawd.bot/tools/elevated https://docs.clawd.bot/tools/exec-approvals +- Exec approvals: default to local host, add gateway/node targeting + target details, support wildcard agent allowlists, and tighten allowlist parsing/safe bins. https://docs.clawd.bot/cli/approvals https://docs.clawd.bot/tools/exec-approvals +- Heartbeat: allow explicit session keys and active hours. (#1256) Thanks @zknicker. https://docs.clawd.bot/gateway/heartbeat +- Sessions: add per-channel idle durations via `sessions.channelIdleMinutes`. (#1353) Thanks @cash-echo-bot. +- Nodes: run exec-style, expose PATH in status/describe, and bootstrap PATH for node-host execution. https://docs.clawd.bot/cli/node +- Cache: add `cache.ttlPrune` mode and auth-aware defaults for cache TTL behavior. +- Queue: add per-channel debounce overrides for auto-reply. https://docs.clawd.bot/concepts/queue +- Discord: add wildcard channel config support. (#1334) Thanks @pvoo. https://docs.clawd.bot/channels/discord +- Signal: add typing indicators and DM read receipts via signal-cli. https://docs.clawd.bot/channels/signal +- MSTeams: add file uploads, adaptive cards, and attachment handling improvements. (#1410) Thanks @Evizero. https://docs.clawd.bot/channels/msteams +- Onboarding: remove the run setup-token auth option (paste setup-token or reuse CLI creds instead). +- macOS: refresh Settings (location access in Permissions, connection mode in menu, remove CLI install UI). +- Diagnostics: add cache trace config for debugging. (#1370) Thanks @parubets. +- Docs: Lobster guides + org URL updates, /model allowlist troubleshooting, Gmail message search examples, gateway.mode troubleshooting, prompt injection guidance, npm prefix/node CLI notes, control UI dev gatewayUrl note, tool_use FAQ, showcase video, and sharp/node-gyp workaround. (#1427, #1220, #1405) Thanks @vignesh07, @mbelinky. ### 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 +- **BREAKING:** Envelope and system event timestamps now default to host-local time (was UTC) so agents don’t have to constantly convert. ### Fixes +- Streaming/Typing/Media: keep reply tags across streamed chunks, start typing indicators at run start, and accept MEDIA paths with spaces/tilde while preferring the message tool hint for image replies. +- Agents/Providers: drop unsigned thinking blocks for Claude models (Google Antigravity) and enforce alphanumeric tool call ids for strict providers (Mistral/OpenRouter). (#1372) Thanks @zerone0x. +- Exec approvals: treat main as the default agent, align node/gateway allowlist prechecks, validate resolved paths, avoid allowlist resolve races, and avoid null optional params. (#1417, #1414, #1425) Thanks @czekaj. +- Exec/Windows: resolve Windows exec paths with extensions and handle safe-bin exe names. - Nodes/macOS: prompt on allowlist miss for node exec approvals, persist allowlist decisions, and flatten node invoke errors. (#1394) Thanks @ngutman. -- Gateway: keep auto bind loopback-first and add explicit tailnet binding to avoid Tailscale taking over local UI. (#1380) -- Agents: enforce 9-char alphanumeric tool call ids for Mistral providers. (#1372) Thanks @zerone0x. +- Gateway: prevent multiple gateways from sharing the same config/state (singleton lock), keep auto bind loopback-first with explicit tailnet binding, and improve SSH auth handling. (#1380) +- Control UI: remove the chat stop button, keep the composer aligned to the bottom edge, stabilize session previews, and refresh the debug panel on route-driven tab changes. (#1373) Thanks @yazinsai. +- UI/config: export `SECTION_META` for config form modules. (#1418) Thanks @MaudeBot. +- macOS: keep chat pinned during streaming replies, include Textual resources, respect wildcard exec approvals, allow SSH agent auth, and default distribution builds to universal binaries. (#1279, #1362, #1384, #1396) Thanks @ameno-, @JustYannicc. +- BlueBubbles: resolve short message IDs safely, expose full IDs in templates, and harden short-id fetch wrappers. (#1369, #1387) Thanks @tyler6204. +- Models/Configure: inherit session model overrides in threads/topics, map OpenCode Zen models to the correct APIs, narrow Anthropic OAuth allowlist handling, seed allowlist fallbacks, list the full catalog when no allowlist is set, and limit `/model` list output. (#1376, #1416) +- Memory: prevent CLI hangs by deferring vector probes, add sqlite-vec/embedding timeouts, and make session memory indexing async. +- Cron: cap reminder context history to 10 messages and honor `contextMessages`. (#1103) Thanks @mkbehr. +- Cache: restore the 1h cache TTL option and reset the pruning window. +- Zalo Personal: tolerate ANSI/log-prefixed JSON output from `zca`. (#1379) Thanks @ptn1411. +- Browser: suppress Chrome restore prompts for managed profiles. (#1419) Thanks @jamesgroat. +- Infra: preserve fetch helper methods/preconnect when wrapping abort signals and normalize Telegram fetch aborts. +- Config/Doctor: avoid stack traces for invalid configs, log the config path, avoid WhatsApp config resurrection, and warn when `gateway.mode` is unset. (#900) +- CLI: read Codex CLI account_id for workspace billing. (#1422) Thanks @aj47. +- Logs/Status: align rolling log filenames with local time and report sandboxed runtime in `clawdbot status`. (#1343) - Embedded runner: persist injected history images so attachments aren’t reloaded each turn. (#1374) Thanks @Nicell. -- 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. +- Nodes/Subagents: include agent/node/gateway context in tool failure logs and ensure subagent list uses the command session. ## 2026.1.20