Peter Steinberger
f4dfeff1b5
fix(status): provider setup vs warn
2026-01-11 01:05:06 +01:00
Peter Steinberger
86b59363ea
fix(status): full-width tables + better diagnosis
2026-01-11 00:54:27 +01:00
Peter Steinberger
305d24c106
fix(openai): drop reasoning replay for tool-only turns
2026-01-10 20:44:23 +00:00
Shadow
28c878244d
Deps: bump carbon beta
2026-01-10 11:40:27 -06:00
Peter Steinberger
3e38e020ef
chore(docs): quiet docs build output
2026-01-10 16:04:32 +00:00
Peter Steinberger
49937cc973
test(docker): add multi-container gateway network smoke
2026-01-10 04:14:39 +00:00
Peter Steinberger
9d7204ba81
chore(release): bump to 2026.1.10
2026-01-10 04:55:43 +01:00
Peter Steinberger
4adc8b53e1
fix(release): include whatsapp in npm pack
2026-01-10 04:34:24 +01:00
Peter Steinberger
ab6f7d7aa7
fix(release): include msteams in npm pack
2026-01-10 04:30:56 +01:00
Peter Steinberger
953dc2d233
docs(testing): refresh live docker runners
2026-01-10 03:06:07 +00:00
Peter Steinberger
ddd346604d
fix: restore Anthropic OAuth tool dispatch
2026-01-10 04:01:00 +01:00
Peter Steinberger
8c5601966b
chore: add dev gateway/tui scripts
2026-01-10 03:53:32 +01:00
Peter Steinberger
2b2039112d
test(live): probe Read tool via gateway
2026-01-10 02:25:24 +00:00
Peter Steinberger
b22f6c22e2
chore: sync pnpm patches after pull
2026-01-10 02:17:19 +01:00
Peter Steinberger
0179ea19be
fix(pnpm): regenerate patchedDependencies
2026-01-10 01:09:41 +00:00
Peter Steinberger
09b836b593
fix: clarify sessions_send delivery semantics
2026-01-10 00:34:24 +01:00
Peter Steinberger
5f5dd47e3b
chore: bump pi libs and oxlint-tsgolint
2026-01-09 22:23:58 +00:00
Peter Steinberger
51023286d0
chore: set version to 2026.1.9
2026-01-09 22:42:25 +01:00
Peter Steinberger
9d4b7cbbff
chore: set version to 2026.1.8
2026-01-09 22:22:32 +01:00
Shadow
a824c10a59
update carbon
2026-01-09 13:52:59 -06:00
Peter Steinberger
1a3d0bace2
chore: add pnpm app workflow scripts
2026-01-09 19:38:48 +00:00
Shadow
6df49ba164
chore: update carbon
2026-01-09 13:22:32 -06:00
Peter Steinberger
e8df3caea6
fix: scope 429 fast-fail to antigravity ( #561 ) (thanks @mukhtharcm)
2026-01-09 18:13:47 +01:00
Muhammed Mukhthar CM
98c338b449
fix(antigravity): add fail-fast on 429 rate limit
...
When Antigravity returns 429, throw immediately instead of waiting for the
server-provided retry delay (which can be 10+ minutes). This lets clawdbot
quickly rotate to another account.
This patch was previously in PR #454 but was accidentally removed in b785f8d
when bumping to pi-ai 0.40.0. The upstream release did NOT include this fix.
Context: Antigravity rate limits cause pi-ai to sleep for the full retry
delay inside the request, blocking the thread. Clawdbot's timeout would
eventually fire, but waiting 10+ minutes is unacceptable UX.
Bundled with the empty error message filter since both handle 429 recovery.
2026-01-09 18:10:23 +01:00
Muhammed Mukhthar CM
22ea5d1b6e
fix: filter empty error messages to prevent session corruption
...
When 429/500 errors occur during tool execution, empty assistant messages
with stopReason='error' and content=[] get persisted to the session file.
These break the tool_use -> tool_result chain that Claude/Gemini require:
- Claude expects every tool_use block to have a matching tool_result
- Empty error messages inserted mid-sequence violate this invariant
- Results in: 'tool_use ids were found without tool_result blocks'
This patch filters out empty error messages when building session context,
allowing sessions to recover gracefully from transient API errors.
Evidence from production:
- 113 of 170 sessions had empty error messages
- Session 30764430 demonstrated recovery: 429 at 14:30:11 IST,
resumed successfully at 14:30:22, completed at 14:30:34
Sorry Peter, one more patch! 🙈
2026-01-09 18:10:23 +01:00
Shadow
dd7b0c96b6
fix: update carbon version for gateway fixes
2026-01-09 10:56:13 -06:00
Peter Steinberger
8f4592a883
fix: audit doctor service entrypoint
2026-01-09 17:50:28 +01:00
Peter Steinberger
d7c3673397
chore: make pnpm test non-watch
2026-01-09 16:49:02 +01:00
Onur
c907a16e94
feat(msteams): add MS Teams provider skeleton
...
- Add Microsoft 365 Agents SDK packages (@microsoft/agents-hosting,
@microsoft/agents-hosting-express, @microsoft/agents-hosting-extensions-teams)
- Add MSTeamsConfig type and zod schema
- Create src/msteams/ provider with monitor, token, send, probe
- Wire provider into gateway (server-providers.ts, server.ts)
- Add msteams to all provider type unions (hooks, queue, cron, etc.)
- Update implementation guide with new SDK and progress
2026-01-09 11:05:34 +01:00
Peter Steinberger
d4fcbc26b2
chore: bump versions to 2026.1.9
2026-01-09 10:02:15 +01:00
Peter Steinberger
869fafcc45
chore: update dependencies
2026-01-09 05:25:08 +00:00
Peter Steinberger
7076b7109f
chore: update pi deps
2026-01-09 05:38:21 +01:00
Jake
b785f8df4c
chore: bump Pi to 0.40.0 and revert PR #454 pi-ai patch
...
- Upgrade @mariozechner/pi-* packages from 0.38.0 to 0.40.0
- Remove pi-ai patch (upstream 429 fix in 0.40.0 supersedes PR #454 )
- Update CHANGELOG
2026-01-09 02:12:19 +01:00
Peter Steinberger
fcb5912907
chore: bump version to 2026.1.8-2
2026-01-08 12:23:01 +01:00
Peter Steinberger
8ee5673634
chore: bump version to 2026.1.8-1
2026-01-08 10:35:35 +01:00
Peter Steinberger
090584c58a
chore: include runtime markdown dependency
2026-01-08 09:25:11 +01:00
Peter Steinberger
24cafda943
chore: bump version to 2026.1.8
2026-01-08 05:15:51 +00:00
Peter Steinberger
3e55ab37ce
chore(deps): update dependencies
2026-01-08 04:55:14 +00:00
Peter Steinberger
9e6c6d2b11
feat: refresh CLI output styling and progress
2026-01-08 05:20:39 +01:00
mneves75
fc0223f264
feat(agent): auto-enable GLM-4.7 thinking mode
...
Add automatic thinking mode support for Z.AI GLM-4.x models:
- GLM-4.7: Preserved thinking (clear_thinking: false)
- GLM-4.5/4.6: Interleaved thinking (clear_thinking: true)
Uses Z.AI Cloud API format: thinking: { type: "enabled", clear_thinking: boolean }
Includes patches for pi-ai, pi-agent-core, and pi-coding-agent to pass
extraParams through the stream pipeline. User can override via config
or disable via --thinking off.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 04:10:56 +01:00
Peter Steinberger
494f349d21
chore(test): add ui test script
2026-01-08 03:50:11 +01:00
Peter Steinberger
b670fa9dfb
test: split live tests into separate config
2026-01-08 02:00:11 +01:00
mneves75
d03d152628
feat(telegram): wire replyToMode config, add forum topic support, fix messaging tool duplicates
...
Changes:
- Default replyToMode from "off" to "first" for better threading UX
- Add messageThreadId and replyToMessageId params for forum topic support
- Add messaging tool duplicate detection to suppress redundant block replies
- Add sendMessage action to telegram tool schema
- Add @grammyjs/types devDependency for proper TypeScript typing
- Remove @ts-nocheck and fix all type errors in send.ts
- Add comprehensive docs/telegram.md documentation
- Add PR-326-REVIEW.md with John Carmack-level code review
Test coverage:
- normalizeTextForComparison: 5 cases
- isMessagingToolDuplicate: 7 cases
- sendMessageTelegram thread params: 5 cases
- handleTelegramAction sendMessage: 4 cases
- Forum topic isolation: 4 cases
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 00:50:47 +00:00
Muhammed Mukhthar CM
689d529e16
feat(telegram): use grammyjs/runner for concurrent update processing
...
Previously, grammY's default bot.start() processed updates sequentially,
blocking all Telegram messages while one was being handled. This made
maxConcurrent settings ineffective for Telegram.
Now uses @grammyjs/runner which processes updates concurrently, matching
the behavior of Discord (Promise.all) and WhatsApp (fire-and-forget).
Benefits:
- Ack reactions (👀 ) appear immediately, not after queue clears
- Multiple chats can be processed in parallel
- maxConcurrent setting now works correctly for Telegram
- Long-running tool calls no longer block other conversations
2026-01-07 22:08:20 +01:00
Peter Steinberger
540d3ca4d1
chore: bump version 2026.1.7
2026-01-07 15:30:05 +00:00
Shadow
98a3321171
chore: bump carbon version
...
Closes #349
Closes #354
2026-01-07 02:58:40 -06:00
Peter Steinberger
0d18b2a650
docs: fix internal doc links
2026-01-07 02:15:46 +01:00
Peter Steinberger
d701a999e8
fix: gateway:watch args
2026-01-07 00:37:32 +00:00
Peter Steinberger
5f2d886dea
chore: make bun optional for source builds
2026-01-06 23:48:24 +00:00
Shadow
5b559080d1
feat(commands): unify chat commands ( #275 )
...
* Chat commands: registry, access groups, Carbon
* Chat commands: clear native commands on disable
* fix(commands): align command surface typing
* docs(changelog): note commands registry (PR #275 )
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 20:17:56 +00:00
Azade
c5b30b31e1
fix(browser): patch playwright-core for Bun WebSocket compatibility
...
Bun's WebSocket implementation doesn't fully support Playwright's CDP
connection because Playwright bundles its own 'ws' module. This causes
connectOverCDP to timeout.
The patch makes Playwright use the native 'ws' module when running
under Bun, which works with Bun's WebSocket shim.
Fixes browser snapshot/act timeouts after PR #278 (tsx → bun migration).
Ref: https://github.com/oven-sh/bun/issues/9911
2026-01-06 19:27:09 +00:00
Peter Steinberger
67b2f07bfb
build(control-ui): prefer bun for UI build
2026-01-06 09:08:25 +01:00
Ayaan Zaidi
757c19e6e7
refactor: replace tsx with bun for TypeScript execution ( #278 )
2026-01-06 07:14:08 +00:00
Peter Steinberger
981eead7ea
fix: improve compaction queueing and oauth flows
2026-01-06 05:41:24 +01:00
Peter Steinberger
7ba5ef9760
docs: add bun install support
2026-01-06 03:41:56 +01:00
Peter Steinberger
0e6b3e6a7e
fix: patch qrcode-terminal import for Node 22
2026-01-06 02:23:55 +01:00
Peter Steinberger
33390d3a72
fix/heartbeat ok delivery filter ( #246 )
...
* cron: skip delivery for HEARTBEAT_OK responses
When an isolated cron job has deliver:true, skip message delivery if the
response is just HEARTBEAT_OK (or contains HEARTBEAT_OK at edges with
short remaining content <= 30 chars). This allows cron jobs to silently
ack when nothing to report but still deliver actual content when there
is something meaningful to say.
Media is still delivered even if text is HEARTBEAT_OK, since the
presence of media indicates there's something to share.
* fix(heartbeat): make ack padding configurable
* chore(deps): update to latest
---------
Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-01-05 22:52:13 +00:00
Peter Steinberger
e4bfcde171
chore: update pi dependencies
2026-01-05 06:19:35 +01:00
Peter Steinberger
c5d12c2251
chore: update deps
2026-01-05 05:27:58 +01:00
Peter Steinberger
23a87643cc
fix: include missing dist dirs in npm pack
2026-01-05 03:56:57 +01:00
Peter Steinberger
e327281a5f
fix: resolve qrcode ESM import for Node 25
2026-01-05 03:47:57 +01:00
Peter Steinberger
d64eb3a779
fix: include sessions in npm pack and update qrcode import
2026-01-05 03:28:25 +01:00
Peter Steinberger
9296b68b2e
feat: add --dev/--profile CLI profiles
2026-01-05 01:27:13 +01:00
Peter Steinberger
fe73288abe
fix(ci): resolve lint and docs build failures
2026-01-05 00:17:14 +00:00
Peter Steinberger
a9d9511f47
chore(release): bump to 2026.1.5
2026-01-04 21:54:04 +01:00
Peter Steinberger
d81ff928f3
fix(ui): render markdown in chat
2026-01-04 21:51:26 +01:00
Peter Steinberger
dbe7d76187
chore: refresh version references
2026-01-04 18:49:36 +01:00
Peter Steinberger
f7cb3846f1
chore: rename project to clawdbot
2026-01-04 14:38:51 +00:00
Muhammed Mukhthar CM
84fb1123dc
fix: Antigravity API compatibility and Gemini thinking tag leakage ( #167 )
...
* fix: ensure type:object in sanitized tool schemas for Antigravity API
The sanitizeSchemaForGoogle function strips unsupported JSON Schema
keywords like anyOf, but this can leave schemas with 'properties' and
'required' fields without a 'type' field. Both Google's Gemini API and
Anthropic via Antigravity require 'type: object' when these fields exist.
This fix adds a post-sanitization check that ensures type is set to
'object' when properties or required fields are present.
Fixes errors like:
- Gemini: 'parameters.properties: only allowed for OBJECT type'
- Anthropic: 'tools.6.custom.input_schema.type: Field required'
* fix: regenerate pi-ai patch with proper pnpm format
The patch now correctly applies via pnpm patch-commit, fixing:
- Thinking blocks: skip for Gemini, send with signature for Claude
- Schema sanitization: ensure type:object after removing anyOf
- Remove strict:null for LM Studio/Antigravity compatibility
Tested with all Antigravity models (Gemini and Claude).
* fix: strip thinking tags from block streaming output to prevent Gemini tag leakage
2026-01-04 12:44:19 +01:00
Shadow
33998f9570
Slack: add some fixes and connect it all up
2026-01-04 01:53:26 -06:00
Peter Steinberger
9c299f6b80
docs: migrate Mintlify config
2026-01-04 00:36:55 +01:00
Peter Steinberger
d751c5e40d
refactor: remove bash pty mode
2026-01-03 20:15:10 +00:00
Peter Steinberger
888f943543
fix: harden block stream dedupe
2026-01-03 18:44:07 +01:00
Peter Steinberger
bad2f272e5
test(gateway): add multi-instance e2e suite
2026-01-03 13:37:46 +01:00
Peter Steinberger
3ff4d4823d
fix: stabilize pi-ai patch + tests
2026-01-03 05:22:09 +01:00
Peter Steinberger
95e4408099
feat: add gateway TUI
2026-01-03 04:47:34 +01:00
Peter Steinberger
4a32edc1e3
templates: add qmd semantic memory recall to AGENTS.md
2026-01-03 01:33:10 +00:00
Peter Steinberger
3a283c51f7
chore: update deps and extend read tool tests
2026-01-02 23:47:28 +01:00
Peter Steinberger
f4ca88dc09
chore: upgrade pi-mono deps to 0.31.1
2026-01-02 23:37:08 +01:00
Peter Steinberger
4d9723e4a0
fix: detect bun relay assets
2026-01-01 18:30:16 +01:00
Peter Steinberger
0e44514bea
feat: add onboarding wizard
2026-01-01 17:58:07 +01:00
Peter Steinberger
094c35868c
fix: align tool schemas and health snapshot
2026-01-01 17:30:19 +01:00
Peter Steinberger
66665fef74
chore: update deps and add control ui routing tests
2025-12-30 14:30:46 +01:00
Peter Steinberger
17adc48648
chore: bump version to 2.0.0-beta5
2025-12-28 14:38:48 +00:00
Peter Steinberger
41ff47c0fc
chore: release 2.0.0-beta4
2025-12-27 19:43:43 +01:00
Peter Steinberger
41b67fd3af
chore: harden release checks
2025-12-27 19:35:39 +01:00
Peter Steinberger
356093dfce
fix(a2ui): skip bundle when inputs unchanged
2025-12-26 18:11:00 +01:00
Peter Steinberger
cdd3de9d9c
build: skip a2ui bundling in build
2025-12-26 16:00:35 +01:00
Shadow
c717aa0c72
feat(discord): Discord transport
2025-12-26 13:20:30 +01:00
Peter Steinberger
bb7d41da10
chore: bump pi-mono deps
2025-12-26 10:20:21 +01:00
Peter Steinberger
e6b9dbf395
chore: require node >=22.12 and fix swiftformat lint
2025-12-25 23:02:31 +01:00
Peter Steinberger
e4d564aabf
chore: add gateway:watch
2025-12-25 18:44:23 +00:00
Peter Steinberger
9030c09329
chore: bump pi-mono deps
2025-12-23 14:07:54 +00:00
Peter Steinberger
8486a9652b
refactor: drop PAM auth and require password for funnel
2025-12-23 13:13:09 +00:00
Peter Steinberger
4fd0154d38
chore: bump internal version to beta3
2025-12-23 04:28:09 +01:00
Peter Steinberger
cd601f1934
chore: add oxlint type-aware lint
2025-12-23 00:28:55 +00:00
Peter Steinberger
3a31a55670
fix: bump pi deps and fix lint
2025-12-22 20:45:38 +00:00
Peter Steinberger
6dfa060f27
refactor: migrate embedded pi to sdk
2025-12-22 18:05:44 +01:00
Peter Steinberger
94a081fcaf
chore: whitelist npm files
2025-12-21 03:48:23 +01:00
Peter Steinberger
af73b51eb7
chore: bump version to 2.0.0-beta2
2025-12-21 03:21:49 +01:00
Peter Steinberger
d57ca24d4b
feat(gateway): add tailscale auth + pam
2025-12-21 00:44:39 +00:00
Peter Steinberger
412d7b65ba
chore(deps): update dependencies
2025-12-20 22:45:15 +00:00
Peter Steinberger
bed37396ab
chore(pi): bump deps, drop steerable transport
2025-12-20 22:38:12 +00:00
Peter Steinberger
9a747c78eb
chore(deps): add chromium-bidi and long
2025-12-20 19:16:41 +00:00
Peter Steinberger
df2b6583b7
fix: use file-type for mime sniffing
2025-12-20 19:13:50 +01:00
Peter Steinberger
ad3fef6b6b
refactor(canvas): host A2UI via gateway
2025-12-20 12:17:27 +00:00
Peter Steinberger
63232f80aa
feat: add managed skills gating
2025-12-20 12:22:38 +01:00
Peter Steinberger
0c00658bfd
fix(deps): include playwright-core in dependencies
2025-12-19 18:38:37 +01:00
Peter Steinberger
0a7299eb77
chore: prep 2.0.0-beta1 release
2025-12-19 18:02:30 +01:00
Peter Steinberger
ce6db1de5f
Gateway: add browser control UI
2025-12-18 22:41:06 +00:00
Peter Steinberger
a0089f669e
Gateway: optional canvas host
2025-12-18 11:35:21 +01:00
Peter Steinberger
4a7a119bd0
A2UI: share bundle via ClawdisKit
2025-12-18 10:44:06 +01:00
Peter Steinberger
3e3aac1f33
ci: fix swiftformat and bun CI
2025-12-18 08:55:47 +01:00
Peter Steinberger
75eeb3750e
refactor(webchat): SwiftUI-only WebChat UI
...
# Conflicts:
# apps/macos/Package.swift
2025-12-17 23:05:28 +01:00
Peter Steinberger
d790867017
Build: add wireit
2025-12-17 13:20:36 +01:00
Peter Steinberger
d17d7ba521
feat: embed pi agent runtime
2025-12-17 11:29:04 +01:00
Peter Steinberger
05e4ee5080
chore(deps): bump pnpm dependencies
2025-12-14 02:37:47 +00:00
Peter Steinberger
d539c6e3e1
style(macos): tidy settings and CLI
2025-12-13 19:23:41 +00:00
Peter Steinberger
38bc85f6c8
chore(deps): add playwright-core
2025-12-13 18:48:49 +00:00
Peter Steinberger
8e2c476db6
chore(deps): update JS deps
2025-12-13 17:52:23 +00:00
Peter Steinberger
f5ce0681bc
feat(discovery): gateway bonjour + node pairing bridge
2025-12-13 03:47:53 +00:00
Peter Steinberger
da4a79c932
Cron: add scheduler, wakeups, and run history
2025-12-13 02:34:38 +00:00
Peter Steinberger
18bb334c66
chore(gateway): use ws bind as lock
2025-12-11 15:17:40 +00:00
Peter Steinberger
efaa1ac75a
test: add test:force helper
2025-12-10 01:00:29 +00:00
Peter Steinberger
ee5077a3ed
chore: update dependencies
2025-12-10 00:48:50 +00:00
Peter Steinberger
ba9d93516a
infra: use flock gateway lock
2025-12-10 00:46:50 +00:00
Peter Steinberger
c78b316d9d
chore: bump pi deps for tau rpc
2025-12-09 21:53:00 +00:00
Peter Steinberger
83bb7ce859
docs: add docs:list helper and front matter
2025-12-09 17:51:05 +00:00
Peter Steinberger
dc27b8ba23
chore: update dependencies
2025-12-09 17:43:22 +01:00
Peter Steinberger
10ffb13aba
Protocol: add TypeBox-driven Swift generator
2025-12-09 15:21:16 +01:00
Peter Steinberger
b966585d7a
Gateway: finalize WS control plane
2025-12-09 14:41:41 +01:00
Peter Steinberger
d54655731f
Webchat: clean server build and add ws types
2025-12-08 16:21:56 +00:00
Peter Steinberger
b07763df7d
Webchat: push updates over WebSocket
2025-12-08 16:19:33 +00:00
Peter Steinberger
cf2d0dd6b3
chore: update dependencies
2025-12-07 22:53:36 +01:00
Peter Steinberger
5a9bf87dba
Add Bun bundle docs and Telegram grammY support
2025-12-07 22:47:05 +01:00
Peter Steinberger
1b888af439
Launch agent: disable autostart without killing running app
2025-12-07 19:01:14 +01:00
Peter Steinberger
8d2fd382e4
build: add local node bin to restart script PATH
2025-12-07 19:01:14 +01:00
Peter Steinberger
8bcf7bace1
macOS: merge status row and fix webchat bundle deps
2025-12-07 17:20:42 +00:00
Peter Steinberger
dd524781f8
webchat: bundle assets with rolldown
2025-12-07 17:44:37 +01:00
Peter Steinberger
d161830b4e
chore: bump version to 2.0.0
2025-12-07 16:28:57 +01:00
Peter Steinberger
b662fcc9d2
chore: purge warelay references
2025-12-07 03:36:57 +00:00
Peter Steinberger
6fa3f24185
fix: bundle pi dependency and directive handling
2025-12-06 00:49:46 +01:00
Peter Steinberger
4d2f480f94
chore: rename package to clawdis
2025-12-05 23:19:46 +01:00
Peter Steinberger
c613569b47
Add bundled pi default and session token reporting
2025-12-05 23:18:43 +01:00
Peter Steinberger
8c6e73dcb4
chore: remove twilio and expand pi cli detection
2025-12-05 21:13:23 +00:00
Peter Steinberger
b7f4470c23
docs: update for web-only pi rpc
2025-12-05 19:04:09 +00:00
Peter Steinberger
ed17fe51bd
Switch to clawdis RPC mode and complete rebrand
2025-12-05 17:22:53 +00:00
Peter Steinberger
195af6408b
chore: bump version to 1.4.0
2025-12-03 15:45:43 +00:00
Peter Steinberger
6c12d50895
chore: bump version to 1.3.0
2025-12-02 07:54:49 +00:00
Peter Steinberger
f13519d277
chore: release 1.2.2
2025-11-28 08:17:22 +01:00