* cron: skip delivery for HEARTBEAT_OK responses When an isolated cron job has deliver:true, skip message delivery if the response is just HEARTBEAT_OK (or contains HEARTBEAT_OK at edges with short remaining content <= 30 chars). This allows cron jobs to silently ack when nothing to report but still deliver actual content when there is something meaningful to say. Media is still delivered even if text is HEARTBEAT_OK, since the presence of media indicates there's something to share. * fix(heartbeat): make ack padding configurable * chore(deps): update to latest --------- Co-authored-by: Josh Lehman <josh@martian.engineering>
10 KiB
10 KiB
Changelog
Why this looks different: the project was renamed from Clawdis → Clawdbot. To make the transition clear, releases now use date-based versions (YYYY.M.D) and the changelog is compressed into milestone summaries. Full detail still lives in git history and the docs.
Unreleased
Fixes
- Onboarding: resolve CLI entrypoint when running via
npxso gateway daemon install works without a build step. - Linux: auto-attempt lingering during onboarding (try without sudo, fallback to sudo) and prompt on install/restart to keep the gateway alive after logout/idle. Thanks @tobiasbischoff for PR #237.
- TUI: migrate key handling to the updated pi-tui Key matcher API.
- macOS: prefer gateway config reads/writes in local mode (fall back to disk if the gateway is unavailable).
- macOS: local gateway now connects via tailnet IP when bind mode is
tailnet/auto. - macOS: Connections settings now use a custom sidebar to avoid toolbar toggle issues, with rounded styling and full-width row hit targets.
- macOS: drop deprecated
afterMsfrom agent wait params to match gateway schema. - Auth: add OpenAI Codex OAuth support and migrate legacy oauth.json into auth.json.
- Model:
/modellist shows auth source (masked key or OAuth email) per provider. - Model:
/model listis an alias for/model. - Model:
/modeloutput now includes auth source location (env/auth.json/models.json). - Model: avoid duplicate
missing (missing)auth labels in/modellist output. - Docs: clarify auth storage, migration, and OpenAI Codex OAuth onboarding.
- Sandbox: copy inbound media into sandbox workspaces so agent tools can read attachments.
- Control UI: show a reading indicator bubble while the assistant is responding.
- Control UI: animate reading indicator dots (honors reduced-motion).
- Control UI: stabilize chat streaming during tool runs (no flicker/vanishing text; correct run scoping).
- Status: show runtime (docker/direct) and move shortcuts to
/help. - Status: show model auth source (api-key/oauth).
- Block streaming: avoid splitting Markdown fenced blocks and reopen fences when forced to split.
- Block streaming: preserve leading indentation in block replies (lists, indented fences).
- Docs: document systemd lingering and logged-in session requirements on macOS/Windows.
- Auto-reply: unify tool/block/final delivery across providers and apply consistent heartbeat/prefix handling. Thanks @MSch for PR #225 (superseded commit
92c953d074). - Heartbeat: make HEARTBEAT_OK ack padding configurable across heartbeat and cron delivery. (#238) — thanks @jalehman
Maintenance
- Deps: bump pi-* stack, Slack SDK, discord-api-types, file-type, zod, and Biome.
- Skills: add CodexBar model usage helper with macOS requirement metadata.
- Lint: organize imports and wrap long lines in reply commands.
- Deps: update to latest across the repo.
2026.1.5-3
Fixes
- NPM package: include missing runtime dist folders (slack/signal/imessage/tui/wizard/control-ui/daemon) to avoid
ERR_MODULE_NOT_FOUNDin Node 25 npx installs.
2026.1.5-2
Fixes
- NPM package: include
dist/sessionssoclawdbot agentresolves session helpers in npx installs. - Node 25: avoid unsupported directory import by targeting
qrcode-terminal/vendor/QRCode/*.jsmodules.
2026.1.5-1
Fixes
- NPM package: include
dist/sessionssoclawdbot agentresolves session helpers in npx installs. - Node 25: avoid unsupported directory import by targeting
qrcode-terminal/vendor/QRCode/index.js.
2026.1.5
Highlights
- Models: add image-specific model config (
agent.imageModel+ fallbacks) and scan support. - Agent tools: new
imagetool routed to the image model (when configured). - Config: default model shorthands (
opus,sonnet,gpt,gpt-mini,gemini,gemini-flash). - Docs: document built-in model shorthands + precedence (user config wins).
Fixes
- Control UI: render Markdown in tool result cards.
- Control UI: prevent overlapping action buttons in Discord guild rules on narrow layouts.
- Android: tapping the foreground service notification brings the app to the front. (#179) — thanks @Syhids
- Cron tool uses
idfor update/remove/run/runs (aligns with gateway params). (#180) — thanks @adamgall - Control UI: chat view uses page scroll with sticky header/sidebar and fixed composer (no inner scroll frame).
- macOS: treat location permission as always-only to avoid iOS-only enums. (#165) — thanks @Nachx639
- macOS: make generated gateway protocol models
Sendablefor Swift 6 strict concurrency. (#195) — thanks @andranik-sahakyan - macOS: bundle QR code renderer modules so DMG gateway boot doesn't crash on missing qrcode-terminal vendor files.
- macOS: parse JSON5 config safely to avoid wiping user settings when comments are present.
- WhatsApp: suppress typing indicator during heartbeat background tasks. (#190) — thanks @mcinteerj
- WhatsApp: mark offline history sync messages as read without auto-reply. (#193) — thanks @mcinteerj
- Discord: avoid duplicate replies when a provider emits late streaming
text_endevents (OpenAI/GPT). - CLI: use tailnet IP for local gateway calls when bind is tailnet/auto (fixes #176).
- Env: load global
$CLAWDBOT_STATE_DIR/.env(~/.clawdbot/.env) as a fallback after CWD.env. - Env: optional login-shell env fallback (opt-in; imports expected keys without overriding existing env).
- Agent tools: OpenAI-compatible tool JSON Schemas (fix
browser, normalize union schemas). - Onboarding: when running from source, auto-build missing Control UI assets (
pnpm ui:build). - Discord/Slack: route reaction + system notifications to the correct session (no main-session bleed).
- Agent tools: honor
agent.toolsallow/deny policy even when sandbox is off. - Discord: avoid duplicate replies when OpenAI emits repeated
message_endevents. - Commands: unify /status (inline) and command auth across providers; group bypass for authorized control commands; remove Discord /clawd slash handler.
- Control UI: render Markdown in chat messages (sanitized).
2026.1.4
Highlights
- Rename completion: all CLIs, paths, bundle IDs, env vars, and docs standardized on Clawdbot.
- Agent-to-agent relay:
sessions_sendping‑pong withREPLY_SKIPplus announce step withANNOUNCE_SKIP. - Gateway quality-of-life: config hot reload, port config support, and Control UI base paths.
- Sandbox additions: per-session Docker sandbox with hardened limits + optional sandboxed Chromium.
- New node capability:
location.getacross macOS/iOS/Android (CLI + tools). - Models CLI: scan OpenRouter free models (tools/images), manage aliases/fallbacks, and show last-used model in status.
Breaking
- Tool names drop the
clawdbot_prefix (browser,canvas,nodes,cron,gateway). - Bash tool removes node-pty
stdinMode: "pty"support (use tmux for real TTYs). - Primary session key is fixed to
main(orglobalfor global scope).
Fixes
- Doctor migrates legacy Clawdis config/service installs and normalizes sandbox Docker names.
- Doctor checks sandbox image availability and offers to build or fall back to legacy images.
- Presence beacons keep node lists fresh; Instances view stays accurate.
- Block streaming/chunking reliability (Telegram/Discord ordering, fewer duplicates).
- WhatsApp GIF playback for MP4-based GIFs.
- Onboarding + Control UI basePath handling fixes and UI polish.
- Clearer tool summaries, reduced log noise, and safer watchdog/queue behavior.
- Canvas host watcher resilience; build and packaging edge cases cleaned up.
Docs
- Sandbox setup, hot reload, port config, and session announce step coverage.
- Skills and onboarding clarifications + additional examples.
2026.1.3 (beta 5)
Breaking
- Skills config moved under
skills.*(newskills.entries,skills.allowBundled). - Group session keys now
surface:group:<id>/surface:channel:<id>; legacygroup:*removed. - Discord config refactor;
discord.allowFrom+discord.requireMentionremoved. - Discord/Telegram require
enabled: truein config when using env tokens. - Routing
allowFrom/mention settings moved to per-surface group settings.
Highlights
- Talk Mode (continuous voice) with ElevenLabs TTS on macOS/iOS/Android.
- Discord: expanded tool actions, richer routing, and threaded reply tags.
- Auto-reply queue modes + session model overrides; TUI upgrades.
- Nix mode (declarative config) and Docker setup flow.
- Onboarding wizard + configure/doctor/update flows.
- Signal + iMessage providers; new skills (Trello, Things, Notes/Reminders, tmux coding).
- Browser tooling upgrades (remote CDP, no-sandbox, profiles).
Fixes
- macOS codesign/TCC hardening and menu/UI stability improvements.
- Streaming/typing fixes; per-provider chunk limit tuning.
- Remote gateway auth + token handling tightened.
- Camera capture reliability and media sizing fixes.
2025.12.27 (betas 3–4)
Highlights
- First-class tools replace
clawdbot-*skills (browser, canvas, nodes, cron). - Per-session model selection and custom model providers.
- Group activation commands; Discord provider for DMs/guilds.
- Gateway webhooks + Gmail Pub/Sub hooks.
- Command queue modes +
agent.maxConcurrentcap. - Background bash tasks with
processtool; gateway in-process restart.
Fixes
- Packaging fixes, heartbeat cleanup, WhatsApp reconnect reliability.
- macOS menu/Chat UI polish and presence reporting fixes.
2025.12.21 (beta 2)
Highlights
- Bundled gateway packaging + DMG distribution pipeline.
- Skills platform (bundled/managed/workspace) with install gating + UI.
- Onboarding polish and agent UX improvements.
- Canvas host served from Gateway; browser control simplification.
2025.12.19 (beta 1)
Highlights
- First Clawdbot release: Gateway WS control plane + optional Bridge.
- macOS menu bar companion app with Voice Wake + WebChat.
- iOS node pairing with Canvas surface.
- WhatsApp groups, thinking/verbose directives, health/status tooling.
Breaking
- Switched to Pi-only agent runtime; legacy providers removed.
- Gateway became the single source of truth (no ad-hoc direct sends).
2025.12.05–2025.12.03 (pre-Clawdbot)
Highlights
- Pi-only agent path and web-only gateway workflow.
- Thinking/verbose directives, group chat support, and heartbeat controls.
clawdbot agentCLI added; session tables and health reporting.
2025.11.28–2025.11.25 (early web-only)
- Heartbeat CLI + interval handling.
- Media MIME sniffing, size caps, and timeout fallbacks.
- Web provider reconnects and early stability fixes.