Commit Graph

5952 Commits

Author SHA1 Message Date
Peter Steinberger
864e305340 fix: restore status usage summary output 2026-01-16 02:49:18 +00:00
Peter Steinberger
935a83863f docs: clarify setup-token flows 2026-01-16 02:36:32 +00:00
Peter Steinberger
5cfed75479 fix: ignore properties in google tool schema warnings 2026-01-16 02:35:55 +00:00
Peter Steinberger
e05b17aef6 docs: clarify gog body-file usage
Co-authored-by: John Young <johntheyoung@users.noreply.github.com>
2026-01-16 02:23:41 +00:00
Peter Steinberger
43dac0be1c docs: clarify Anthropic setup-token 2026-01-16 02:19:57 +00:00
Peter Steinberger
3fb5507152 fix: correct final tag strip typing 2026-01-16 02:16:17 +00:00
Peter Steinberger
46c18e52bf fix: strip final tags from session messages 2026-01-16 02:16:17 +00:00
Peter Steinberger
1757f615a0 fix: harden antigravity claude support (#968)
Co-authored-by: Max <rdev@users.noreply.github.com>
2026-01-16 02:16:17 +00:00
Peter Steinberger
14d136d280 fix: show oauth usage in /status 2026-01-16 02:06:27 +00:00
Peter Steinberger
8736472014 Merge pull request #960 from kkarimi/fix/mac-node-bridge-tunnel-865
macOS: prefer bridge tunnel port in remote mode
2026-01-16 02:00:23 +00:00
Peter Steinberger
f09435007d fix: document macOS remote tunnels (#960) (thanks @kkarimi) 2026-01-16 01:59:14 +00:00
Nima Karimi
2f2cc3d907 Tests: apply suite timeout in node bridge test 2026-01-16 01:56:23 +00:00
Nima Karimi
9c0c3541cb Tests: extend node bridge server timeout 2026-01-16 01:56:23 +00:00
Nima Karimi
1ea64f8734 SwiftFormat: format macOS sources 2026-01-16 01:56:23 +00:00
Nima Karimi
0a99886f0d macOS: prefer bridge tunnel port in remote mode 2026-01-16 01:56:06 +00:00
Gustavo Madeira Santana
8b19dfed8f Document inline buttons configuration for Telegram (#984) 2026-01-15 19:55:03 -06:00
Peter Steinberger
1d6eeb119e fix: align config types after upstream changes 2026-01-16 01:49:07 +00:00
Peter Steinberger
3bafcfd946 chore: bump Peekaboo submodule 2026-01-16 01:44:12 +00:00
Peter Steinberger
2f90570dad test: stabilize sandbox config tests 2026-01-16 01:44:12 +00:00
Peter Steinberger
58225aae61 fix: cleanup suspended CLI processes (#978) (thanks @Nachx639) 2026-01-16 01:39:33 +00:00
Tu Nombre Real
7a3b6b4e6d fix: cleanup suspended Clawdbot CLI processes
Add cleanupSuspendedCliProcesses() to kill accumulated suspended processes
from isolated sessions that don't share sessionIds (e.g., cron jobs).

- Only targets Clawdbot processes (--session-id pattern)
- Only kills suspended processes (state T)
- Only triggers when >10 processes accumulated
- Does not affect user's Claude Code sessions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 01:38:03 +00:00
Peter Steinberger
66d20a3cf0 chore(cli): set process title 2026-01-16 01:33:28 +00:00
Peter Steinberger
5d7a6372fd fix: show disabled channels in onboarding picker 2026-01-16 01:29:25 +00:00
Peter Steinberger
a4dc493486 fix: switch channel onboarding to single-select loop 2026-01-16 01:21:17 +00:00
Peter Steinberger
660829f9dd feat: add per-agent heartbeat config 2026-01-16 01:17:34 +00:00
Peter Steinberger
5ed3f45e57 fix: show provider/model labels in TUI 2026-01-16 01:13:14 +00:00
Peter Steinberger
1bec2c6374 fix: persist local gateway mode in configure wizard 2026-01-16 01:05:55 +00:00
Peter Steinberger
1550dd37aa fix: refine channel onboarding selection flow 2026-01-16 01:05:50 +00:00
Peter Steinberger
5357c35f2c docs: update release checklist 2026-01-16 00:42:48 +00:00
Peter Steinberger
d1c5f307a9 docs: document provider auth plugins 2026-01-16 00:42:48 +00:00
Peter Steinberger
98b3559282 feat: add provider auth plugins 2026-01-16 00:42:28 +00:00
Peter Steinberger
dc7da74e4a refactor: system prompt sections + docs/tests 2026-01-16 00:28:43 +00:00
Peter Steinberger
349bdebb6f feat: sticky auth profile rotation + usage headers 2026-01-16 00:25:49 +00:00
void
f2b7ff255f fix: heartbeat prompt + dedupe (#980) (thanks @voidserf)
- tighten default heartbeat prompt guidance
- suppress duplicate heartbeat alerts within 24h

Co-authored-by: void <voidserf@users.noreply.github.com>
2026-01-16 00:24:52 +00:00
Josh Lehman
36168e1ed3 feat(slack): add userToken for read-only access to DMs and private channels (#981)
- Add userToken and userTokenReadOnly (default: true) config fields
- Implement token routing: reads prefer user token, writes use bot token
- Add tests for token routing logic
- Update documentation with required OAuth scopes

User tokens enable reading DMs and private channels without requiring
bot membership. The userTokenReadOnly flag (true by default) ensures
the user token can only be used for reads, preventing accidental
sends as the user.

Required user token scopes:
- channels:history, channels:read
- groups:history, groups:read
- im:history, im:read
- mpim:history, mpim:read
- users:read, reactions:read, pins:read, emoji:read, search:read
2026-01-16 00:11:33 +00:00
Peter Steinberger
f58aa0e9f3 fix: handle Telegram General topic thread params (#848) (thanks @azade-c) 2026-01-16 00:08:56 +00:00
Peter Steinberger
f342f9a7e9 Merge pull request #848 from azade-c/fix/telegram-general-topic-messages
fix(telegram): skip message_thread_id for General topic messages
2026-01-16 00:08:07 +00:00
Peter Steinberger
697dcbee10 fix: tighten session entry updates
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com>
2026-01-15 23:44:32 +00:00
Peter Steinberger
f8a9aabda6 feat: refine subagents + add chat.inject
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com>
2026-01-15 23:44:31 +00:00
Peter Steinberger
488447d77f refactor: harden session store updates
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com>
2026-01-15 23:41:34 +00:00
Azade
b7d866a3ae fix(telegram): separate thread params for typing vs messages
Telegram General topic (id=1) has inconsistent API behavior:
- sendMessage: rejects explicit message_thread_id=1
- sendChatAction: requires message_thread_id=1 for typing to show

Split into two helper functions:
- buildTelegramThreadParams: excludes General topic for messages
- buildTypingThreadParams: includes General topic for typing
2026-01-15 23:32:30 +00:00
Peter Steinberger
7c99563e57 docs: add inbound debounce config example 2026-01-15 23:20:14 +00:00
Peter Steinberger
defeadcb2a refactor: centralize daemon path resolution 2026-01-15 23:19:52 +00:00
juanpablodlc
ae2d725109 feat(whatsapp): add debounceMs for batching rapid messages (#971)
* feat(whatsapp): add debounceMs for batching rapid messages

Add a `debounceMs` configuration option to WhatsApp channel settings
that batches rapid consecutive messages from the same sender into a
single response. This prevents triggering separate agent runs for
each message when a user sends multiple short messages in quick
succession (e.g., "Hey!", "how are you?", "I was wondering...").

Changes:
- Add `debounceMs` config to WhatsAppConfig and WhatsAppAccountConfig
- Implement message buffering in `monitorWebInbox` with:
  - Map-based buffer keyed by sender (DM) or chat ID (groups)
  - Debounce timer that resets on each new message
  - Message combination with newline separator
  - Single message optimization (no modification if only one message)
- Wire `debounceMs` through account resolution and monitor tuning
- Add UI hints and schema documentation

Usage example:
{
  "channels": {
    "whatsapp": {
      "debounceMs": 5000  // 5 second window
    }
  }
}

Default behavior: `debounceMs: 0` (disabled by default)

Verified: All existing tests pass (3204 tests), TypeScript compilation
succeeds with no errors.

Implemented with assistance from AI coding tools.

Closes #967

* chore: wip inbound debounce

* fix: debounce inbound messages across channels (#971) (thanks @juanpablodlc)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-15 23:07:19 +00:00
Peter Steinberger
f12a7f6c0b chore: purge DS_Store files 2026-01-15 22:59:16 +00:00
Peter Steinberger
21bf0e9ce0 docs: add sync up shorthand 2026-01-15 22:58:34 +00:00
Peter Steinberger
31d5fd5638 test: cover model picker ordering and openrouter index 2026-01-15 22:56:11 +00:00
Peter Steinberger
bf8d0d0b1c feat(date-time): standardize time context and tool timestamps 2026-01-15 22:27:06 +00:00
Jake
064491fd1a fix(model-picker): list each provider/model combo separately (#970)
* fix(model-picker): list each provider/model combo separately

Previously, /model grouped models by name and showed all providers
that offer the same model (e.g. 'claude-sonnet-4-5 — anthropic, google-antigravity').
This was confusing because:
1. Users couldn't tell which provider would be used when selecting by number
2. The display implied choice between providers but selection was automatic

Now each provider/model combination is listed separately so users
can explicitly select the exact provider they want.

- Remove model grouping in buildModelPickerItems
- Display format changed from 'model — providers' to 'provider/model'
- pickProviderForModel now returns the single provider directly
- Updated tests to reflect new behavior

* fix: simplify model picker entries (#970) (thanks @mcinteerj)

---------

Co-authored-by: Keith the Silly Goose <keith@42bolton.macnet.nz>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-15 22:20:11 +00:00
Peter Steinberger
e9182ad052 Merge pull request #969 from bjesuiter/fix/launchd-label-resolution
fix: unify daemon service label resolution with env parameter
2026-01-15 22:12:12 +00:00