Commit Graph

4761 Commits

Author SHA1 Message Date
Shadow
6620983fc5 Docs: fix internal links 2026-01-10 14:51:33 -06:00
Peter Steinberger
305d24c106 fix(openai): drop reasoning replay for tool-only turns 2026-01-10 20:44:23 +00:00
Peter Steinberger
1c9d9bfa3d feat(gateway): add agent image attachments + live probe 2026-01-10 20:44:23 +00:00
Peter Steinberger
d00092352c test: relax reasoning replay expectations 2026-01-10 21:43:52 +01:00
Peter Steinberger
87de07ee74 fix: align opencode-zen provider setup 2026-01-10 21:38:18 +01:00
Peter Steinberger
6fdeab6dc4 fix: describe sandboxed elevated in prompt 2026-01-10 21:37:15 +01:00
Peter Steinberger
376ab2ad71 feat(doctor): offer update first 2026-01-10 21:34:59 +01:00
Peter Steinberger
ebc5707ee7 test: update openai responses reasoning replay 2026-01-10 21:20:26 +01:00
Peter Steinberger
4c35a70738 fix: add whatsapp sender ids to group context 2026-01-10 21:09:08 +01:00
Peter Steinberger
8570330ef4 fix: expose WhatsApp sender ids in group context 2026-01-10 21:09:08 +01:00
Peter Steinberger
82ee7b2a4a fix(ci): sync pnpm patchedDependencies hash 2026-01-10 21:07:53 +01:00
Peter Steinberger
02e04c8fb1 feat: color docs search output 2026-01-10 21:02:27 +01:00
Peter Steinberger
8c463dfde7 docs: expand testing guide 2026-01-10 19:53:34 +00:00
Peter Steinberger
e42b74dc11 feat: add colored CLI docs links 2026-01-10 20:51:03 +01:00
Peter Steinberger
9619920de3 style: biome format 2026-01-10 19:47:17 +00:00
Peter Steinberger
4512269638 test: harden gateway tool probes 2026-01-10 19:46:13 +00:00
Peter Steinberger
720a07469d fix: replay OpenAI reasoning for tool calls 2026-01-10 19:46:13 +00:00
Peter Steinberger
db34accda7 fix: accept Z_AI_API_KEY for zai 2026-01-10 19:46:13 +00:00
Peter Steinberger
732583a610 Merge pull request #640 from mcinteerj/fix/whatsapp-group-reactions
fix(whatsapp): enable reactions in group chats
2026-01-10 19:44:05 +00:00
Peter Steinberger
60bc4381bf fix: update WhatsApp history assertions (#640) (thanks @mcinteerj) 2026-01-10 20:41:30 +01:00
Jake
6d2d136f1a fix(whatsapp): preserve group message IDs and normalize reaction participants 2026-01-10 20:36:32 +01:00
Peter Steinberger
fda4fa90b8 docs: document clawdbot update 2026-01-10 20:33:02 +01:00
Peter Steinberger
da8fcb8b25 fix(update): harden root selection 2026-01-10 20:33:02 +01:00
Claude
6e6679cfa3 CLI: add clawdbot update command and --update flag 2026-01-10 20:33:02 +01:00
Peter Steinberger
2df5727757 feat(sandbox): add sandbox explain inspector 2026-01-10 20:28:43 +01:00
Peter Steinberger
fbaaaa9ffe test: add image attachment regression coverage 2026-01-10 20:25:38 +01:00
Peter Steinberger
a47ddec3b7 fix: repair tool-use history for anthropic 2026-01-10 19:15:57 +00:00
Peter Steinberger
5cde685a50 Merge pull request #670 from cristip73/fix/ios-image-attachments
fix: enable image attachments in chat messages for Claude API
2026-01-10 19:07:35 +00:00
Peter Steinberger
b9185d0425 fix: sniff chat attachment mime (#670) (thanks @cristip73) 2026-01-10 20:06:33 +01:00
Peter Steinberger
a000e740c4 docs: add group flow diagram 2026-01-10 20:05:22 +01:00
cristip73
392731b6bd fix: enable image attachments in chat messages for Claude API
Images were previously converted to markdown data URLs which Claude API
treats as plain text, not as actual images.

Changes:
- Add parseMessageWithAttachments() that returns {message, images[]}
- Pass images through the stack to session.prompt() as content blocks
- Filter null/empty attachments before parsing
- Strip data URL prefix if client sends it

This enables iOS and other clients to send images that Claude can actually see.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 20:00:25 +01:00
Peter Steinberger
d932bc4d70 fix: avoid duplicate cli banners 2026-01-10 19:57:24 +01:00
Peter Steinberger
4a9b735c53 docs: clarify group chat behavior 2026-01-10 19:56:46 +01:00
Peter Steinberger
a1332fc3a6 test(gateway): deflake temp HOME cleanup 2026-01-10 19:53:04 +01:00
Peter Steinberger
2bcb81ab86 feat(hooks): allow gmail tailscale target URLs 2026-01-10 19:19:43 +01:00
Peter Steinberger
cf3283e630 docs: clarify tailscale gmail path forwarding 2026-01-10 19:19:43 +01:00
Peter Steinberger
6d2def4753 docs: call out group history limits 2026-01-10 19:19:31 +01:00
Peter Steinberger
ab5bfc7038 test: rename signal reaction-only test (#637) 2026-01-10 19:19:05 +01:00
Peter Steinberger
91f7b7f22f docs: update changelog for unified history 2026-01-10 19:16:26 +01:00
Peter Steinberger
7b00acb144 refactor: centralize history context wrapping 2026-01-10 19:16:26 +01:00
Peter Steinberger
92caa192e9 chore: fix lint and typing 2026-01-10 19:16:25 +01:00
Peter Steinberger
5e01b0a530 docs: document history context overrides 2026-01-10 19:16:25 +01:00
Peter Steinberger
263556e6e6 feat: unify provider history context 2026-01-10 19:16:25 +01:00
Peter Steinberger
0494a8809d test: adjust tool id sanitization 2026-01-10 18:15:15 +00:00
Peter Steinberger
22fc3dad7b style: format helper 2026-01-10 18:15:15 +00:00
Peter Steinberger
f28becf7a8 fix: restore minimax tool calling 2026-01-10 18:15:15 +00:00
Peter Steinberger
6612fb7310 fix(deps): patch pi-ai tool calling 2026-01-10 18:15:15 +00:00
Peter Steinberger
57ed84043e Merge pull request #637 from neist/main
fix(signal): handle reactions in dataMessage.reaction format
2026-01-10 18:14:30 +00:00
Peter Steinberger
080748169a fix: signal handle dataMessage.reaction safely (#637) (thanks @neist) 2026-01-10 19:13:23 +01:00
Kasper Neist Christjansen
a606493c53 fix(signal): handle reactions in dataMessage.reaction format (#1)
* fix(signal): handle reactions inside dataMessage.reaction

Signal reactions can arrive in two formats:
1. envelope.reactionMessage (already handled)
2. envelope.dataMessage.reaction (now handled)

The signal-cli SSE events use the second format, which was being
misinterpreted as a message with attachments, leading to 'broken
media / attachments' errors.

Changes:
- Add reaction property to SignalDataMessage type
- Check both envelope.reactionMessage and dataMessage.reaction
- Improve body content detection to properly identify reaction-only messages
- Add test for dataMessage.reaction format

* fix(signal): reaction notifications work when account is phone number

When reactionNotifications mode is 'own', notifications would never fire
because resolveSignalReactionTarget() returned a UUID but
shouldEmitSignalReactionNotification() compared it against the account
phone number, which never matched.

The fix:
- Add optional 'phone' field to SignalReactionTarget type
- Extract phone number first in resolveSignalReactionTarget(), include
  it even when UUID is present
- In shouldEmitSignalReactionNotification() 'own' mode, check phone
  match first before falling back to UUID comparison

This ensures reactions to your own messages are properly detected when
the Signal account is configured as a phone number and the reaction
event contains both targetAuthor (phone) and targetAuthorUuid.

* fix(signal): include phone in reaction target for own-mode matching

When targetAuthorUuid is present, also store targetAuthor phone number
in the reaction target. This allows own-mode reaction notifications to
match when comparing account phone against UUID-based targets.
2026-01-10 19:10:39 +01:00