Commit Graph

3498 Commits

Author SHA1 Message Date
Josh Lehman
531e3b6138 style: fix biome formatting 2026-01-07 04:51:33 +00:00
Josh Lehman
df21783d83 fix(routing): handle cross-provider messages in collect mode
When queued messages come from different providers (Slack + Telegram),
process them individually instead of collecting into a single prompt.
This ensures each reply routes back to its originating provider.

- Add hasCrossProviderItems() to detect multi-provider queues
- Skip collect mode when cross-provider detected
- Preserve originatingChannel/originatingTo when collecting same-provider
2026-01-07 04:51:33 +00:00
Josh Lehman
5cb0ab06e1 fix(routing): only route to originating channel when cross-provider
When OriginatingChannel matches Surface (same provider), use normal
dispatcher. Only route via routeReply() when they differ, ensuring
cross-provider messages (e.g., Telegram queued while Slack active)
get routed back to their origin.
2026-01-07 04:51:33 +00:00
Josh Lehman
03de48f43c feat(routing): route replies to originating channel
Implement reply routing based on OriginatingChannel/OriginatingTo fields.
This ensures replies go back to the provider where the message originated
instead of using the session's lastChannel.

Changes:
- Add OriginatingChannel/OriginatingTo fields to MsgContext (templating.ts)
- Add originatingChannel/originatingTo fields to FollowupRun (queue.ts)
- Create route-reply.ts with provider-agnostic router
- Update all providers (Telegram, Slack, Discord, Signal, iMessage)
  to pass originating channel info
- Update reply.ts to pass originating channel to followupRun
- Update followup-runner.ts to use route-reply for originating channels

This addresses the issue where messages from one provider (e.g., Slack)
would receive replies on a different provider (e.g., Telegram) because
the queue used the last active dispatcher instead of the originating one.
2026-01-07 04:51:33 +00:00
Peter Steinberger
7cc342fbd0 fix: harden sub-agent model overrides 2026-01-07 04:48:37 +00:00
Peter Steinberger
c56fc36f8a fix: normalize provider aliases in auth order 2026-01-07 05:43:32 +01:00
mneves75
a25d0027e0 test: format models list alias coverage 2026-01-07 05:31:01 +01:00
mneves75
8bc653ad62 fix: normalize z.ai provider ids in auth profiles 2026-01-07 05:31:01 +01:00
mneves75
98332de51e Docs: update Z.AI configuration 2026-01-07 05:30:46 +01:00
mneves75
89ce8ffd19 Test: cover z.ai normalization 2026-01-07 05:30:06 +01:00
mneves75
793ca72fab Feat: normalize z.ai provider ids 2026-01-07 05:30:06 +01:00
Peter Steinberger
c9609483bb feat(skills): add session-logs skill for searching conversation history
Adds jq-based queries for:
- Listing sessions by date/size
- Searching user/assistant messages
- Extracting costs per session and daily totals
- Tool usage breakdowns
- Cross-session keyword search
2026-01-07 04:13:30 +00:00
Peter Steinberger
316e3c02a9 fix: harden pairing flow 2026-01-07 05:06:04 +01:00
Peter Steinberger
81c5d450e4 fix(doctor): add headless flags + auto-migrate sessions 2026-01-07 04:43:24 +01:00
Peter Steinberger
1bf2cfdb80 fix(imessage): harden abort shutdown 2026-01-07 03:41:23 +00:00
Anton Sotkov
a487bb6279 fix: imsg unhandled promises 2026-01-07 03:41:23 +00:00
Peter Steinberger
727151235b refactor: share reaction schemas and notes 2026-01-07 04:24:11 +01:00
Peter Steinberger
26c12fc7d6 Merge PR #353 2026-01-07 04:18:19 +01:00
Peter Steinberger
b2e4b69db1 fix: clean up reaction tooling 2026-01-07 04:16:39 +01:00
Peter Steinberger
997bac3c34 feat: unify provider reaction tools 2026-01-07 04:16:39 +01:00
Sash Zats
f34532c87d Add WhatsApp reactions support
Summary:

