diff --git a/CHANGELOG.md b/CHANGELOG.md index c3fa749cd..20c260664 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,25 +1,25 @@ # Changelog -## 2025.1.12 (Unreleased) +## 2026.1.12 ### Highlights - **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.*`). - 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). -- Models: add Synthetic provider plus Moonshot Kimi K2 0905 + turbo/thinking variants (with docs). +- Models: add Synthetic provider plus Moonshot Kimi K2 0905 + turbo/thinking variants (with docs). (#811) — thanks @siraht; (#818) — thanks @mickahouan. - Cron: one-shot schedules accept ISO timestamps (UTC) with optional delete-after-run; cron jobs can target a specific agent (CLI + macOS/Control UI). -- Agents: add compaction mode config with optional safeguard summarization and per-agent model fallbacks. +- Agents: add compaction mode config with optional safeguard summarization and per-agent model fallbacks. (#700) — thanks @thewilloftheshadow; (#583) — thanks @mitschabaude-bot. ### New & Improved -- Memory: add custom OpenAI-compatible embedding endpoints; support OpenAI/local `node-llama-cpp` embeddings with per-agent overrides and provider metadata in tools/CLI. +- 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. - 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. -- 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`. -- Tools: add browser `scrollintoview` action; allow Claude/Gemini tool param aliases; allow thinking `xhigh` for GPT-5.2/Codex with safe downgrades. -- 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. -- Auth/Onboarding: add Chutes OAuth (PKCE + refresh + onboarding choice); normalize API key inputs; default TUI onboarding to `deliver: false`. -- 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). -- Gateway: allow Tailscale Serve identity headers to satisfy token auth; rebuild Control UI assets when protocol schema is newer. +- 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. +- 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. - Heartbeat: default `ackMaxChars` to 300 so short `HEARTBEAT_OK` replies stay internal. ### Installer @@ -27,25 +27,26 @@ ### Fixes - Doctor: warn on pnpm workspace mismatches, missing Control UI assets, and missing tsx binaries; offer UI rebuilds. -- 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. +- 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. - Auth: drop invalid auth profiles from ordering so environment keys can still be used for providers like MiniMax. -- 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. +- 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. - Agents: auto-recover from compaction context overflow by resetting the session and retrying; propagate overflow details from embedded runs so callers can recover. -- MiniMax: strip malformed tool invocation XML; include `MiniMax-VL-01` in implicit provider for image pairing. +- MiniMax: strip malformed tool invocation XML; include `MiniMax-VL-01` in implicit provider for image pairing. (#809) — thanks @latitudeki5223. - Onboarding/Auth: honor `CLAWDBOT_AGENT_DIR` / `PI_CODING_AGENT_DIR` when writing auth profiles (MiniMax). (#829) — thanks @roshanasingh4. - Anthropic: handle `overloaded_error` with a friendly message and failover classification. (#832) — thanks @danielz1z. -- Anthropic: merge consecutive user turns (preserve newest metadata) before validation to avoid incorrect role errors. -- Messaging: enforce context isolation for message tool sends; keep typing indicators alive during tool execution. -- Auto-reply: `/status` allowlist behavior, reasoning-tag enforcement on fallback, and system-event enqueueing for elevated/reasoning toggles. +- 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. - Auto-reply: resolve ambiguous `/model` matches; fix streaming block reply media handling; keep >300 char heartbeat replies instead of dropping. -- 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. -- Telegram: preserve forum topic thread ids, persist polling offsets, respect account bindings in webhook mode, and show typing indicator in General topics. -- Slack: accept slash commands with or without leading `/` for custom command configs. -- Cron: persist disabled jobs correctly; accept `jobId` aliases for update/run/remove params. -- 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. -- 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. -- 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)". -- Connections UI: polish multi-account account cards. +- 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. ### Maintenance - Dependencies: bump Pi packages to 0.45.3 and refresh patched pi-ai. diff --git a/README.md b/README.md index c7046da96..3163819b1 100644 --- a/README.md +++ b/README.md @@ -475,17 +475,17 @@ Thanks to all clawtributors: hsrvc magimetal meaningfool NicholasSpisak abhisekbasu1 claude jamesgroat dantelex daveonkels vrknetha radek-paclt mteam88 Eng. Juan Combetto dbhurley Mariano Belinky julianengel benithors sreekaransrinath gupsammy cristip73 nachoiacovino Vasanth Rao Naik Sabavat lc0rp scald andranik-sahakyan nachx639 davidguttman sircrumpet peschee rafaelreis-r - lutr0 thewilloftheshadow emanuelst KristijanJovanovski osolmaz kiranjd Sebastian Barrios sheeek onutc CashWilliams - manuelhettich minghinmatthewlam myfunc buddyh mcinteerj timkrase obviyus azade-c bjesuiter superman32432432 - Yurii Chukhlib antons austinm911 blacksmith-sh[bot] HeimdallStrategy imfing jarvis-medmatic mahmoudashraf93 petter-b pkrmf - RandyVentures dan-dr jalehman jonasjancarik Keith the Silly Goose L36 Server mitschabaude-bot neist Friederike Seiler gabriel-trigo - iamadig Kit koala73 manmal ogulcancelik pasogott petradonka roshanasingh4 VACInc zats - Chris Taylor Django Navarro ngutman pcty-nextgen-service-account rubyrunsstuff Syhids Aaron Konyer danielz1z erik-agens erikpr1994 - fcatuhe gumadeiras henrino3 jayhickey Jonathan D. Rhyne (DJ-D) juanpablodlc jverdi mickahouan mjrussell oswalpalash - p6l-richard philipp-spiess Sash Catanzarite VAC zknicker adam91holt alejandro maza andrewting19 Asleep123 bolismauro - cash-echo-bot Clawd conhecendocontato Drake Thomsen evalexpr gtsifrikas HazAT hrdwdmrbl hugobarauna Jarvis - kitze kkarimi levifig Lloyd loukotal Marc martinpucik Miles mrdbstn MSch - Mustafa Tag Eldeen nexty5870 prathamdby reeltimeapps RLTCmpe Rolf Fredheim Rony Kelner Samrat Jha siraht snopoke - The Admiral wes-davis wstock YuriNachos Zach Knickerbocker Azade carlulsoe ddyo Erik latitudeki5223 - Manuel Maly Mourad Boustani pcty-nextgen-ios-builder Quentin Randy Torres ratulsarna thesash William Stock + ratulsarna lutr0 thewilloftheshadow emanuelst KristijanJovanovski osolmaz kiranjd Sebastian Barrios sheeek onutc + CashWilliams manuelhettich minghinmatthewlam myfunc buddyh mcinteerj timkrase obviyus azade-c danielz1z + bjesuiter superman32432432 Yurii Chukhlib antons austinm911 blacksmith-sh[bot] HeimdallStrategy imfing jarvis-medmatic mahmoudashraf93 + petter-b pkrmf RandyVentures dan-dr jalehman jonasjancarik Keith the Silly Goose L36 Server mitschabaude-bot neist + Friederike Seiler gabriel-trigo iamadig Kit koala73 manmal ogulcancelik pasogott petradonka roshanasingh4 + VACInc zats Chris Taylor Django Navarro ngutman pcty-nextgen-service-account rubyrunsstuff Syhids Aaron Konyer erik-agens + erikpr1994 fcatuhe gumadeiras henrino3 jayhickey Jonathan D. Rhyne (DJ-D) juanpablodlc jverdi mickahouan mjrussell + oswalpalash p6l-richard philipp-spiess Sash Catanzarite VAC zknicker adam91holt alejandro maza andrewting19 Asleep123 + bolismauro cash-echo-bot Clawd conhecendocontato Drake Thomsen evalexpr grp06 gtsifrikas HazAT hrdwdmrbl + hugobarauna Jarvis kitze kkarimi levifig Lloyd loukotal Marc martinpucik Miles + mrdbstn MSch Mustafa Tag Eldeen nexty5870 prathamdby reeltimeapps RLTCmpe Rolf Fredheim Rony Kelner Samrat Jha + siraht snopoke The Admiral wes-davis wstock YuriNachos Zach Knickerbocker Azade carlulsoe ddyo + Erik latitudeki5223 Manuel Maly Mourad Boustani pcty-nextgen-ios-builder Quentin Randy Torres thesash William Stock

diff --git a/package.json b/package.json index ee0433330..90bc4905f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "clawdbot", - "version": "2026.1.11-4", + "version": "2026.1.12", "description": "WhatsApp gateway CLI (Baileys web) with Pi RPC agent", "type": "module", "main": "dist/index.js",