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
Peter Steinberger
720b9dd116
fix: make codex keychain platform-aware
2026-01-12 00:32:47 +00:00
Peter Steinberger
9f9f6b75e7
test: expand include coverage
2026-01-12 00:30:26 +00:00
Peter Steinberger
26cbbafc86
fix: skip pnpm patch fallback
2026-01-12 00:28:34 +00:00
Peter Steinberger
67743325ee
fix: reset session after compaction overflow
2026-01-12 00:28:16 +00:00
Peter Steinberger
32df2ef7bd
fix: stabilize invalid-connect handshake response
2026-01-12 00:19:47 +00:00
Peter Steinberger
e3e3498a4b
fix: guard config includes ( #731 ) (thanks @pasogott)
2026-01-12 00:12:03 +00:00
sheeek
53d3134fe8
refactor(config): simplify includes with class-based processor
...
- Replace free functions with IncludeProcessor class
- Simplify IncludeResolver interface: { readFile, parseJson }
- Break down loadFile into focused private methods
- Use reduce() for array include merging
- Cleaner separation of concerns
2026-01-12 00:08:27 +00:00