Test Plan:
2026-01-07 04:16:39 +01:00
Peter Steinberger
4c28ab602b refactor(relay): add --smoke entrypoint 2026-01-07 03:12:30 +00:00
Peter Steinberger
94259f0b57 fix(relay): guard QR smoke mode 2026-01-07 02:42:55 +00:00
Peter Steinberger
21a7a49ed4 Merge PR #358 2026-01-07 02:42:53 +00:00
Peter Steinberger
53879a88e1 refactor: unify outbound result envelopes 2026-01-07 02:36:05 +00:00
DB Hurley
efc6767f1c fix(relay): implement CLAWDBOT_SMOKE_QR handler for packaging 2026-01-06 21:32:04 -05:00
Peter Steinberger
a9371fa4eb refactor: streamline outbound payload handling 2026-01-07 02:30:42 +00:00
Peter Steinberger
9e1dc67ba1 fix(outbound): guard optional delivery fields 2026-01-07 02:19:42 +00:00
Peter Steinberger
e8b6da659a fix(telegram): import native reply helper 2026-01-07 02:19:42 +00:00
Peter Steinberger
8fc99495e4 refactor(telegram): polish topic threading 2026-01-07 02:19:42 +00:00
Peter Steinberger
4cb8925026 fix(telegram): support forum topics
Co-authored-by: Daniel Griesser <HazAT@users.noreply.github.com>
Co-authored-by: Nacho Iacovino <nachoiacovino@users.noreply.github.com>
Co-authored-by: Randy Ventures <RandyVentures@users.noreply.github.com>
2026-01-07 02:19:42 +00:00
Peter Steinberger
12347967f1 test: cover gmail tailscale error formatting 2026-01-07 03:16:52 +01:00
Sash Zats
3e714a1e57 Add WhatsApp reactions support
Summary:

Test Plan:
2026-01-06 21:11:52 -05:00
Peter Steinberger
8ff1d8356a fix: improve gmail tailscale errors 2026-01-07 03:10:35 +01:00
Peter Steinberger
46f0197bc7 docs: note community nickname for MiniMax 2026-01-07 03:02:22 +01:00
Peter Steinberger
b041656908 docs: add CLI reference and model links 2026-01-07 02:52:41 +01:00
Peter Steinberger
cd767a3569 feat: add sandbox scope default 2026-01-07 02:52:41 +01:00
Peter Steinberger
a92e52c04d docs: add changelog for PR #348 2026-01-07 02:52:41 +01:00
Peter Steinberger
bd73d288c2 refactor: reuse gateway output helpers 2026-01-07 01:43:02 +00:00
Peter Steinberger
e5ac5c5d79 chore: clean up lint and scratchpad 2026-01-07 01:28:46 +00:00
Peter Steinberger
7e0ed3e79b refactor: unify outbound delivery formatting 2026-01-07 01:26:09 +00:00
Peter Steinberger
99851cdec1 test: align outbound normalization 2026-01-07 01:22:55 +00:00
Peter Steinberger
8a589f0c10 style: fix send json indent 2026-01-07 01:21:29 +00:00
Peter Steinberger
9b82c2287f style: format direct send json 2026-01-07 01:21:03 +00:00
Peter Steinberger
5e75ea1ea2 style: align outbound delivery formatting 2026-01-07 01:20:40 +00:00
Peter Steinberger
ee1dfc589d refactor: normalize outbound payload delivery 2026-01-07 01:19:47 +00:00
Peter Steinberger
502c8e1297 refactor: centralize outbound target validation 2026-01-07 01:16:39 +00:00
Peter Steinberger
0d18b2a650 docs: fix internal doc links 2026-01-07 02:15:46 +01:00
buddyh
05c4b7919c Docs: sanitize AGENTS.md guidance 2026-01-07 01:15:37 +00:00
Peter Steinberger
28fdd7ea00 refactor: unify outbound delivery 2026-01-07 01:13:04 +00:00