Peter Steinberger
2a9ef806a0
fix: strip only msg_* thought_signature ( #805 ) (thanks @marcmarg)
2026-01-13 04:13:24 +00:00
Peter Steinberger
32115a8b98
test: expand auth fallback coverage
2026-01-13 04:12:16 +00:00
Marc
c4e8b60d2c
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
c9fdd68232
Telegram: keep forum topic thread ids in replies
...
Closes #727
2026-01-12 22:07:28 -06:00
Peter Steinberger
2c2ca7f03b
fix: treat credential validation errors as auth errors ( #822 ) (thanks @sebslight)
2026-01-13 04:02:47 +00:00
Sebastian
c4014c0092
fix: treat credential validation failures as auth errors for fallback ( #761 )
2026-01-12 22:53:21 -05:00
Shadow
c08441c42c
Telegram: persist polling update offsets
...
Closes #739
2026-01-12 21:52:20 -06:00
Peter Steinberger
980f274fc9
fix: stabilize docs and tests after system event timestamps
2026-01-13 03:51:34 +00:00
Shadow
9f1f65f0e3
Discord: dedupe listener registration on reload
...
Closes #744
2026-01-12 21:41:59 -06:00
Peter Steinberger
cddd836909
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
d45915d39f
fix: refine group intro prompt guidance
2026-01-13 03:40:27 +00:00
Shadow
fcc814accd
System events: add local timestamps in prompt injection
...
Closes #245
2026-01-12 21:38:56 -06:00
Peter Steinberger
66ad8a9289
fix: apply lint fixes
2026-01-13 03:36:53 +00:00
Peter Steinberger
df6634727e
fix: refine synthetic provider + minimax probes
2026-01-13 03:36:53 +00:00
Travis Hinton
8b5cd97ceb
Add Synthetic provider support
2026-01-13 03:36:53 +00:00
Shadow
25297ce3f5
Cron: accept jobId in gateway cron params
...
Closes #252
2026-01-12 21:35:43 -06:00
Gustavo Madeira Santana
3800fea962
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
ecb91bbb1a
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
ab993904d7
Models: normalize Gemini 3 ids in runtime selection
...
Closes #795
2026-01-12 21:32:53 -06:00
Shadow
2467a103b2
TUI: keep streamed text when final output is empty
...
Closes #747
2026-01-12 21:29:15 -06:00
Shadow
68569afb4b
Slack: accept slash command names with or without leading slash
...
Closes #798
2026-01-12 21:27:04 -06:00
Peter Steinberger
da0a062fa7
fix: memory search remote overrides ( #819 ) (thanks @mukhtharcm)
2026-01-13 03:11:03 +00:00
Muhammed Mukhthar CM
ba316a10cc
feat: add remote config overrides to memorySearch
2026-01-13 03:02:43 +00:00
Peter Steinberger
c1f82d9ec1
refactor: dedupe enforceFinalTag resolution
2026-01-13 02:38:07 +00:00
Peter Steinberger
46a694bbc7
fix: preserve explicit maxChars=0 ( #796 ) (thanks @gabriel-trigo)
2026-01-13 02:33:38 +00:00
Gabriel Trigo
79a6506593
fix(browser): limit ai snapshot size
...
test(browser): cover ai snapshot limit
2026-01-13 02:33:38 +00:00
Peter Steinberger
8edf2146ae
fix: cleanup stale resume cli processes
2026-01-13 02:21:20 +00:00
Peter Steinberger
958a4fd414
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
a27efd57bd
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
4f1c6e76fd
fix: gate inline /status stripping
2026-01-13 01:53:40 +00:00
Peter Steinberger
2111d0c653
test: force real config module for lan onboarding test ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
642e6acf49
test: unmock config for lan onboarding auto-token ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
88716d8d2a
fix: harden inline /status stripping ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
c2e37c78ff
fix: trim sender ids before auth fallback
2026-01-13 01:53:40 +00:00
Abhi
ba1d80bd00
formatting fix
2026-01-13 01:48:56 +00:00
Abhi
4dfcd56893
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
c012019a8a
fix: enforce reasoning tags on fallback providers ( #810 ) (thanks @mcinteerj)
2026-01-13 01:46:21 +00:00
Keith the Silly Goose
7896b30489
fix(auto-reply): enforce reasoning tags on fallback providers
2026-01-13 01:40:55 +00:00
Peter Steinberger
ffc465394e
fix: enforce message context isolation
2026-01-13 01:19:14 +00:00
Peter Steinberger
0edbdb1948
fix: downgrade Gemini tool history
2026-01-13 01:19:13 +00:00
hsrvc
5dc187f00c
fix: accept Claude/Gemini tool param aliases
2026-01-13 01:19:13 +00:00
Peter Steinberger
231d2d5fdf
fix(config): require doctor for invalid configs ( #764 — thanks @mukhtharcm)
2026-01-13 01:18:18 +00:00
Muhammed Mukhthar CM
20ba8d4891
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
dd8f7552ad
refactor: reuse dispatcher helper for native commands
2026-01-13 01:07:59 +00:00
Rony Kelner
07bdb8af7e
fix: pass --non-interactive to doctor during update
2026-01-13 00:57:18 +00:00
Peter Steinberger
6a48688c09
fix: stream native slash tool replies
2026-01-13 00:53:30 +00:00
Peter Steinberger
c03a745f61
test: expand Minimax XML strip coverage
2026-01-13 00:43:59 +00:00
Peter Steinberger
48fdf3775d
test: cover user turn merging
2026-01-13 00:42:15 +00:00
Peter Steinberger
e2ea20f862
fix: gate minimax XML stripping ( #809 ) (thanks @latitudeki5223)
2026-01-13 00:36:39 +00:00
L36 Server
1eb924739b
style: fix import order in pi-embedded-utils.test.ts
2026-01-13 00:34:01 +00:00
L36 Server
350f956f2c
fix(minimax): strip tool invocation XML from assistant text
2026-01-13 00:34:01 +00:00
Peter Steinberger
4f3bedfdb7
fix: align discord autoThread config types
2026-01-13 00:22:42 +00:00
Peter Steinberger
6f75feaeb8
refactor: reuse model selection assertions
2026-01-13 00:20:08 +00:00
Peter Steinberger
a4bd960880
refactor: streamline thread reply planning
2026-01-13 00:15:29 +00:00
Peter Steinberger
3636a2bf51
refactor: unify message tool + CLI
2026-01-13 00:12:57 +00:00
Peter Steinberger
ce23c70855
fix: validate Anthropic turn order ( #804 ) (thanks @ThomsenDrake)
2026-01-12 23:43:25 +00:00
Drake Thomsen
c5fa757ef6
fix(agents): prevent Anthropic 400 'Incorrect role information' error
...
Add validateAnthropicTurns() to merge consecutive user messages that can
occur when steering messages are injected during streaming. This prevents
the API from rejecting requests due to improper role alternation.
Changes:
- Add validateAnthropicTurns() function in pi-embedded-helpers.ts
- Integrate validation into sanitization pipeline in pi-embedded-runner.ts
- Add user-friendly error message for role ordering errors
- Add comprehensive tests for the new validation function
2026-01-12 23:42:13 +00:00
Peter Steinberger
bb9a9633a8
fix: align reply threading refs
2026-01-12 23:41:40 +00:00
Peter Steinberger
ca98f87b2f
chore: reinforce memory recall prompts
2026-01-12 23:29:56 +00:00
Peter Steinberger
df64771ecf
test: cover fuzzy model selection
2026-01-12 23:16:54 +00:00
Peter Steinberger
cbe11e3de0
fix: address lint warnings
2026-01-12 23:13:40 +00:00
Peter Steinberger
daa753112c
fix: unblock auto-reply lint/typecheck
2026-01-12 23:13:39 +00:00
David Guttman
2e654e8d63
Fix Discord autoThread thread-only replies ( #807 )
...
Co-authored-by: Shadow <shadow@clawd.bot>
2026-01-12 17:11:48 -06:00
Peter Steinberger
cf92099d40
test(auto-reply): fix heartbeat typing block reply assertions
2026-01-12 23:01:53 +00:00
Peter Steinberger
a8680f9a09
fix(auto-reply): fix streaming block reply media handling
2026-01-12 22:59:36 +00:00
Peter Steinberger
2e08a868a7
style: format native commands bits
2026-01-12 22:59:36 +00:00
Peter Steinberger
2785009c6f
fix(config): resolve native commands schemas
2026-01-12 22:59:36 +00:00
Peter Steinberger
73d9469bf8
fix(telegram): tolerate missing native command APIs
2026-01-12 22:59:36 +00:00
Peter Steinberger
72100ba3ab
refactor(sandbox): drop legacy memory shorthand
2026-01-12 22:59:36 +00:00
Peter Steinberger
ec5099db89
fix: pick best fuzzy model match
2026-01-12 22:59:35 +00:00
Peter Steinberger
209380edf8
Merge pull request #801 from mcinteerj/fix/restore-reasoning-tag-check
...
fix(agent): restore reasoning tag enforcement for non-ollama providers
2026-01-12 22:59:13 +00:00
Peter Steinberger
cf8251bb81
test: cover typing signals from block and tool streams
2026-01-12 22:55:17 +00:00
Peter Steinberger
fd768334a9
refactor: fast-lane directives helpers
2026-01-12 22:34:13 +00:00
Peter Steinberger
27d940f5b6
refactor: reuse streaming text normalizer across callbacks
2026-01-12 22:27:56 +00:00
Peter Steinberger
7ba72aeb6c
fix: make pw download tests platform-safe
2026-01-12 22:27:19 +00:00
Peter Steinberger
9d5bf38416
style(telegram): format bot.ts
2026-01-12 22:19:02 +00:00
Peter Steinberger
e0c1f2fdc0
test(agents): avoid Copilot token fetch in image-tool tests
2026-01-12 22:19:02 +00:00
Peter Steinberger
08fdac0561
fix(telegram): guard setMyCommands in native commands
2026-01-12 22:19:02 +00:00
Peter Steinberger
d3eeddfc2f
chore: fix lint after rebase
2026-01-12 22:19:02 +00:00
Peter Steinberger
9da97d1a41
test(browser): expand scrollintoview coverage
2026-01-12 22:19:02 +00:00
Peter Steinberger
29b7b2068a
refactor: centralize streaming text normalization
2026-01-12 22:17:14 +00:00
Peter Steinberger
f4ab057807
fix: start typing on partial deltas
2026-01-12 22:16:29 +00:00
Peter Steinberger
f13db1c836
test: guard telegram native commands when mock lacks .command
2026-01-12 22:12:16 +00:00
Peter Steinberger
59063a7c15
test: skip setMyCommands when API mock lacks it
2026-01-12 22:08:53 +00:00
Peter Steinberger
5bc4971432
chore: fix lint warnings
2026-01-12 22:07:39 +00:00
Peter Steinberger
59c8d2d17f
docs: clarify sandbox bind mounts ( #790 )
2026-01-12 22:06:35 +00:00
Peter Steinberger
21405b0dfc
fix(discord): rebalance reasoning italics
2026-01-12 22:01:48 +00:00
Peter Steinberger
256304037e
fix: keep Claude file_path aliases validated
2026-01-12 22:00:08 +00:00
Peter Steinberger
bbc34215a2
fix: land sandbox binds ( #790 ) (thanks @akonyer)
2026-01-12 21:58:16 +00:00
Aaron Konyer
583fc4fb11
test(sandbox): add coverage for binds -v flag emission
2026-01-12 21:57:51 +00:00
Aaron Konyer
0b2b8c7c52
Add docker bind mounds for sandboxing
2026-01-12 21:57:51 +00:00
Peter Steinberger
5d83be76c9
test: cover mixed directive fast-lane
2026-01-12 21:57:10 +00:00
Peter Steinberger
fcaeee7073
test(browser): cover scrollintoview
2026-01-12 21:56:27 +00:00
Peter Steinberger
6857f16609
feat(browser): add scrollintoview action
2026-01-12 21:56:27 +00:00
Peter Steinberger
2faf7cea93
feat(sandbox): add tool-policy groups
2026-01-12 21:51:49 +00:00
Peter Steinberger
26d5cca97c
feat: auto native commands defaults
2026-01-12 21:49:44 +00:00
Peter Steinberger
99fea64823
fix: fast-lane directives bypass queue dedupe
2026-01-12 21:44:19 +00:00
Peter Steinberger
42c17adb5e
feat: restore voice-call plugin parity
2026-01-12 21:44:19 +00:00
Zach Knickerbocker
3467b0ba07
Discord: add allowBots config option ( #802 )
...
Co-authored-by: Shadow <shadow@clawd.bot>
2026-01-12 15:30:05 -06:00
Peter Steinberger
490cb834e5
style: italicize reasoning output
2026-01-12 21:24:36 +00:00
Peter Steinberger
cd12ad8aab
fix(image): accept @-prefixed file paths
2026-01-12 20:53:16 +00:00
Jake
eceb41f6f7
fix(agent): restore reasoning tag enforcement for non-ollama providers
...
This restores the fix from PR #754 which was accidentally reverted in bf11a42c3 .
2026-01-13 09:47:04 +13:00
Peter Steinberger
e961e02f71
fix(gateway): quiet loopback ws closes
2026-01-12 20:38:34 +00:00
Peter Steinberger
36a02b3e67
fix(image): route MiniMax vision to VLM
2026-01-12 20:38:34 +00:00
David Guttman
b73042500e
Discord: per-channel autoThread ( #800 )
...
Co-authored-by: Shadow <shadow@clawd.bot>
2026-01-12 14:33:07 -06:00
Peter Steinberger
f839d949b2
test(browser): cover downloads + responsebody
2026-01-12 19:41:12 +00:00
Peter Steinberger
d4f7dc067e
feat(browser): add downloads + response bodies
2026-01-12 19:41:12 +00:00
Peter Steinberger
ddd4b55cf6
fix: prevent onboarding TUI auto-delivery ( #791 ) (thanks @roshanasingh4)
2026-01-12 19:38:52 +00:00
Roshan Singh
298c6eea1f
Fix: prevent onboarding TUI auto-delivery
2026-01-12 19:31:04 +00:00
Peter Steinberger
55aeb8a0d3
fix(image): drop temperature for OpenAI
2026-01-12 19:09:15 +00:00
Peter Steinberger
86ea00dc21
fix(tools): accept legacy bash tool calls
2026-01-12 19:09:15 +00:00
Peter Steinberger
a0a7e74a62
fix(models): preserve implicit vision models
2026-01-12 19:09:15 +00:00
Peter Steinberger
bb7397c636
feat: add dashboard command
2026-01-12 19:08:29 +00:00
Peter Steinberger
7dc44b04c1
fix: close memory index and refresh protocol outputs
2026-01-12 18:49:24 +00:00
Peter Steinberger
45232137a2
fix(logging): honor silent console level
2026-01-12 18:46:40 +00:00
Peter Steinberger
b1c3e38df0
refactor(models): share implicit providers
2026-01-12 18:46:40 +00:00
Peter Steinberger
0be62c3542
fix(image): fail over on empty output
2026-01-12 18:46:16 +00:00
Peter Steinberger
523f91758d
test(browser): extend automation coverage
2026-01-12 18:42:46 +00:00
Peter Steinberger
ffbcd83d1e
chore: log elevated and reasoning toggles
2026-01-12 18:37:44 +00:00
Peter Steinberger
1baf9f6a83
fix(image): normalize mime type handling
2026-01-12 18:24:11 +00:00
Peter Steinberger
77b20377cc
fix: stabilize session tools and tests
2026-01-12 18:21:20 +00:00
Peter Steinberger
3ffb9a3b5e
fix: keep session sanitizer stable
2026-01-12 18:19:30 +00:00
Peter Steinberger
29807119d5
chore: format tool guard files
2026-01-12 18:19:30 +00:00
Peter Steinberger
b88ea39b83
fix: add subagent default model typing
2026-01-12 18:18:15 +00:00
Peter Steinberger
0a2dcd844b
fix(image): support data URLs
2026-01-12 18:17:43 +00:00
Peter Steinberger
2ed95634fe
fix: relax image tool agentDir guard
2026-01-12 18:12:51 +00:00
Peter Steinberger
7b93356fb7
feat: subagent model defaults
2026-01-12 18:08:30 +00:00
Peter Steinberger
17ff25bd20
fix(sandbox): always allow image tool
2026-01-12 18:07:34 +00:00
Peter Steinberger
d24de1ec3b
feat(sandbox): allow image tool
2026-01-12 17:56:51 +00:00
Peter Steinberger
44e1f271c8
fix: keep image sanitizer scoped
2026-01-12 17:55:45 +00:00
Peter Steinberger
8ff09f8337
feat(image): auto-pair image model
2026-01-12 17:50:47 +00:00
Peter Steinberger
e91aa0657e
fix: add copilot tests and lint fixes
2026-01-12 17:48:08 +00:00
Ayaan Zaidi
14801b46fc
Merge pull request #792 from clawdbot/fix/gateway-auth-off
...
fix: clear gateway auth when set to off
2026-01-12 23:10:15 +05:30
Peter Steinberger
35bbc2ba87
feat(cli): expand browser commands
2026-01-12 17:32:44 +00:00
Peter Steinberger
cf78d28d74
test(browser): add regression coverage
2026-01-12 17:32:44 +00:00
Peter Steinberger
eeca541dde
feat(browser): expand browser control surface
2026-01-12 17:32:44 +00:00
Ayaan Zaidi
4bba49770d
fix: clear gateway auth on off selection
2026-01-12 22:59:37 +05:30
Peter Steinberger
f5d5661adf
fix: guard session tool results
2026-01-12 17:28:46 +00:00
Peter Steinberger
f83fb70360
fix: keep main agent in list output
2026-01-12 17:24:03 +00:00
Peter Steinberger
355c13564c
fix: restore heartbeat defaults and model listing
2026-01-12 17:17:54 +00:00
Peter Steinberger
f1dd59bf82
test: update heartbeat and agent list thresholds
2026-01-12 17:14:04 +00:00
Peter Steinberger
fd1e959c2d
fix: clean up models-config provider normalization
2026-01-12 17:14:04 +00:00
Peter Steinberger
05ac67c520
refactor: split models-config provider helpers
2026-01-12 17:05:53 +00:00
Peter Steinberger
f5ee2b3a4f
Merge pull request #705 from TAGOOZ/feat/github-copilot-onboard
...
feat: add GitHub Copilot provider
2026-01-12 16:56:51 +00:00
Peter Steinberger
8afdf75e2b
fix: honor copilot config and profiles ( #705 ) (thanks @TAGOOZ)
2026-01-12 16:55:47 +00:00
Peter Steinberger
5a3eb5ad62
test: cover models.json apiKey fill
2026-01-12 16:52:43 +00:00
Peter Steinberger
79beb20ba2
fix: make models.json generation fill apiKey
2026-01-12 16:52:43 +00:00
Mustafa Tag Eldeen
3da1afed68
feat: add GitHub Copilot provider
...
Copilot device login + onboarding option; model list auth detection.
2026-01-12 16:52:15 +00:00
Ayaan Zaidi
adaa30c73a
test(telegram): cover General topic typing fallback
2026-01-12 22:03:42 +05:30
Azade
ff292e67ce
fix(telegram): show typing indicator in General forum topic
...
In forum supergroups, messages from the General topic arrive without
message_thread_id in updates, but sendChatAction requires one to display
the typing indicator in the correct topic.
Use message_thread_id=1 (Telegram's internal ID for General topic) as
fallback when messageThreadId is undefined in a forum chat.
2026-01-12 22:01:21 +05:30
Peter Steinberger
bf11a42c37
feat: add memory vector search
2026-01-12 11:23:44 +00:00
Peter Steinberger
8049f33435
chore: sanitize onboarding api keys
2026-01-12 11:18:31 +00:00
Peter Steinberger
115591c5b6
feat: add cron agent binding
2026-01-12 11:07:38 +00:00
Peter Steinberger
a3938d62f6
chore: raise heartbeat ack window
2026-01-12 11:06:46 +00:00
Peter Steinberger
3c7a8579ad
test: cover minimax env provider injection
2026-01-12 11:05:08 +00:00
Peter Steinberger
f5a9421b10
fix: auto-add minimax provider from auth
2026-01-12 11:05:08 +00:00
Peter Steinberger
562d0e3b5f
fix: avoid duplicate status replies
2026-01-12 11:04:03 +00:00
Peter Steinberger
bf7e813573
chore: release 2026.1.11-4
2026-01-12 10:52:34 +00:00
Peter Steinberger
5a29ec78ca
chore: release 2026.1.11-3
2026-01-12 10:35:50 +00:00
Peter Steinberger
8fb655198f
test: skip lan auto-token on windows
2026-01-12 09:20:37 +00:00
Peter Steinberger
a4308a2428
chore: tidy changelog and format
2026-01-12 09:14:44 +00:00
Peter Steinberger
f102d1bb9d
fix: add ws handshake user agent
2026-01-12 09:08:07 +00:00
Peter Steinberger
d8feadb57a
fix: strip gemini cli tool ids ( #756 )
2026-01-12 09:01:19 +00:00
Peter Steinberger
1050126132
fix: default groupPolicy to open for discord/telegram
2026-01-12 08:55:02 +00:00
Peter Steinberger
9554292083
fix: default groupPolicy to open
2026-01-12 08:55:02 +00:00
Peter Steinberger
a8f67f0be6
fix: only strip inline /status for allowlisted senders
2026-01-12 08:55:02 +00:00
Peter Steinberger
fadad6e061
feat: role snapshot refs for browser
2026-01-12 08:55:02 +00:00
Peter Steinberger
6711eaf8a5
fix: finalize tool param aliasing ( #768 ) (thanks @hsrvc)
2026-01-12 08:49:11 +00:00
hsrvc
71fdc829e6
Agents: add Claude Code parameter aliasing for read/write/edit tools
2026-01-12 08:49:11 +00:00
Peter Steinberger
19c96e8c0b
Merge pull request #754 from mcinteerj/fix/reasoning-tag-strip
...
fix(agent): prevent reasoning and tag leaks for Gemini 3/Antigravity models
2026-01-12 08:47:15 +00:00
Peter Steinberger
98e75fce17
test: align group policy defaults
2026-01-12 08:45:57 +00:00
Peter Steinberger
252841ab13
fix: enforce final tag gating ( #754 ) (thanks @mcinteerj)
2026-01-12 08:45:23 +00:00
Keith the Silly Goose
a7cb270999
fix(agent): buffer streaming output until <final> tag appears
...
- Enforces strict buffering when enforceFinalTag is enabled.
- Prevents 'thinking out loud' planning steps (e.g. '*Locating Manulife*') from leaking to WhatsApp.
- Hardens <final> tag stripping to remove nested/hallucinated tags.
2026-01-12 08:34:06 +00:00
Keith the Silly Goose
efdf874407
fix(agent): correctly strip <final> tags from reasoning providers
...
- Added src/utils/provider-utils.ts to track reasoning provider logic
- Updated isReasoningTagProvider to loosely match 'google-antigravity' (fixes sub-models)
- Enabled enforceFinalTag in reply.ts when provider matches
- Verified <final> tag stripping logic in pi-embedded-subscribe.ts
- Updated pi-embedded-runner to use consistent provider check for prompt hints
2026-01-12 08:34:06 +00:00
Peter Steinberger
7db1cbe178
fix: improve daemon node selection
2026-01-12 08:33:32 +00:00
Peter Steinberger
006e1352d8
fix: harden msteams group access
2026-01-12 08:32:08 +00:00
Peter Steinberger
4d075a703e
fix: add ws handshake context
2026-01-12 08:30:08 +00:00
Peter Steinberger
842e91d019
fix: default groupPolicy to allowlist
2026-01-12 08:22:01 +00:00
Peter Steinberger
d0ba56c5ac
fix: set default model after auth choice
2026-01-12 08:04:32 +00:00
Peter Steinberger
b8f8e7f4dd
fix: correct MiniMax Lightning hint
2026-01-12 08:04:32 +00:00
Peter Steinberger
3fba8ceb97
test(model): cover provider-less id fuzzy match
2026-01-12 08:02:55 +00:00
Peter Steinberger
60823fd9bd
feat(model): fuzzy /model matching
2026-01-12 07:57:53 +00:00
Peter Steinberger
e79cf5a8b1
feat: improve onboarding auth prompts
2026-01-12 07:47:15 +00:00
Peter Steinberger
018f7aa4df
fix: streamline configure section flow
2026-01-12 07:47:15 +00:00
Peter Steinberger
e1150f1b93
test: expand memory flush coverage
2026-01-12 07:42:03 +00:00
Peter Steinberger
d17fc7e448
fix(auto-reply): preserve inline /status text for unauthorized senders
2026-01-12 07:42:03 +00:00
Peter Steinberger
484a33f348
fix: cap ai snapshots for tool calls ( #763 ) (thanks @thesash)
2026-01-12 07:40:34 +00:00
Sash Catanzarite
d5d8c01dc7
Browser: cap AI snapshots to avoid context overflow
2026-01-12 07:40:34 +00:00
Peter Steinberger
097e66391f
fix(auto-reply): show config models in /model
2026-01-12 07:31:20 +00:00
Peter Steinberger
7466575120
fix: ignore inline status directives
2026-01-12 07:13:08 +00:00
Peter Steinberger
e19a5dc2b1
feat(control-ui): add model presets
2026-01-12 07:09:58 +00:00
Peter Steinberger
f00667ea25
fix: clean up lint + guardCancel typing
2026-01-12 07:07:27 +00:00
Peter Steinberger
1850013cae
fix: modernize live tests and gemini ids
2026-01-12 07:05:33 +00:00
Peter Steinberger
496bad8b98
feat: add Moonshot auth choice
2026-01-12 06:48:06 +00:00
Peter Steinberger
1a89a5dd14
test(model): expand /model picker coverage
2026-01-12 06:34:33 +00:00
Peter Steinberger
5b44825cb3
fix: skip memory flush on read-only workspace
2026-01-12 06:33:27 +00:00
Peter Steinberger
1ffb0fe787
fix: handle inline status for allowlisted senders
2026-01-12 06:33:27 +00:00
Peter Steinberger
46a6d79784
fix: sender fallback for command auth ( #755 ) (thanks @juanpablodlc)
2026-01-12 06:28:53 +00:00
juanpablodlc
20d606c4c4
fix: use logical OR for sender ID fallback in command auth
...
The nullish coalescing operator (??) only skips null/undefined, not
empty strings. For direct WhatsApp messages, ctx.SenderId was an empty
string, causing senderRaw to be "" instead of falling through to the
valid ctx.SenderE164 value.
This caused commands like /status to be rejected with "unauthorized
sender" for self-chat WhatsApp messages.
Tested: Verified /status command now works correctly for self-chat
WhatsApp messages after the fix.
2026-01-12 06:20:51 +00:00
Peter Steinberger
e388334127
test: cover pi session jsonl ordering
2026-01-12 06:19:58 +00:00
Peter Steinberger
c9f2358769
test: clean unused var
2026-01-12 06:14:45 +00:00
Peter Steinberger
4044957819
test: fix lint warning
2026-01-12 06:14:45 +00:00
Peter Steinberger
b185d130ba
test: cover inline slash command fast-path
2026-01-12 06:14:45 +00:00
Peter Steinberger
2bed0d78af
test: stabilize lan auto-token onboarding
2026-01-12 06:13:31 +00:00
Peter Steinberger
0baf08fda1
fix: dedupe minimax non-interactive auth
2026-01-12 06:13:31 +00:00
Peter Steinberger
d0861670bd
feat: simplify minimax auth choice
2026-01-12 06:13:00 +00:00
Peter Steinberger
744fadbded
feat: loop configure section picker
2026-01-12 06:13:00 +00:00
Peter Steinberger
0f257f792a
fix: fast-path slash commands
2026-01-12 06:10:17 +00:00
Peter Steinberger
2da2057a37
feat(model): add /model picker
2026-01-12 06:02:39 +00:00
Peter Steinberger
7dbb21be8e
feat: add pre-compaction memory flush
2026-01-12 05:29:18 +00:00
Peter Steinberger
cc8a2457c0
fix: persist first Pi user message in JSONL
2026-01-12 05:18:05 +00:00
Peter Steinberger
f5c851e11e
fix(models): default MiniMax to /anthropic
2026-01-12 05:12:07 +00:00
Peter Steinberger
873cee6947
feat: streamline wizard selection prompts
2026-01-12 05:08:07 +00:00
Peter Steinberger
51d5f16770
refactor: remove mac attach-only setting
2026-01-12 04:58:38 +00:00
Peter Steinberger
8e1cdf3a1f
fix: require gateway client id
...
# Conflicts:
# apps/macos/Sources/Clawdbot/GatewayChannel.swift
# docs/concepts/typebox.md
# docs/gateway/index.md
# src/commands/onboard-non-interactive.gateway-auth.test.ts
# src/commands/onboard-non-interactive.lan-auto-token.test.ts
# src/gateway/call.ts
# src/gateway/client.ts
# src/gateway/gateway.wizard.e2e.test.ts
# src/gateway/probe.ts
# src/gateway/protocol/schema.ts
# src/gateway/server.auth.test.ts
# src/gateway/server.health.test.ts
# src/gateway/server.ts
# src/gateway/test-helpers.ts
# src/tui/gateway-chat.ts
2026-01-12 04:58:38 +00:00
Peter Steinberger
87f270df23
test: respect openai max tokens floor
2026-01-12 04:04:04 +00:00
Peter Steinberger
8b4bdaa8a4
feat: add apply_patch tool (exec-gated)
2026-01-12 03:42:56 +00:00
Peter Steinberger
6a012fd625
refactor: reuse resolved think default
2026-01-12 03:00:30 +00:00
Peter Steinberger
1fa7a587d6
fix: flush block reply buffers on tool boundaries ( #750 ) (thanks @sebslight)
2026-01-12 02:54:57 +00:00
The Admiral
c64bcd047b
fix: flush block reply coalescer on tool boundaries
...
When block streaming is enabled with verbose=off, tool blocks are hidden
but their boundary information was lost. Text segments before and after
tool execution would get coalesced into a single message because the
coalescer had no signal that a tool had executed between them.
This adds an onBlockReplyFlush callback that fires on tool_execution_start,
allowing the block reply pipeline to flush pending text before the tool
runs. This preserves natural message boundaries even when tools are hidden.
Fixes the issue where:
text → [hidden tool] → text → rendered as one merged message
Now correctly renders as:
text → [hidden tool] → text → two separate messages
Co-diagnosed-by: Krill (Discord assistant)
2026-01-12 02:52:48 +00:00
Peter Steinberger
d4d15c8a71
Merge pull request #751 from gabriel-trigo/fix/think-default-743
...
fix: align /think default with model reasoning
2026-01-12 02:52:25 +00:00
Peter Steinberger
17e6354383
Merge pull request #748 from myfunc/main
...
fix(bash): use PowerShell on Windows to capture system utility output
2026-01-12 02:50:30 +00:00
Gabriel Trigo
99877e8e63
fix: align /think default with model reasoning
2026-01-12 02:50:13 +00:00
Peter Steinberger
98337a14b3
fix: rename bash tool to exec ( #748 ) (thanks @myfunc)
2026-01-12 02:49:55 +00:00
Peter Steinberger
76c8fc8697
fix(sandbox): canonicalize agent main alias
2026-01-12 02:23:02 +00:00
myfunc
b33bd6aaeb
fix(bash): use PowerShell on Windows to capture system utility output
...
Windows system utilities like ipconfig, systeminfo, etc. write directly to
the console via WriteConsole API instead of stdout. When Node.js spawns
cmd.exe with piped stdio, these utilities produce empty output.
Changes:
- Switch from cmd.exe to PowerShell on Windows (properly redirects output)
- Disable detached mode on Windows (PowerShell doesn't pipe stdout when detached)
- Add windowsHide option to prevent console window flashing
- Update tests to use PowerShell-compatible syntax (Start-Sleep, semicolons)
2026-01-12 02:13:02 +00:00
Peter Steinberger
4ced7b886e
docs: fix browser CLI docs link
2026-01-12 02:09:10 +00:00
Peter Steinberger
2941a7002d
fix(subagents): align wait timeout with run timeout
2026-01-12 02:06:43 +00:00
Peter Steinberger
b518fb29c6
test(gateway): cover main alias resolve
2026-01-12 02:06:43 +00:00
Peter Steinberger
f504bfdde8
refactor(gateway): use canonical session store keys
2026-01-12 02:06:43 +00:00
Peter Steinberger
c1236e86fa
test: fix windows nix config path assertion
2026-01-12 02:05:38 +00:00
Peter Steinberger
e3960cde3f
test: add normalizeConfigPaths unit test
2026-01-12 01:55:55 +00:00
Peter Steinberger
ecc6243edc
test: cover tilde path expansion
2026-01-12 01:53:42 +00:00
Peter Steinberger
328d47f1df
fix: normalize ~ in path config
2026-01-12 01:53:42 +00:00
Peter Steinberger
28f97e6152
refactor(sandbox): normalize main session aliases
2026-01-12 01:37:56 +00:00
Peter Steinberger
23a0bf2abe
fix(plugins): extract archives without system tar
2026-01-12 01:36:18 +00:00
Peter Steinberger
07b93e1d26
test: run npm pack via npm-cli.js
2026-01-12 01:31:26 +00:00
Peter Steinberger
5bdb9c0e99
style: format plugin install test
2026-01-12 01:27:01 +00:00
Peter Steinberger
6947ab18dc
fix: load plugin packages from config dirs
2026-01-12 01:25:56 +00:00
Peter Steinberger
177ad3f06d
test: pack plugin archives via npm
2026-01-12 01:25:40 +00:00
Peter Steinberger
58a12a757e
fix(sandbox): avoid sandboxing main DM sessions
2026-01-12 01:24:44 +00:00
Peter Steinberger
f13ae50ff8
test: plugin install + docker e2e
2026-01-12 01:16:42 +00:00
Peter Steinberger
2f4a248314
feat: plugin system + voice-call
2026-01-12 01:16:39 +00:00
Peter Steinberger
9877733748
fix(gateway): canonicalize main session aliases
2026-01-12 01:05:43 +00:00
user
d4e9f23ee9
fix(gateway): normalize session key to canonical form before store writes
...
Ensure 'main' alias is always stored as 'agent:main:main' to prevent
duplicate entries. Also update loadSessionEntry to check both forms
when looking up entries.
Fixes duplicate main sessions in session store.
2026-01-12 00:53:20 +00:00
user
7d6f17d77f
fix(subagent): make announce prompt more emphatic
...
The previous prompt was too permissive about skipping announcements.
Updated to strongly encourage announcing results since the requester
is waiting for a response.
- Add 'You MUST announce your result' instruction
- Clarify ANNOUNCE_SKIP is only for complete failures
- Improve guidance on providing useful summaries
2026-01-12 00:52:36 +00:00
user
0ed7ea698a
fix(subagent): wait for completion before announce
...
The previous immediate probe (timeoutMs: 0) only caught already-completed
runs. Cross-process spawns need to actually wait via agent.wait RPC for
the gateway to signal completion, then trigger the announce flow.
- Rename probeImmediateCompletion to waitForSubagentCompletion
- Use 10 minute wait timeout for agent.wait RPC
- Remove leftover debug console.log statements
2026-01-12 00:52:36 +00:00
Peter Steinberger
74526645eb
test: cover unset docker env vars
2026-01-12 00:46:55 +00:00
Peter Steinberger
cb095c8606
test: fix includes tests on windows
2026-01-12 00:39:14 +00:00
Peter Steinberger
9c8967ef5d
style: biome fixes
2026-01-12 00:32:47 +00:00