Commit Graph

181 Commits

Author SHA1 Message Date
Peter Steinberger
c051f971fe fix(status): improve diagnostics and output 2026-01-11 02:42:24 +01:00
Peter Steinberger
b5ca8aeae5 chore(release): 2026.1.11-4 2026-01-11 01:46:41 +01:00
Peter Steinberger
affbfca811 chore(release): 2026.1.11-3 2026-01-11 01:38:15 +01:00
Peter Steinberger
9ccc8676c5 chore(release): 2026.1.11-2 2026-01-11 01:34:51 +01:00
Peter Steinberger
7961ccb243 fix(status): show token previews 2026-01-11 01:11:46 +01:00
Peter Steinberger
50ea8be549 docs(status): add troubleshooting footer 2026-01-11 01:06:58 +01:00
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