Commit Graph

2013 Commits

Author SHA1 Message Date
Luke K (pr-0f3t)
5d34e27078 Revert: non-PR file edits 2026-01-08 23:19:44 -05:00
Peter Steinberger
64fc5fa9fc fix: allow default model outside allowlist 2026-01-09 04:18:30 +00:00
Luke K (pr-0f3t)
16f893c46b Tests: align google shared expectations 2026-01-08 23:12:37 -05:00
Peter Steinberger
7e4d5c9f84 test: align status and google-shared expectations 2026-01-09 05:03:12 +01:00
Luke
1be8a39442
Merge branch 'main' into commands-list-clean 2026-01-08 22:58:54 -05:00
Peter Steinberger
709d5d9cd6 fix: add spacing to daemon status output 2026-01-09 03:52:51 +00:00
Peter Steinberger
9a8fe4d683 feat(agent): add claude cli runner 2026-01-09 04:52:37 +01:00
Luke K (pr-0f3t)
1309cee124 Auto-reply: fix status command lint 2026-01-08 22:51:35 -05:00
Luke K (pr-0f3t)
8aa80fa464 Auto-reply: tidy help message 2026-01-08 22:48:46 -05:00
Peter Steinberger
8e27ea7371 feat: add raw stream logging flags 2026-01-09 03:45:21 +00:00
Peter Steinberger
69546d563d fix: combine status usage and cost line 2026-01-09 03:45:01 +00:00
Peter Steinberger
16cfd24967 fix: colorize daemon status output 2026-01-09 03:22:02 +00:00
Luke
b97a9235e0
Merge branch 'main' into commands-list-clean 2026-01-08 22:19:52 -05:00
Peter Steinberger
3e19f82af2 fix: repair status reply call 2026-01-09 03:18:20 +00:00
Peter Steinberger
d8a23cf5ab fix: restore emoji-rich status output 2026-01-09 03:15:33 +00:00
Luke K (pr-0f3t)
6c8b2a8dc9 Auto-reply: organize status imports 2026-01-08 22:14:24 -05:00
Peter Steinberger
b3b84ffefa fix: fallback /model list when catalog is unavailable 2026-01-09 03:56:19 +01:00
Luke
e52a2888cc
Merge branch 'main' into commands-list-clean 2026-01-08 21:47:09 -05:00
Peter Steinberger
0cbc5fea93 fix: keep status for directive-only messages 2026-01-09 03:46:00 +01:00
Peter Steinberger
dc81d0a649 fix: improve /status auth label 2026-01-09 03:39:02 +01:00
Peter Steinberger
75d193a284 test: update google shared expectations 2026-01-09 02:34:16 +00:00
Peter Steinberger
3c79d5c711 fix: keep /status usage filtering 2026-01-09 03:31:02 +01:00
Peter Steinberger
151523f47b feat: add usage cost reporting 2026-01-09 02:29:54 +00:00
Peter Steinberger
1a295d9460 fix: improve status usage filtering and directives 2026-01-09 03:18:47 +01:00
Peter Steinberger
84f668f9c5 test: align google-shared expectations with pi-ai 0.40.0 2026-01-09 03:12:32 +01:00
Peter Steinberger
468889abef fix: refine status usage and elevated directives 2026-01-09 03:09:56 +01:00
Peter Steinberger
8a3e100ad1 test: update google-shared expectations 2026-01-09 03:04:16 +01:00
Kasper Neist
3b78870f33 feat(system-prompt): add messaging guidance section
Adds a brief 'Messaging' section to the system prompt to guide agents on:
- Reply in session = auto-routes to source provider
- Cross-session = use sessions_send
- Never use bash/curl for provider messaging

