Commit Graph

2792 Commits

Author SHA1 Message Date
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
Peter Steinberger
65ed987199 refactor: centralize onboarding auth paths 2026-01-13 07:12:20 +00:00
Peter Steinberger
50b98530ba Deps: update Pi + Vitest and add Bedrock docs 2026-01-13 06:57:11 +00:00
Peter Steinberger
045cff6d99 Merge pull request #583 from mitschabaude-bot/feat/agent-model-fallbacks
Config: per-agent model fallbacks
2026-01-13 06:54:00 +00:00
Peter Steinberger
c642738a46 fix: per-agent model fallbacks (#583) (thanks @mitschabaude-bot) 2026-01-13 06:50:41 +00:00
Gregor's Bot
8315b5dd1a Agents: test per-agent model fallbacks override 2026-01-13 06:50:20 +00:00
Gregor's Bot
2dfc1b7aed Config: support per-agent model fallbacks 2026-01-13 06:50:20 +00:00
Peter Steinberger
b1dca50b45 fix: gate xhigh by model (#444) (thanks @grp06) 2026-01-13 06:48:41 +00:00
George Pickett
4d1a2aa5ac Thinking: gate xhigh by model 2026-01-13 06:48:26 +00:00
Peter Steinberger
9628b53b34 test(tools): cover tool policy helpers 2026-01-13 06:32:59 +00:00
Peter Steinberger
903ea79538 feat(tools): add tool profiles and group shorthands 2026-01-13 06:30:20 +00:00
Peter Steinberger
2d4d2bab7e fix(tools): harden tool schemas for strict providers 2026-01-13 06:30:20 +00:00
vrknetha
f8bb3b03bc Auto-reply: add host-only /bash + ! bash command 2026-01-13 11:54:34 +05:30
Peter Steinberger
2dbe8dc3b1 Merge pull request #700 from clawdbot/shadow/compaction
Agents: safeguard compaction summarization
2026-01-13 05:59:15 +00:00
Peter Steinberger
500b7c1dd0 fix: honor gateway service override labels 2026-01-13 05:58:49 +00:00
Peter Steinberger
c10d0d887f fix: tune compaction safeguard schema (#700) (thanks @thewilloftheshadow) 2026-01-13 05:58:35 +00:00
Shadow
d8771a030c Agents: safeguard compaction summarization 2026-01-13 05:55:30 +00:00
Peter Steinberger
7eadd7819d refactor: centralize auth-choice model defaults 2026-01-13 05:25:16 +00:00
Peter Steinberger
5267149f9e Merge pull request #740 from jeffersonwarrior/main
feat: add Tailscale binary detection, custom gateway IP binding, and health probe auth fix
2026-01-13 05:22:48 +00:00
Peter Steinberger
c01d231f5e fix: tighten custom bind probing (#740) (thanks @jeffersonwarrior) 2026-01-13 05:21:59 +00:00
Jefferson Warrior
87e2be26f9 feat: add Tailscale binary detection, IP binding modes, and health probe password fix
This PR includes three main improvements:

1. Tailscale Binary Detection with Fallback Strategies
   - Added findTailscaleBinary() with multi-strategy detection:
     * PATH lookup via 'which' command
     * Known macOS app path (/Applications/Tailscale.app/Contents/MacOS/Tailscale)
     * find /Applications for Tailscale.app
     * locate database lookup
   - Added getTailscaleBinary() with caching
   - Updated all Tailscale operations to use detected binary
   - Added TUI warning when Tailscale binary not found for serve/funnel modes

2. Custom Gateway IP Binding with Fallback
   - New bind mode "custom" allowing user-specified IP with fallback to 0.0.0.0
   - Removed "tailnet" mode (folded into "auto")
   - All modes now support graceful fallback: custom (if fail → 0.0.0.0), loopback (127.0.0.1 → 0.0.0.0), auto (tailnet → 0.0.0.0), lan (0.0.0.0)
   - Added customBindHost config option for custom bind mode
   - Added canBindTo() helper to test IP availability before binding
   - Updated configure and onboarding wizards with new bind mode options

3. Health Probe Password Auth Fix
   - Gateway probe now tries both new and old passwords
   - Fixes issue where password change fails health check if gateway hasn't restarted yet
   - Uses nextConfig password first, falls back to baseConfig password if needed

Files changed:
- src/infra/tailscale.ts: Binary detection + caching
- src/gateway/net.ts: IP binding with fallback logic
- src/config/types.ts: BridgeBindMode type + customBindHost field
- src/commands/configure.ts: Health probe dual-password try + Tailscale detection warning + bind mode UI
- src/wizard/onboarding.ts: Tailscale detection warning + bind mode UI
- src/gateway/server.ts: Use new resolveGatewayBindHost
- src/gateway/call.ts: Updated preferTailnet logic (removed "tailnet" mode)
- src/commands/onboard-types.ts: Updated GatewayBind type
- src/commands/onboard-helpers.ts: resolveControlUiLinks updated
- src/cli/*.ts: Updated bind mode casts
- src/gateway/call.test.ts: Removed "tailnet" mode test
2026-01-13 05:20:02 +00:00
Peter Steinberger
106e3d9b9b refactor: dedupe OAuth flow handlers 2026-01-13 05:14:05 +00:00
Peter Steinberger
b2003acada fix: clean up api key validation 2026-01-13 05:12:42 +00:00
Peter Steinberger
5dbac8fa3e style: format cron cli flags 2026-01-13 05:05:39 +00:00
Peter Steinberger
300b1d9b92 Merge pull request #726 from FrieSei/feature/chutes-oauth
Auth: add Chutes OAuth
2026-01-13 05:02:25 +00:00
Peter Steinberger
cfe32afc64 fix: harden Chutes OAuth flow (#726) (thanks @FrieSei) 2026-01-13 05:01:08 +00:00
Peter Steinberger
b558308e29 feat: cron ISO at + delete-after-run 2026-01-13 04:55:48 +00:00
Friederike Seiler
14e63278b9 Tests: clean chutes fetch spies 2026-01-13 04:50:27 +00:00
Friederike Seiler
44e93f569a Chores: fix chutes oauth build 2026-01-13 04:50:27 +00:00
Friederike Seiler
ce5af73b6e Chores: format chutes oauth 2026-01-13 04:50:26 +00:00
Friederike Seiler
4bfb2b6c6e Auth: add Chutes OAuth 2026-01-13 04:50:26 +00:00
Peter Steinberger
b0b1533945 fix: clean lint in auth-choice + tests 2026-01-13 04:49:04 +00:00
Peter Steinberger
9c72eb896c chore(discord): restore gateway log context 2026-01-13 04:40:22 +00:00
Peter Steinberger
820ed77898 chore(logging): strip redundant provider tags 2026-01-13 04:40:22 +00:00
Peter Steinberger
90995f651f chore(logging): strip redundant console prefixes 2026-01-13 04:40:22 +00:00
Peter Steinberger
6e88fb2488 chore(discord): trim gateway log prefixes 2026-01-13 04:40:22 +00:00
Roshan Singh
dbb04c5286 Fix tailscale allowTailscale bypass in token mode 2026-01-13 04:34:28 +00:00
Peter Steinberger
ff23381794 fix: start typing on message start 2026-01-13 04:33:24 +00:00
Peter Steinberger
6cad33fca2 Merge pull request #794 from roshanasingh4/fix/777-windows-openurl-quotes
Fix Antigravity OAuth login on Windows (quote URL for cmd start)
2026-01-13 04:28:11 +00:00
Peter Steinberger
9d3c757161 feat: add configurable bootstrap truncation 2026-01-13 04:27:03 +00:00
Peter Steinberger
0549eb4a94 fix: preserve Windows cmd start URL quoting (#794) (thanks @roshanasingh4) 2026-01-13 04:26:43 +00:00
Peter Steinberger
24440456f3 fix: restore implicit providers + copilot auth choice 2026-01-13 04:26:08 +00:00
Peter Steinberger
9a60cba32f feat: cron agent binding + doctor UI refresh 2026-01-13 04:25:41 +00:00
meaningfool
068785e88d feat(doctor): add UI protocol freshness check 2026-01-13 04:25:41 +00:00
meaningfool
f7568e0125 fix: sync protocol artifacts and resolve linting errors 2026-01-13 04:25:41 +00:00
meaningfool
a1e507584a fix: resolve CI failures (test timeout & formatting) 2026-01-13 04:25:41 +00:00
Roshan Singh
dbcf420452 Fix: quote URLs when opening browser on Windows 2026-01-13 04:23:20 +00:00
Shadow
96acdfb6a4 Typing: keep indicators active during tool runs
Closes #450
Closes #447
2026-01-12 22:20:29 -06:00
Shadow
6d93369b59 Cron: persist enabled=false patches
Closes #205
2026-01-12 22:16:17 -06:00
Peter Steinberger
bae7bb4625 Merge pull request #805 from marcmarg/fix/strip-thought-signatures
fix: strip thought_signature fields for cross-provider compatibility
2026-01-13 04:14:45 +00:00
Peter Steinberger
b257dc4f91 fix: strip only msg_* thought_signature (#805) (thanks @marcmarg) 2026-01-13 04:13:24 +00:00
Peter Steinberger
93d9769315 test: expand auth fallback coverage 2026-01-13 04:12:16 +00:00
Marc
a121353f5f fix: strip thought_signature fields for cross-provider compatibility
Claude's extended thinking feature generates thought_signature fields
(message IDs like "msg_abc123...") in content blocks. When these are
sent to Google's Gemini API, it expects Base64-encoded bytes and
rejects Claude's format with a 400 error.

This commit adds stripThoughtSignatures() to remove these fields from
assistant message content blocks during sanitization, enabling session
histories to be shared across different providers (e.g., Claude → Gemini).

Fixes cross-provider session bug where switching from Claude-thinking
to Gemini (or vice versa) would fail with:
"Invalid value at 'thought_signature' (TYPE_BYTES), Base64 decoding failed"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 04:11:02 +00:00
Shadow
5d3c2ba413 Telegram: keep forum topic thread ids in replies
Closes #727
2026-01-12 22:07:28 -06:00
Peter Steinberger
61f4031ef4 fix: treat credential validation errors as auth errors (#822) (thanks @sebslight) 2026-01-13 04:02:47 +00:00
Sebastian
b3f54a60d2 fix: treat credential validation failures as auth errors for fallback (#761) 2026-01-12 22:53:21 -05:00
Shadow
d9883f2a28 Telegram: persist polling update offsets
Closes #739
2026-01-12 21:52:20 -06:00
Peter Steinberger
19d3917487 fix: stabilize docs and tests after system event timestamps 2026-01-13 03:51:34 +00:00
Shadow
632203a935 Discord: dedupe listener registration on reload
Closes #744
2026-01-12 21:41:59 -06:00
Peter Steinberger
0e1d00127f Merge pull request #821 from gumadeiras/fix-bindings-telegram-webhook
Telegram: fix webhook multi-account routing (respect bindings.accountId)
2026-01-13 03:41:17 +00:00
Peter Steinberger
c65c83b480 fix: refine group intro prompt guidance 2026-01-13 03:40:27 +00:00
Shadow
b46308fd73 System events: add local timestamps in prompt injection
Closes #245
2026-01-12 21:38:56 -06:00
Peter Steinberger
be01d386b1 fix: apply lint fixes 2026-01-13 03:36:53 +00:00
Peter Steinberger
ba1b353a80 fix: refine synthetic provider + minimax probes 2026-01-13 03:36:53 +00:00
Travis Hinton
cf1b23b747 Add Synthetic provider support 2026-01-13 03:36:53 +00:00
Shadow
ef29b12ddb Cron: accept jobId in gateway cron params
Closes #252
2026-01-12 21:35:43 -06:00
Gustavo Madeira Santana
97b6a83137 Improve webhook test config verification
Refactors tests to use a shared config object and adds stricter assertions to verify that the config is passed correctly to createTelegramBot. Ensures the bindings property is checked in the test expectations.
2026-01-13 03:34:32 +00:00
Gustavo Madeira Santana
42e2a9bfe4 Add accountId and config support to Telegram webhook
The Telegram webhook and monitor now accept and pass through accountId and config parameters, enabling routing and configuration per Telegram account. Tests have been updated to verify correct bot instantiation and DM routing based on accountId bindings.
2026-01-13 03:34:32 +00:00
Shadow
6f828fbe38 Models: normalize Gemini 3 ids in runtime selection
Closes #795
2026-01-12 21:32:53 -06:00
Shadow
0ed0875877 TUI: keep streamed text when final output is empty
Closes #747
2026-01-12 21:29:15 -06:00
Shadow
63502cd317 Slack: accept slash command names with or without leading slash
Closes #798
2026-01-12 21:27:04 -06:00
Peter Steinberger
b5228e148e fix: memory search remote overrides (#819) (thanks @mukhtharcm) 2026-01-13 03:11:03 +00:00
Muhammed Mukhthar CM
ed0620098b feat: add remote config overrides to memorySearch 2026-01-13 03:02:43 +00:00
Peter Steinberger
cabd31348e refactor: dedupe enforceFinalTag resolution 2026-01-13 02:38:07 +00:00
Peter Steinberger
6bc7645d51 fix: preserve explicit maxChars=0 (#796) (thanks @gabriel-trigo) 2026-01-13 02:33:38 +00:00
Gabriel Trigo
f6c275c065 fix(browser): limit ai snapshot size
test(browser): cover ai snapshot limit
2026-01-13 02:33:38 +00:00
Peter Steinberger
0dfc20f214 fix: cleanup stale resume cli processes 2026-01-13 02:21:20 +00:00
Peter Steinberger
94d2ed3a23 Merge pull request #782 from AbhisekBasu1/fix/antigravity-opus-tools-not-working
Fix - Opus on Antigravity Errors
2026-01-13 01:59:52 +00:00
Peter Steinberger
9592d9deff fix: drop null-only union variants (#782) (thanks @AbhisekBasu1)
Co-authored-by: Abhi <AbhisekBasu1@users.noreply.github.com>
2026-01-13 01:58:30 +00:00
Peter Steinberger
23a6fc45d9 fix: gate inline /status stripping 2026-01-13 01:53:40 +00:00
Peter Steinberger
1c1c8c6d4d test: force real config module for lan onboarding test (#766) 2026-01-13 01:53:40 +00:00
Peter Steinberger
16300ae9ab test: unmock config for lan onboarding auto-token (#766) 2026-01-13 01:53:40 +00:00
Peter Steinberger
f1e15808be fix: harden inline /status stripping (#766) 2026-01-13 01:53:40 +00:00
Peter Steinberger
cb51e26906 fix: trim sender ids before auth fallback 2026-01-13 01:53:40 +00:00
Abhi
c575738d5d formatting fix 2026-01-13 01:48:56 +00:00
Abhi
dd4407705f Fix pi-tools test ordering and clean-for-gemini handling - which fixes the 400 error people are experiencing trying to use antigravity on opus 2026-01-13 01:48:34 +00:00
Peter Steinberger
72230677e1 fix: enforce reasoning tags on fallback providers (#810) (thanks @mcinteerj) 2026-01-13 01:46:21 +00:00
Keith the Silly Goose
cd46f0a0f2 fix(auto-reply): enforce reasoning tags on fallback providers 2026-01-13 01:40:55 +00:00
Peter Steinberger
9d0a2fa883 fix: enforce message context isolation 2026-01-13 01:19:14 +00:00
Peter Steinberger
25a9602715 fix: downgrade Gemini tool history 2026-01-13 01:19:13 +00:00
hsrvc
8f8a2eaaf4 fix: accept Claude/Gemini tool param aliases 2026-01-13 01:19:13 +00:00
Peter Steinberger
76ecb28443 fix(config): require doctor for invalid configs (#764 — thanks @mukhtharcm) 2026-01-13 01:18:18 +00:00
Muhammed Mukhthar CM
0fd5eb892b fix(config): preserve config data when validation fails
When readConfigFileSnapshot encounters validation errors, it now:
1. Returns the resolved config data instead of empty object
2. Uses passthrough() on main schema to preserve unknown fields

This prevents config loss when:
- User has custom/unknown fields
- Legacy config issues are detected but config is otherwise valid
- Zod schema does not recognize newer fields

Fixes config being overwritten with empty object on validation failure.
2026-01-13 01:16:13 +00:00
Peter Steinberger
9be1b4ca45 refactor: reuse dispatcher helper for native commands 2026-01-13 01:07:59 +00:00
Rony Kelner
49087b4b8f fix: pass --non-interactive to doctor during update 2026-01-13 00:57:18 +00:00
Peter Steinberger
78cca26a6a fix: stream native slash tool replies 2026-01-13 00:53:30 +00:00
Peter Steinberger
b6d1837e8c test: expand Minimax XML strip coverage 2026-01-13 00:43:59 +00:00