Peter Steinberger
649e5fb7dd
feat: add provider-specific tool policies
2026-01-15 03:55:20 +00:00
Peter Steinberger
f95bce9bca
fix: doctor ack reaction migration ( #927 )
...
Thanks @grp06.
Co-authored-by: George Pickett <gpickett00@gmail.com>
2026-01-15 03:51:55 +00:00
Peter Steinberger
5113eb737e
feat: add browser snapshot modes
2026-01-15 03:50:57 +00:00
Peter Steinberger
7359d4351d
fix(daemon): clear launchd disabled state before bootstrap ( #849 ) (thanks @ndraiman)
2026-01-15 03:35:24 +00:00
Netanel Draiman
4d57fc33ec
fix(daemon): enable launchd service before bootstrap
...
When a launchd service is uninstalled via bootout, macOS marks it as
disabled in /var/db/com.apple.xpc.launchd/disabled.*.plist. This persists
across reboots and plist recreation. Future bootstrap calls fail with
error 5 (I/O error) because the service is still marked disabled.
Fix: Call 'launchctl enable' before 'launchctl bootstrap' to clear the
disabled state, matching the fix already applied to the macOS Swift app
in GatewayLaunchAgentManager.swift.
Related: #306
2026-01-15 03:31:52 +00:00
Peter Steinberger
690faa9ae6
style: oxfmt fixes ( #925 ) (thanks @grp06)
2026-01-15 03:22:54 +00:00
George Pickett
ff728f38db
Logging: tolerate EIO console writes
2026-01-15 03:20:48 +00:00
Peter Steinberger
6c26163fb7
fix(telegram): aggregate split inbound messages
2026-01-15 03:04:59 +00:00
Peter Steinberger
fb4eb026e2
fix: scrub tuple items schemas for Gemini tools ( #926 ) — thanks @grp06
...
Co-authored-by: George Pickett <gpickett00@gmail.com>
2026-01-15 02:59:35 +00:00
Peter Steinberger
3c605b6043
fix: restore docker binds and PATH in sandbox exec ( #873 )
...
Thanks @akonyer.
Co-authored-by: Aaron Konyer <aaronk@gomodular.ca>
2026-01-15 02:58:20 +00:00
Peter Steinberger
a02c7d710d
fix: add plugin runtime registry
2026-01-15 02:44:45 +00:00
Peter Steinberger
fec657e888
feat: load channel plugins
2026-01-15 02:42:44 +00:00
Peter Steinberger
ec940b6945
fix: normalize Claude CLI auth mode to oauth ( #855 )
...
Thanks @sebslight.
Co-authored-by: Sebastian <sebslight@gmail.com>
2026-01-15 02:29:43 +00:00
Peter Steinberger
d66bcad528
style(slack): satisfy oxfmt ( #850 )
2026-01-15 02:23:22 +00:00
Jonathan Wilkins
bdbf8b5ceb
fix(slack): respect top-level requireMention config
...
The `channels.slack.requireMention` setting was defined in the schema
but never passed to `resolveSlackChannelConfig()`, which always
defaulted to `true`. This meant setting `requireMention: false` at the
top level had no effect—channels still required mentions.
Pass `slackCfg.requireMention` as `defaultRequireMention` to the
resolver and use it as the fallback instead of hardcoded `true`.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 02:17:27 +00:00
Peter Steinberger
1bc1989174
fix: add TUI status spinner
2026-01-15 02:11:12 +00:00
Peter Steinberger
9dc9ce1c61
fix: render TUI pickers as overlays
2026-01-15 01:59:05 +00:00
Peter Steinberger
59d7e2bfa2
style: apply oxfmt fixes
2026-01-15 01:53:14 +00:00
Peter Steinberger
77b165e7a9
feat(config): gate channel config writes
2026-01-15 01:41:15 +00:00
Peter Steinberger
87b769996d
fix: suppress raw API error payloads ( #924 ) (thanks @grp06)
...
Co-authored-by: George Pickett <gpickett00@gmail.com>
2026-01-15 01:34:19 +00:00
George Pickett
487dd3ed9b
Format: fix report + telegram formatting
2026-01-15 01:27:16 +00:00
George Pickett
7025feb9a9
Format: apply oxfmt fixes
2026-01-15 01:27:16 +00:00
George Pickett
1c98b9f38d
Tests: add Gemini thoughtSignature for tool-call ids
2026-01-15 01:27:16 +00:00
George Pickett
55ed5718c0
Embedded runner: suppress raw API error payloads ( #919 )
2026-01-15 01:27:16 +00:00
Peter Steinberger
e2832f544f
feat: add security audit + onboarding checkpoint
2026-01-15 01:25:11 +00:00
Peter Steinberger
85310793ce
fix(telegram): migrate group config on supergroup IDs ( #906 )
...
Thanks @sleontenko.
Co-authored-by: Stan <sleontenko@users.noreply.github.com>
2026-01-15 01:10:30 +00:00
sleontenko
25d06ceae2
feat(telegram): auto-migrate group config on supergroup migration
...
When a Telegram group is upgraded to a supergroup, the chat ID changes
(e.g., -123456 → -100123456). This causes the bot to lose its group
configuration since it's keyed by chat ID.
This change:
- Adds handler for `message:migrate_to_chat_id` event
- Logs the migration (old_id → new_id) for visibility
- If the old chat ID has config in channels.telegram.groups, automatically:
- Copies the config to the new chat ID
- Removes the old chat ID entry
- Saves the updated config file
This eliminates the need to manually update clawdbot.json when groups
migrate to supergroups.
2026-01-15 01:10:30 +00:00
Peter Steinberger
7756918f06
feat: add /context prompt breakdown
2026-01-15 01:06:35 +00:00
Peter Steinberger
4fe6b626aa
fix: preserve markdown code fences
2026-01-15 00:31:07 +00:00
Peter Steinberger
23655d656c
refactor: unify markdown formatting pipeline
2026-01-15 00:31:07 +00:00
Peter Steinberger
a3ebd00681
refactor: unify markdown formatting pipeline
2026-01-15 00:31:07 +00:00
Peter Steinberger
1db2eca941
fix(telegram): wire delete action for message tool ( #903 ) - thanks @sleontenko
...
Co-authored-by: Stan <sleontenko@users.noreply.github.com>
2026-01-15 00:29:53 +00:00
sleontenko
5108f83df1
feat(telegram): add deleteMessage action
...
Add ability to delete messages in Telegram chats via the message tool.
Changes:
- Add deleteMessageTelegram function in send.ts
- Add deleteMessage action handler in telegram-actions.ts
- Add delete action support in telegram message plugin adapter
- Add deleteMessage to TelegramActionConfig type
- Update message tool description to mention delete action
Usage:
- Via message tool: action="delete", chatId, messageId
- Can be disabled via channels.telegram.actions.deleteMessage=false
Limitations (Telegram API):
- Bot can delete its own messages in any chat
- Bot can delete others' messages only if admin with "Delete Messages"
- Messages older than 48h in groups may fail to delete
2026-01-15 00:29:53 +00:00
Peter Steinberger
c417029080
test: add gemini 3 antigravity switch live repro
2026-01-15 00:29:53 +00:00
Peter Steinberger
529955b873
refactor(auth): streamline allowFrom normalization
2026-01-14 23:42:50 +00:00
Peter Steinberger
1a2c05586b
fix(whatsapp): normalize user JIDs for group allowlists ( #838 )
...
Thanks @peschee.
Co-authored-by: Peter Siska <63866+peschee@users.noreply.github.com>
2026-01-14 23:25:42 +00:00
Peter Steinberger
a424e3d9a1
test(whatsapp): add context isolation coverage
...
Includes outbound gating, threading fallback, and web auto-reply context assertions.
2026-01-14 23:23:36 +00:00
Peter Steinberger
7b48f996e3
refactor(discord): centralize autoThread reply plan ( #856 )
2026-01-14 23:07:05 +00:00
Peter Steinberger
c58c3ccf1b
chore: standardize Claude Code CLI naming ( #915 )
...
Follow-up to #915 .
2026-01-14 20:07:35 +00:00
Peter Steinberger
432ae423da
fix(whatsapp): use conversation id for context isolation ( #911 )
...
Thanks @tristanmanchester.
Co-authored-by: Tristan Manchester <tmanchester96@gmail.com>
2026-01-14 20:06:20 +00:00
Peter Steinberger
e41e2684b7
refactor(discord): clean autoThread context wiring ( #856 )
...
Build reply/session context once (no post-hoc ctx mutation) and type into the actual delivery target.
Thanks @davidguttman.
Co-authored-by: David Guttman <david@davidguttman.com>
2026-01-14 20:04:25 +00:00
Peter Steinberger
c8d3c31c75
chore(auth): rename Claude CLI to Claude Code CLI ( #915 )
...
Thanks @SeanZoR.
Co-authored-by: Sean Katz <connect@sean8.com>
2026-01-14 19:57:42 +00:00
Shadow
2dda814c4a
Discord: isolate autoThread thread context ( #856 )
2026-01-14 12:25:35 -06:00
Peter Steinberger
a287d11771
fix(slack): drop mismatched Socket Mode events ( #889 )
...
Filter Slack Socket Mode events by api_app_id/team_id.
Refs: #828
Contributor: @roshanasingh4
Co-authored-by: Roshan Singh <roshanasingh4@users.noreply.github.com>
2026-01-14 15:54:37 +00:00
Peter Steinberger
28b0bc6b21
fix: split long Telegram captions ( #907 ) - thanks @jalehman
...
Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-01-14 15:52:54 +00:00
Peter Steinberger
9d28441c41
chore: migrate to oxlint and oxfmt
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
2026-01-14 15:02:19 +00:00
Peter Steinberger
cc5dba5443
test(telegram): cover per-account timeoutSeconds ( #863 )
...
Co-authored-by: Snaver <194855+Snaver@users.noreply.github.com>
2026-01-14 10:35:42 +00:00
Peter Steinberger
bb6df31bb5
test(doctor): bump timeouts for slow cases
2026-01-14 10:35:39 +00:00
Peter Steinberger
e798f178f3
fix(telegram): honor timeoutSeconds (thanks @Snaver) ( #863 )
2026-01-14 10:10:05 +00:00
Peter Steinberger
7f6f8b50b3
style(lint): fix minimax usage lint
2026-01-14 10:10:04 +00:00
Peter Steinberger
0f7fde6acd
fix(lint): tidy minimax usage fetch
2026-01-14 10:04:26 +00:00
Peter Steinberger
5f1a93d4c4
feat(usage): add minimax usage snapshot
2026-01-14 09:57:32 +00:00
Peter Steinberger
9f437e9167
refactor(live-tests): stabilize docker live suites
2026-01-14 09:52:39 +00:00
Peter Steinberger
ca315f7dec
refactor(telegram): split bot handlers
2026-01-14 09:11:32 +00:00
Peter Steinberger
b4afef4ce1
refactor(tui): split handlers
2026-01-14 09:11:28 +00:00
Peter Steinberger
38235f9c6c
refactor(gateway): split server runtime
2026-01-14 09:11:21 +00:00
Peter Steinberger
3c9882a84d
refactor(auto-reply): split reply pipeline
2026-01-14 09:11:16 +00:00
Peter Steinberger
bbf11cad6d
fix(gateway): reduce flaky ws rpc timeouts
2026-01-14 05:41:02 +00:00
Peter Steinberger
fb49878fae
test(web): rename split suites
2026-01-14 05:40:58 +00:00
Peter Steinberger
ec219ea248
test(slack): rename split suites
2026-01-14 05:40:55 +00:00
Peter Steinberger
ca750683e5
test(signal): rename split suites
2026-01-14 05:40:52 +00:00
Peter Steinberger
43122550b9
test(providers): rename split suites
2026-01-14 05:40:49 +00:00
Peter Steinberger
950fd6b7b0
test(imessage): rename split suites
2026-01-14 05:40:45 +00:00
Peter Steinberger
b4f756b6f2
test(cron): rename split suites
2026-01-14 05:40:42 +00:00
Peter Steinberger
1b2b3eccab
test(auto-reply): rename split suites
2026-01-14 05:40:39 +00:00
Peter Steinberger
4ca2288311
refactor(wizard): split onboarding
2026-01-14 05:40:10 +00:00
Peter Steinberger
8165f0725d
refactor(telegram): split bot helpers
2026-01-14 05:40:07 +00:00
Peter Steinberger
00a4e0eef8
refactor(infra): split provider usage
2026-01-14 05:40:03 +00:00
Peter Steinberger
b4cbf21368
refactor(agents): split tools + PI subscribe
2026-01-14 05:39:59 +00:00
Peter Steinberger
a56b83f5b5
refactor(discord): split send pipeline
2026-01-14 05:39:55 +00:00
Peter Steinberger
5b2eb64039
refactor(config): split legacy handling
2026-01-14 05:39:51 +00:00
Peter Steinberger
2359a5a033
refactor(commands): split CLI commands
2026-01-14 05:39:47 +00:00
Peter Steinberger
2bb0591bb7
refactor(browser): split pw tools + agent routes
2026-01-14 05:39:44 +00:00
Peter Steinberger
b6d70f8675
refactor(auto-reply): split directive handling
2026-01-14 05:39:41 +00:00
Peter Steinberger
5bb6d18b72
chore(repo): drop .DS_Store
2026-01-14 01:17:56 +00:00
Peter Steinberger
b74a102af7
refactor(src): split oversized modules
2026-01-14 01:17:56 +00:00
Peter Steinberger
4651a35574
fix: support non-interactive token auth
2026-01-14 00:56:34 +00:00
Peter Steinberger
9a619fddd8
fix: make postinstall patcher idempotent
2026-01-13 23:12:27 +00:00
Peter Steinberger
e049e1e9fc
fix: resume subagent registry safely ( #831 ) (thanks @roshanasingh4)
2026-01-13 10:10:15 +00:00
Roshan Singh
71d3fd101b
Persist subagent registry across restarts
2026-01-13 10:00:30 +00:00
Peter Steinberger
5bbbae173f
test: fix cron delivery channel expectations
2026-01-13 09:07:13 +00:00
Peter Steinberger
72d8341b57
chore(lint): format entry shim
2026-01-13 08:43:54 +00:00
Peter Steinberger
d7d4412bc1
fix: finalize channels rename cleanup
2026-01-13 08:40:40 +00:00
Peter Steinberger
69228ca766
fix: finish channels rename sweep
2026-01-13 08:40:40 +00:00
Peter Steinberger
978041219f
refactor: remove redundant spread fallbacks
2026-01-13 08:40:39 +00:00
Peter Steinberger
f5499b92b7
fix: stabilize channel migration
2026-01-13 08:40:39 +00:00
Peter Steinberger
ea979f0669
refactor!: rename chat providers to channels
2026-01-13 08:40:39 +00:00
Peter Steinberger
135cd6ae05
Merge pull request #832 from danielz1z/fix/overloaded-error-handling
...
fix: handle Anthropic overloaded_error gracefully
2026-01-13 08:33:16 +00:00
Peter Steinberger
7d675fbf88
fix: handle Anthropic overloaded_error gracefully ( #832 ) (thanks @danielz1z)
2026-01-13 08:32:06 +00:00
Peter Steinberger
77fba39a75
fix: preserve execArgv on reexec
2026-01-13 08:31:50 +00:00
danielz1z
60776cf506
fix: handle Anthropic overloaded_error gracefully
...
When Anthropic's API returns an overloaded_error (temporary capacity issue),
the raw JSON error was being sent to users instead of a friendly message.
Changes:
- Add overloaded error pattern detection
- Return user-friendly message for overloaded errors
- Classify overloaded as failover-worthy (triggers retry logic)
2026-01-13 08:18:59 +00:00
Peter Steinberger
671bad8976
chore(lint): format live profiles test
2026-01-13 08:03:58 +00:00
Peter Steinberger
b842d88334
fix: recover from compaction overflow
2026-01-13 08:03:11 +00:00
Peter Steinberger
393a47f5e9
chore(lint): satisfy biome checks
2026-01-13 07:53:38 +00:00
Peter Steinberger
de6fea510d
fix(auth): drop invalid auth profiles from order
2026-01-13 07:53:38 +00:00
Peter Steinberger
e9cf5c5fd6
test: stabilize gpt-5.2 tool-only live check
2026-01-13 07:51:24 +00:00
Peter Steinberger
21e8dbd925
fix: suppress experimental sqlite warning at startup
2026-01-13 07:27:32 +00:00
Peter Steinberger
7f249713d4
fix: skip Control UI asset check when UI is skipped
2026-01-13 07:27:32 +00:00
Peter Steinberger
1ecb1e8ae7
fix: harden doctor install checks
2026-01-13 07:25:25 +00:00
Peter Steinberger
d1d867a5bd
Merge pull request #722 from vrknetha/feat/slash-bash-command
...
feat(bash): add host-only /bash slash command
2026-01-13 07:18:35 +00:00