This helps prevent agents from using shell workarounds for messaging
when Clawdbot already handles routing internally.
2026-01-09 03:00:40 +01:00
Luke
c678216ac2
Merge branch 'main' into commands-list-clean 2026-01-08 20:58:26 -05:00
Peter Steinberger
0a722de65c test: cover log line parsing 2026-01-09 02:54:04 +01:00
Peter Steinberger
3a99ac7e9a fix: honor mention-bypass for group commands 2026-01-09 02:52:44 +01:00
Peter Steinberger
efa5f0bfe0 feat: improve logs output and docs 2026-01-09 02:51:17 +01:00
Peter Steinberger
e1789ba9e5 fix: set gemini default model for api-key auth (#489) - thanks @jonasjancarik 2026-01-09 02:49:42 +01:00
Jonáš Jančařík
302d51fd40 feat: add Gemini API key onboarding 2026-01-09 02:45:15 +01:00
Ogulcan Celik
7bb0841f42 fix: prevent systemd hang on restart with podman sandboxes
Add KillMode=process to generated systemd unit file. Without this,
podman's conmon processes (which monitor sandbox containers) block
shutdown since they're children of the gateway process.

This preserves the desired behavior of keeping containers alive
across restarts while preventing systemd from waiting indefinitely.
2026-01-09 02:37:00 +01:00
Peter Steinberger
a738ade0ec chore: update dependencies 2026-01-09 02:34:39 +01:00
Peter Steinberger
97635a8966 test: assert WhatsApp queued routing context (#534) thanks @mcinteerj 2026-01-09 02:04:05 +01:00
Peter Steinberger
f2246df875 fix: route WhatsApp queued replies to sender (#534) 2026-01-09 02:03:30 +01:00
Jake
a52e75d978 WhatsApp: fix routing for queued messages by using correct OriginatingTo 2026-01-09 02:01:33 +01:00
Peter Steinberger
455723375e fix: show directive options on query 2026-01-09 01:40:44 +01:00
Peter Steinberger
948ce5eb5f feat(models): add oauth auth health 2026-01-09 00:34:38 +00:00
Luke
daafa9e3bc
Merge branch 'main' into commands-list-clean 2026-01-08 19:33:56 -05:00
Jonathan D. Rhyne
debdd2aa95 fix(tui): status bar not updating after /verbose, /reasoning, /think commands
The status bar refresh failed because refreshSessionInfo() compared
currentSessionKey (e.g. 'main') against the canonical session keys
returned by the gateway (e.g. 'agent:default:main').

This fix uses parseAgentSessionKey to also match canonical keys by
their 'rest' component, allowing 'main' to match 'agent:default:main'.

Fixes: status bar showing stale values after setting changes
AI-assisted: yes (Claude)
Testing: lightly tested (build passes, logic verified)
2026-01-09 01:05:10 +01:00
Peter Steinberger
714e170c16 feat(tui): add agent picker and agents list rpc 2026-01-09 01:05:10 +01:00
Peter Steinberger
e5dbba7b67 fix: sort imports for lint 2026-01-09 00:57:17 +01:00
Peter Steinberger
27adabbeea test: cover reasoning directive spacing (thanks @joshp123) (#539) 2026-01-09 00:51:05 +01:00
Peter Steinberger
f666f60731 fix: preserve inline directive spacing tests (thanks @joshp123) (#539) 2026-01-09 00:37:40 +01:00
Josh Palmer
43545a4864 🤖 codex: preserve spacing after inline directives (issue-telegram-inline-spacing) 2026-01-09 00:37:40 +01:00
Peter Steinberger
4e92ccc0dd style: format 2026-01-09 00:33:09 +01:00
Peter Steinberger
71309c064a fix: drop redundant telegram audit union 2026-01-09 00:33:09 +01:00
Peter Steinberger
01b8f4582f fix: align discord monitor + whatsapp activity 2026-01-09 00:33:09 +01:00
Peter Steinberger
e09708e82d feat: sync skills into sandbox workspace 2026-01-09 00:33:09 +01:00
Peter Steinberger
561fa99d95 feat(providers): show status spinner message 2026-01-08 23:30:38 +00:00
Peter Steinberger
7ece3717e6 refactor(pairing): centralize reply formatting 2026-01-08 23:29:23 +00:00
Peter Steinberger
e0439df4ce feat(pairing): show sender ids across providers 2026-01-08 23:19:13 +00:00
Peter Steinberger
7c7858a519 refactor(signal): normalize sender identity 2026-01-08 23:08:25 +00:00
Kasper Neist
9e9f2babeb fix(signal): use sourceUuid as fallback when sourceNumber is null
Users without a visible phone number (like some Signal users)
were being silently dropped. Now falls back to UUID for sender ID.

- Add sourceUuid to SignalEnvelope type
- Use sourceUuid when sourceNumber is not available
- Only check against bot account when sourceNumber exists (avoid UUID comparison issues)
2026-01-08 23:08:25 +00:00
Peter Steinberger
490bbd10fc feat(telegram): show user id in pairing 2026-01-09 00:01:23 +01:00
Shadow
9f8336c92b
Discord: harden gateway resilience 2026-01-08 16:52:44 -06:00
Peter Steinberger
769b76cd40 test(provider-activity): restore real timers 2026-01-08 23:52:07 +01:00
Peter Steinberger
69f8af530d feat(providers): improve doctor + status probes 2026-01-08 23:48:37 +01:00
Peter Steinberger
41d484d239 test: cover browser and canvas verbose summaries 2026-01-08 23:48:37 +01:00
Peter Steinberger
2f1ce51b2c test: stabilize doctor + bash tool tests 2026-01-08 23:44:54 +01:00
Peter Steinberger
cdfae0b9d3 fix(daemon): normalize audit paths 2026-01-08 22:28:51 +00:00
Peter Steinberger
ed80860c34 chore(format): apply biome fixes 2026-01-08 22:22:17 +00:00
Peter Steinberger
1f215848be chore(test): align auth choice options formatting 2026-01-08 23:18:33 +01:00
Peter Steinberger
b01d7e39d5 fix(onboarding): preflight claude cli keychain 2026-01-08 23:18:33 +01:00
Peter Steinberger
36fa3c3cd3 fix: improve ws close diagnostics 2026-01-08 22:18:07 +00:00
Peter Steinberger
1cf8503017 fix(daemon): audit runtime best practices 2026-01-08 22:18:07 +00:00
Peter Steinberger
cd2f3bd355 feat(status): add Telegram/WhatsApp troubleshooting warnings 2026-01-08 23:14:11 +01:00
Peter Steinberger
a33271d374 refactor: share paren-aware chunk break scan 2026-01-08 23:09:34 +01:00
Peter Steinberger
7392387ec1 feat(status): warn on Discord message content intent 2026-01-08 23:07:34 +01:00
Peter Steinberger
b48ed56635 test: add DM elevated regression coverage 2026-01-08 22:58:15 +01:00
Peter Steinberger
014667e00b fix: tighten group elevated targeting 2026-01-08 22:57:18 +01:00
Peter Steinberger
cda2025c49 fix: align env config schema 2026-01-08 22:57:18 +01:00
Peter Steinberger
59f89678b2 feat: allow inline env vars in config 2026-01-08 22:57:18 +01:00
Peter Steinberger
9a1267b530 fix(doctor): run legacy migrations in non-interactive 2026-01-08 21:37:22 +00:00
Peter Steinberger
5b46214379 refactor(cron): centralize telegram targets + delivery helpers 2026-01-08 21:36:53 +00:00
Peter Steinberger
5939dff092 fix: avoid synthesizing agent defaults 2026-01-08 22:26:29 +01:00
Luke
ab28eb5109
Merge branch 'main' into commands-list-clean 2026-01-08 16:25:56 -05:00
Peter Steinberger
2c7d64232e feat: enable adaptive context pruning by default 2026-01-08 22:23:03 +01:00
Luke
5965708f1d
Merge branch 'main' into commands-list-clean 2026-01-08 16:22:25 -05:00
Peter Steinberger
d58cdf7c9f fix: normalize gateway cli option strings 2026-01-08 22:18:06 +01:00
Peter Steinberger
35ba99c245 fix: honor non-interactive legacy migrations 2026-01-08 22:13:57 +01:00
Peter Steinberger
e75ca23e7d test(cron): cover telegram topic delivery (#478) (thanks @nachoiacovino) 2026-01-08 21:13:39 +00:00
Nacho Iacovino
5391f1141e fix(cron): parse :topic: suffix for Telegram topic delivery
When cron jobs specify a Telegram topic in the 'to' field like
'-1003420657307:topic:60', the delivery code now correctly parses
this into separate chatId and messageThreadId values.

Previously, the entire string was passed as chatId, causing messages
to fail delivery to forum topics.
2026-01-08 21:12:15 +00:00
Peter Steinberger
699ba410fe fix: resolve WhatsApp LID inbound mapping 2026-01-08 22:08:54 +01:00
Josh Palmer
2fae8eda66 🤖 codex: strip empty assistant blocks from history (#210) 2026-01-08 21:53:33 +01:00
Peter Steinberger
884e734809 feat(doctor): audit config + state permissions 2026-01-08 21:51:34 +01:00
Peter Steinberger
2d4ec35e1c feat(doctor): add repair/force flows 2026-01-08 21:47:35 +01:00
Peter Steinberger
0373574f0b refactor(telegram): centralize target parsing 2026-01-08 21:38:59 +01:00
Peter Steinberger
88039a69a2 style(cli): format daemon config warnings 2026-01-08 21:38:54 +01:00
Peter Steinberger
ea748f9440 fix(doctor): handle missing service readCommand 2026-01-08 21:38:51 +01:00
Luke
a574ae5415
Merge branch 'main' into commands-list-clean 2026-01-08 15:35:17 -05:00
Peter Steinberger
01641b34ea feat(doctor): audit supervisor config + docs 2026-01-08 21:28:48 +01:00
Peter Steinberger
58a9e35233 style(cron): format telegram target tests 2026-01-08 21:23:07 +01:00
Peter Steinberger
5fea53d89c fix(cron): parse telegram targets with prefixes (thanks @mitschabaude-bot) 2026-01-08 21:23:07 +01:00
Tobias Bischoff
7cffa65376
Merge branch 'main' into main 2026-01-08 21:16:47 +01:00
Azade
3a8d8bc6a4 fix(daemon): align systemd unit with documentation
Align generated systemd service file with docs:
https://docs.clawd.bot/gateway#supervision-systemd-user-unit

Adds:
- After=network-online.target
- Wants=network-online.target
- RestartSec=5
2026-01-08 21:16:19 +01:00
Tobias Bischoff
634f1389a4
Merge branch 'main' into main 2026-01-08 21:15:06 +01:00
Peter Steinberger
31fb5867e8 refactor(outbound): centralize telegram account defaults 2026-01-08 21:05:01 +01:00
Peter Steinberger
7905a27416 style: format gateway-cli log lines 2026-01-08 20:04:10 +00:00
Peter Steinberger
04e0e10411 fix: restore hidden gateway-daemon alias 2026-01-08 19:54:23 +00:00
Peter Steinberger
871c9e5286 fix(heartbeat): telegram accountId + cron jobId compat (#516, thanks @YuriNachos) 2026-01-08 20:47:22 +01:00
Yurii Chukhlib
9d42972b8a fix(heartbeat): pass accountId for Telegram delivery
Heartbeat Telegram delivery was failing when the bot token was
configured only via telegram.botToken in config (without TELEGRAM_BOT_TOKEN
environment variable).

Root cause: deliverOutboundPayloads was called without accountId parameter,
so sendMessageTelegram couldn't determine which account to use and couldn't
find the token from config.

Fix: Resolve default Telegram accountId when provider is "telegram" and pass
it to deliverOutboundPayloads. This follows the same pattern used elsewhere in
the codebase (e.g., cron uses resolveTelegramToken).

Changes:
- Added import for resolveDefaultTelegramAccountId
- Added accountId resolution for telegram provider
- Updated deliverOutboundPayloads call to include accountId

Fixes #318

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 20:47:22 +01:00
Yurii Chukhlib
4dac298ae2 fix(cron): use jobId parameter instead of id for AI tool schema
Fixes parameter mismatch between AI tool schema and internal validation.
The TypeBox schema now uses `jobId` for update/remove/run/runs actions,
matching what users expect based on the returned job objects.

Changes:
- Changed parameter from `id` to `jobId` in TypeBox schema for update/remove/run/runs
- Updated execute function to read `jobId` parameter
- Updated tests to use `jobId` in input parameters

The gateway protocol still uses `id` internally - the tool now maps
`jobId` from the AI to `id` for the gateway call.

Fixes #185

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 20:47:22 +01:00
Peter Steinberger
4a918ccf47 fix: avoid splitting outbound chunks inside parentheses (#499) — thanks @philipp-spiess 2026-01-08 20:39:28 +01:00
Philipp Spiess
4082b90aa4 Chunking: avoid splits inside parentheses 2026-01-08 20:38:00 +01:00
Peter Steinberger
ba19173b96 test: cover status model provider prefix 2026-01-08 20:23:38 +01:00
Peter Steinberger
393c414e90 refactor: split discord gateway helpers 2026-01-08 20:23:06 +01:00
Peter Steinberger
bf67b29a0e fix(telegram): resolve grammY fetch type mismatch (#512)
Co-authored-by: Yuri Chukhlib <yuri.v.chu@gmail.com>
2026-01-08 20:18:17 +01:00
Keith the Silly Goose
7866203c5c fix(status): include provider prefix in model display
The /status command was showing 'anthropic/claude-sonnet-4-5' even when
using 'google-antigravity/claude-sonnet-4-5' because buildStatusMessage
received only the model name without the provider prefix.

When resolveConfiguredModelRef parsed a model string without a slash,
it fell back to DEFAULT_PROVIDER ('anthropic'), causing the misleading
display.

Fix: Pass the full 'provider/model' string to buildStatusMessage so
the provider is correctly extracted and displayed.

🪿 Investigated and submitted by Keith the Silly Goose
2026-01-08 20:11:37 +01:00
Peter Steinberger
c54f2a122a fix: update changelog + prompt test 2026-01-08 20:08:27 +01:00
Josh Palmer
b7c900739e 🤖 codex: handle discord gateway error events (#504) 2026-01-08 20:06:02 +01:00
Josh Palmer
cc94db458c
🤖 codex: fix block reply ordering (#503)
What: serialize block reply sends, make typing non-blocking, add timeout fallback + abort-aware routing, and add regression tests.
Why: prevent out-of-order streamed blocks while keeping final fallback on timeouts.
Tests: ./node_modules/.bin/vitest run src/auto-reply/reply.block-streaming.test.ts src/auto-reply/reply/route-reply.test.ts
Tests: corepack pnpm lint && corepack pnpm build (pass). corepack pnpm test (ran locally; failure observed during run).

Co-authored-by: Josh Palmer <joshp123@users.noreply.github.com>
2026-01-08 19:30:24 +01:00
Gregor's Bot
7450aed663
fix: rename ClaudeBot to Clawdbot in system prompt (#502) 2026-01-08 11:24:00 -06:00
Luke K (pr-0f3t)
713eb898f6 Removed compact command changes from elsewhere 2026-01-08 10:41:09 -05:00
Luke
8445c9a5e8
Removing stray commits 2026-01-08 10:33:11 -05:00
LK
559e175b38 feat(commands): add /commands slash list 2026-01-08 16:23:36 +01:00
Tobias Bischoff
3149d6d331 Telegram: cast fetch to grammy client type 2026-01-08 15:16:53 +01:00
Tobias Bischoff
ecd4c9c4f5 Onboarding: add MiniMax hosted API key option 2026-01-08 15:10:18 +01:00
Peter Steinberger
c20a12aa7b fix: format onboarding hint 2026-01-08 12:25:39 +01:00
Peter Steinberger
a564558a67 chore: drop bun from daemon runtime options 2026-01-08 12:20:45 +01:00
Peter Steinberger
51c2d29693 feat: auto-install gateway in quickstart 2026-01-08 12:19:45 +01:00
Peter Steinberger
8ed412db22 feat: streamline quickstart provider selection 2026-01-08 12:19:16 +01:00
Peter Steinberger
e210069dbd fix: soften codex oauth expiry hint 2026-01-08 12:16:09 +01:00
Peter Steinberger
4dde870121 docs: split onboarding mode hints 2026-01-08 12:14:36 +01:00
Peter Steinberger
959a19d8ae fix: clean lint issues 2026-01-08 11:07:11 +00:00
Peter Steinberger
63bad210c9 docs: tighten onboarding quickstart hint 2026-01-08 12:06:45 +01:00
Peter Steinberger
4c09acb2a9 feat: add telegram topic delivery for cron 2026-01-08 11:05:28 +00:00
Peter Steinberger
874c7465a5 fix: surface control ui config in daemon status 2026-01-08 11:05:28 +00:00
Peter Steinberger
e7b3cc3d3d fix: add provider account metadata 2026-01-08 11:05:28 +00:00
Peter Steinberger
fd04bdb9cf chore: tighten self-update guidance 2026-01-08 12:04:29 +01:00
Peter Steinberger
63ff5819b1 fix: retry telegram poll conflicts 2026-01-08 12:04:21 +01:00
Peter Steinberger
d42444928b chore: add provider logs command 2026-01-08 12:01:06 +01:00
Peter Steinberger
a483e58860 feat: add quickstart onboarding defaults 2026-01-08 11:54:40 +01:00
Peter Steinberger
f24a4626e3 fix(config): reject shared agentDir 2026-01-08 11:54:26 +01:00
Peter Steinberger
390b102563 chore: show dm policy + allowlist preview 2026-01-08 11:25:17 +01:00
Peter Steinberger
8803787e48 chore: fallback providers status when gateway down 2026-01-08 11:05:03 +01:00
Peter Steinberger
a851444a1d chore: expand provider details in status 2026-01-08 11:02:13 +01:00
Peter Steinberger
e8698fb9ef chore: show dashboard url in status 2026-01-08 10:51:55 +01:00
Peter Steinberger
af2accf5e3 test: force bun fetch path in telegram send 2026-01-08 10:37:29 +01:00
Peter Steinberger
fa501e7730 fix: import path in doctor 2026-01-08 10:36:20 +01:00
Peter Steinberger
73988506fe feat: allow hook model overrides 2026-01-08 09:33:42 +00:00
Peter Steinberger
e6f8e1e531 fix(telegram): restrict native fetch to bun 2026-01-08 10:31:16 +01:00
Peter Steinberger
4019fafc2c chore: add spacing to status output 2026-01-08 10:30:57 +01:00
Peter Steinberger
21ef1761c6 chore: prompt to install or start gateway 2026-01-08 10:29:48 +01:00
Peter Steinberger
f6b1dc452a chore: surface daemon status help 2026-01-08 10:29:44 +01:00
Peter Steinberger
a54442866a chore: refine daemon runtime hint 2026-01-08 10:29:40 +01:00
Peter Steinberger
b80b3a38bf chore: clarify telegram docs links 2026-01-08 10:29:36 +01:00
Peter Steinberger
bfd3eb46c7 docs: drop legacy telegram pairing mention 2026-01-08 09:57:03 +01:00
Peter Steinberger
bce3cc992f fix: group /model list output 2026-01-08 09:44:59 +01:00
Peter Steinberger
0b611fc354 docs: add OAuth deep dive 2026-01-08 09:29:29 +01:00
Peter Steinberger
908a7e4fcb chore: sync ci tasks and relax telegram test timeouts 2026-01-08 09:09:33 +01:00
Peter Steinberger
2450af26ec test: fix telegram fetch expectation 2026-01-08 07:51:58 +00:00
Peter Steinberger
44441dd5d8 fix: clarify daemon status probe target 2026-01-08 08:50:09 +01:00
Peter Steinberger
8930ec32cb feat: add slack multi-account routing 2026-01-08 08:49:16 +01:00
Peter Steinberger
00c1403f5c fix: unblock ci 2026-01-08 07:41:39 +00:00
Peter Steinberger
1b2957d050 style: lint cleanup 2026-01-08 08:40:02 +01:00
Peter Steinberger
9a11325cc9 fix: daemon status guidance and telegram fetch 2026-01-08 08:39:55 +01:00
Peter Steinberger
5b397c0f15 style: tidy cli formatting 2026-01-08 08:26:40 +01:00
Peter Steinberger
c7cade5232 style: tidy gateway auth imports 2026-01-08 08:26:40 +01:00
Peter Steinberger
a676e16fbb feat: expand daemon status diagnostics 2026-01-08 08:26:40 +01:00
Peter Steinberger
97cb469faf chore(telegram): fix bun comment 2026-01-08 08:26:40 +01:00
Peter Steinberger
c241cb25bd fix(telegram): gate native fetch to bun 2026-01-08 08:26:40 +01:00
Peter Steinberger
c1e97fab80 feat(cli): clarify agents list output 2026-01-08 08:26:40 +01:00
Peter Steinberger
b367ed75bf fix: wire gateway auth diagnostics into doctor 2026-01-08 08:26:40 +01:00
Peter Steinberger
629eec11cc feat: improve agents cli automation 2026-01-08 08:26:40 +01:00
Peter Steinberger
5565dcd447 fix: tighten gateway bind auth diagnostics 2026-01-08 08:26:40 +01:00
Peter Steinberger
debfce5a77 test: add agent allowlist coverage 2026-01-08 07:14:08 +00:00
Peter Steinberger
2b29b86ab5 feat: add agents_list tool 2026-01-08 07:06:36 +00:00
Peter Steinberger
0ba72477de feat: allow sessions_spawn cross-agent 2026-01-08 06:56:34 +00:00
Peter Steinberger
d1ceb3aa60 feat: add logs cli and restart hints 2026-01-08 06:56:34 +00:00
Peter Steinberger
c9e07616c7 refactor: centralize WhatsApp config merging 2026-01-08 06:56:34 +00:00
Peter Steinberger
e09d44e63a test(cli): cover provider login/logout 2026-01-08 07:41:17 +01:00
Peter Steinberger
e83c6ac088 feat(cli): move provider login/logout 2026-01-08 07:40:08 +01:00
Peter Steinberger
903f5af59c feat: add skills CLI 2026-01-08 07:23:05 +01:00
Peter Steinberger
d14e05ac45 refactor: centralize provider helpers 2026-01-08 07:20:10 +01:00
Peter Steinberger
6a81652ebf fix(typing): keep tool-start ttl mode-safe (#452, thanks @thesash) 2026-01-08 06:18:35 +00:00
Sash Catanzarite
29c5ed54b2 feat(typing): trigger indicator on tool start events
Add signalToolStart to TypingSignaler and call it from onAgentEvent
when tools begin executing. This keeps the typing indicator visible
during long-running tool operations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 06:18:35 +00:00
Peter Steinberger
19595a8f99 refactor: simplify cli commands 2026-01-08 07:16:12 +01:00
Randy Torres
3c2e848a8e Docker: fix WhatsApp config typing in onboarding + add tests 2026-01-08 06:05:56 +00:00
Peter Steinberger
367ee8ea7b fix: stabilize telegram media group tests 2026-01-08 05:48:25 +00:00
Peter Steinberger
9b152ecb12 refactor: split providers commands 2026-01-08 06:46:40 +01:00
Peter Steinberger
f818d03ebf style: format taglines 2026-01-08 06:37:03 +01:00
Peter Steinberger
8a7862452e feat: add CLI taglines 2026-01-08 06:37:03 +01:00
Peter Steinberger
b50ea3ec59 feat: refine providers onboarding and cli 2026-01-08 06:25:21 +01:00
Peter Steinberger
6850e7b477 fix: align tailscale formatting 2026-01-08 05:21:20 +00:00
Peter Steinberger
4b9e8b580a fix: stabilize bridge loopback + discord client 2026-01-08 05:15:51 +00:00
Peter Steinberger
b8a186fbd3 refactor: polish CLI theme + progress helpers 2026-01-08 06:02:36 +01:00
Peter Steinberger
e758cccd46 fix(discord): remove eventQueue client option 2026-01-08 06:00:20 +01:00
Sash Catanzarite
a6a550032a fix(typing): refresh TTL on every startTypingLoop call
Previously, startTypingLoop would return early if the typing timer was
already running, which meant the TTL would never get refreshed during
long tool executions. This caused the typing indicator to stop after
2 minutes even if tools were still running.

Now we refresh the TTL at the start of startTypingLoop, before the
early-return checks. This keeps typing alive during long operations.
2026-01-08 05:45:46 +01:00
Peter Steinberger
dc3e3f27d4 style: apply lint fixes 2026-01-08 04:44:15 +00:00
Peter Steinberger
5b45a143a1 fix: stabilize media paths and logs 2026-01-08 04:41:01 +00:00
Peter Steinberger
9c9d191d6f feat: improve cli setup flow 2026-01-08 05:33:54 +01:00
Peter Steinberger
4ef2fd328d test: cover multi-media prompt note 2026-01-08 05:30:04 +01:00
Peter Steinberger
3f11927cd9 chore: update ClawdBot CLI branding 2026-01-08 05:20:39 +01:00
Peter Steinberger
ab8db941d0 feat: expand inbound media notes 2026-01-08 05:20:39 +01:00
Peter Steinberger
2287d32263 feat: add model scan progress callbacks 2026-01-08 05:20:39 +01:00
Peter Steinberger
28cd2e4c24 feat: refresh CLI output styling and progress 2026-01-08 05:20:39 +01:00
Peter Steinberger
ab98ffe9fe fix: force telegram native fetch under bun 2026-01-08 05:20:38 +01:00
Peter Steinberger
3178a3014d feat(models): improve OpenRouter free scan 2026-01-08 05:20:19 +01:00
Peter Steinberger
6feeb651ee fix(ci): normalize windows log whitespace 2026-01-08 03:59:52 +00:00
Peter Steinberger
609df06cb7 fix(ci): stabilize windows tests 2026-01-08 03:54:35 +00:00
Peter Steinberger
0bcf3f40f4 fix(ci): sync logs tail protocol artifacts 2026-01-08 03:49:19 +00:00
Peter Steinberger
64fc3c068d feat: add gateway logs tab 2026-01-08 03:44:08 +00:00
Peter Steinberger
ad6095c807 fix(ci): normalize windows test output 2026-01-08 03:44:08 +00:00
Peter Steinberger
0af3af34a1 fix(ci): stabilize windows bash tests 2026-01-08 03:29:05 +00:00
Peter Steinberger
35759e409a fix(ci): harden windows tests 2026-01-08 03:19:43 +00:00
Peter Steinberger
15379dedf0 fix(telegram): voice-note tag defaults (#188, thanks @manmal) 2026-01-08 03:15:08 +00:00
Manuel Maly
2972fce02c fix: flip audio default to file (backward compat)
- Default: sendAudio (file with metadata) - preserves old behavior
- Opt-in: [[audio_as_voice]] tag for voice bubble

This is non-breaking - existing integrations keep working.
2026-01-08 03:15:08 +00:00
Manuel Maly
262f8a8d45 feat(telegram): add [[audio_as_file]] tag support
Allow agents to specify audio mode via inline tag:
- Default: voice bubble (sendVoice)
- [[audio_as_file]]: audio file with metadata (sendAudio)

The tag is stripped from the final message text.

Example agent response:
  Here's a podcast episode! [[audio_as_file]]
  MEDIA:https://example.com/episode.mp3
2026-01-08 03:15:08 +00:00
Manuel Maly
5e1b91b32c feat(telegram): wire audioAsVoice through bot.ts
- Add audioAsVoice option to ReplyPayload type
- Update bot.ts to use sendVoice by default for audio (voice bubble)
- When audioAsVoice is false, use sendAudio (file with metadata)

This allows agents to control voice vs file mode via ReplyPayload.
2026-01-08 03:15:08 +00:00
Manuel Maly
20fd9f7f67 feat(telegram): use sendVoice for audio with opt-out
Use Telegram's sendVoice API for audio files by default, displaying them
as round playable voice bubbles instead of file attachments.

Changes:
- Add asVoice option to TelegramSendOpts (defaults to true)
- When asVoice is true (default): use api.sendVoice() for voice bubbles
- When asVoice is false: use api.sendAudio() for traditional audio files

This gives callers control: voice messages for TTS/quick responses,
audio files for music/podcasts with metadata display.
2026-01-08 03:15:08 +00:00
mneves75
f7b32195cb feat(agent): auto-enable GLM-4.7 thinking mode
Add automatic thinking mode support for Z.AI GLM-4.x models:
- GLM-4.7: Preserved thinking (clear_thinking: false)
- GLM-4.5/4.6: Interleaved thinking (clear_thinking: true)

Uses Z.AI Cloud API format: thinking: { type: "enabled", clear_thinking: boolean }

Includes patches for pi-ai, pi-agent-core, and pi-coding-agent to pass
extraParams through the stream pipeline. User can override via config
or disable via --thinking off.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 04:10:56 +01:00
Peter Steinberger
3f93781b4b refactor: polish providers cli status 2026-01-08 04:07:09 +01:00
Peter Steinberger
bf2daeb3ae fix(discord): cap lines per message 2026-01-08 04:06:25 +01:00
Peter Steinberger
6e4174b5dc fix(ci): stabilize windows paths 2026-01-08 03:03:03 +00:00
Peter Steinberger
8aa3efb9e8 refactor: tidy directive parsing + queue status 2026-01-08 03:47:52 +01:00
Peter Steinberger
fbeb9e6775 fix(ci): stabilize windows tests 2026-01-08 02:44:19 +00:00
Peter Steinberger
780385e31f fix(auto-reply): handle /think no-arg 2026-01-08 03:39:05 +01:00
Peter Steinberger
7f0f82e869 ci: enforce lf line endings 2026-01-08 02:29:20 +00:00
Peter Steinberger
ad5c87c193 fix: relax slash command parsing 2026-01-08 03:24:18 +01:00
Lutro
36b443f4f3 Telegram: fix /think command to show current level when no arg 2026-01-08 03:24:18 +01:00
Peter Steinberger
0d34f330b8 refactor(browser): share chrome resolution helpers 2026-01-08 02:18:43 +00:00
Peter Steinberger
1e826862c3 fix(browser): support Windows Chrome detection (PR #439, thanks @mrdbstn) 2026-01-08 02:08:59 +00:00
Mourad Boustani
7294ba037d browser: add Windows Chrome executable detection 2026-01-08 02:06:59 +00:00
Peter Steinberger
92a62bc300 style: format providers docs output 2026-01-08 02:01:43 +00:00
Peter Steinberger
313925b357 fix: restore gateway connection details helper 2026-01-08 02:00:27 +00:00
Peter Steinberger
6f82ec7b83 style: colorize providers list 2026-01-08 02:59:15 +01:00
Peter Steinberger
440a5b82cf fix(gateway): honor local auth password for CLI (PR #301, thanks @jeffersonwarrior) 2026-01-08 02:59:06 +01:00
Peter Steinberger
cda050d050 chore: tweak providers docs link 2026-01-08 02:56:47 +01:00
Peter Steinberger
03cf7da2bd feat: default providers list to usage 2026-01-08 02:56:47 +01:00
Peter Steinberger
8ce6f783f0 feat: add usage to providers list 2026-01-08 02:56:47 +01:00
Peter Steinberger
2f707ad4ad style: format gateway call helpers 2026-01-08 01:53:28 +00:00
Peter Steinberger
6aa6c837e7 fix: add gateway connection debug output 2026-01-08 02:51:39 +01:00
Peter Steinberger
3d0156890c refactor: split port diagnostics helpers 2026-01-08 02:42:43 +01:00
Peter Steinberger
2fe3b483b1 fix: add gateway close context 2026-01-08 02:42:32 +01:00
Peter Steinberger
2140caaf67 fix: telegram html formatting (#435, thanks @RandyVentures) 2026-01-08 02:34:32 +01:00
Peter Steinberger
61f5ed8bb7 fix: improve gateway diagnostics 2026-01-08 02:29:32 +01:00
Peter Steinberger
cad853b547 refactor: rebuild agent system prompt 2026-01-08 02:20:30 +01:00
Peter Steinberger
a450390f7c refactor: share reply payload threading/dedupe 2026-01-08 01:09:23 +00:00
Peter Steinberger
3f1807b6cb fix: restore doctor sandbox warnings 2026-01-08 01:55:59 +01:00
Peter Steinberger
05b8679c8b feat: add providers CLI and multi-account onboarding 2026-01-08 01:55:59 +01:00
Peter Steinberger
6b3ed40d0f feat: format cron list output 2026-01-08 01:52:33 +01:00
Peter Steinberger
bbf45a0264 feat: add cron cli aliases 2026-01-08 01:52:33 +01:00
Peter Steinberger
2ca936ee98 refactor: split doctor into modules 2026-01-08 01:52:33 +01:00
Peter Steinberger
8b9f0c4e2a refactor: extract doctor state integrity 2026-01-08 01:52:33 +01:00
Peter Steinberger
ee28b20419 fix: harden doctor state integrity checks 2026-01-08 01:52:33 +01:00
Peter Steinberger
17d052bcda fix: polish reply threading + tool dedupe (thanks @mneves75) (#326) 2026-01-08 00:50:47 +00:00