Josh Lehman
9d50ebad7d
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
514fcfe77e
fix: harden sub-agent model overrides
2026-01-07 04:48:37 +00:00
Peter Steinberger
12d57da53a
fix: normalize provider aliases in auth order
2026-01-07 05:43:32 +01:00
mneves75
8187baab18
test: format models list alias coverage
2026-01-07 05:31:01 +01:00
mneves75
3550dc294d
fix: normalize z.ai provider ids in auth profiles
2026-01-07 05:31:01 +01:00
mneves75
13c1ce1f05
Docs: update Z.AI configuration
2026-01-07 05:30:46 +01:00
mneves75
8954f7719c
Test: cover z.ai normalization
2026-01-07 05:30:06 +01:00
mneves75
0ddfbf5534
Feat: normalize z.ai provider ids
2026-01-07 05:30:06 +01:00
Peter Steinberger
388796253a
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
42ae2341aa
fix: harden pairing flow
2026-01-07 05:06:04 +01:00
Peter Steinberger
6ffece68b0
fix(doctor): add headless flags + auto-migrate sessions
2026-01-07 04:43:24 +01:00
Peter Steinberger
9c9ae5aa54
fix(imessage): harden abort shutdown
2026-01-07 03:41:23 +00:00
Anton Sotkov
08fc0b3809
fix: imsg unhandled promises
2026-01-07 03:41:23 +00:00
Peter Steinberger
8ef0609f8e
refactor: share reaction schemas and notes
2026-01-07 04:24:11 +01:00
Peter Steinberger
654e14df31
Merge PR #353
2026-01-07 04:18:19 +01:00
Peter Steinberger
073b16a3a0
fix: clean up reaction tooling
2026-01-07 04:16:39 +01:00
Peter Steinberger
3afef2d504
feat: unify provider reaction tools
2026-01-07 04:16:39 +01:00
Sash Zats
551a8d5683
Add WhatsApp reactions support
...
Summary:
Test Plan:
2026-01-07 04:16:39 +01:00
Peter Steinberger
aa87d6cee8
refactor(relay): add --smoke entrypoint
2026-01-07 03:12:30 +00:00
Peter Steinberger
59cc15f3cc
fix(relay): guard QR smoke mode
2026-01-07 02:42:55 +00:00
Peter Steinberger
ff102e2afa
Merge PR #358
2026-01-07 02:42:53 +00:00
Peter Steinberger
aa635af6d0
refactor: unify outbound result envelopes
2026-01-07 02:36:05 +00:00
DB Hurley
9d820a628f
fix(relay): implement CLAWDBOT_SMOKE_QR handler for packaging
2026-01-06 21:32:04 -05:00
Peter Steinberger
4bf5f37a44
refactor: streamline outbound payload handling
2026-01-07 02:30:42 +00:00
Peter Steinberger
3fedd0d1d5
fix(outbound): guard optional delivery fields
2026-01-07 02:19:42 +00:00
Peter Steinberger
59502552ae
fix(telegram): import native reply helper
2026-01-07 02:19:42 +00:00
Peter Steinberger
d7bc5b58fc
refactor(telegram): polish topic threading
2026-01-07 02:19:42 +00:00
Peter Steinberger
80112433a5
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
023a124312
test: cover gmail tailscale error formatting
2026-01-07 03:16:52 +01:00
Sash Zats
8a07093624
Add WhatsApp reactions support
...
Summary:
Test Plan:
2026-01-06 21:11:52 -05:00
Peter Steinberger
2986447935
fix: improve gmail tailscale errors
2026-01-07 03:10:35 +01:00
Peter Steinberger
ba317588c0
docs: note community nickname for MiniMax
2026-01-07 03:02:22 +01:00
Peter Steinberger
321db99cc6
docs: add CLI reference and model links
2026-01-07 02:52:41 +01:00
Peter Steinberger
467d4e17fe
feat: add sandbox scope default
2026-01-07 02:52:41 +01:00
Peter Steinberger
4d4e4de915
docs: add changelog for PR #348
2026-01-07 02:52:41 +01:00
Peter Steinberger
15b7560a9b
refactor: reuse gateway output helpers
2026-01-07 01:43:02 +00:00
Peter Steinberger
b88c4e9d20
chore: clean up lint and scratchpad
2026-01-07 01:28:46 +00:00
Peter Steinberger
bc9a3ce32a
refactor: unify outbound delivery formatting
2026-01-07 01:26:09 +00:00
Peter Steinberger
3fbe2963b3
test: align outbound normalization
2026-01-07 01:22:55 +00:00
Peter Steinberger
8ba6473462
style: fix send json indent
2026-01-07 01:21:29 +00:00
Peter Steinberger
dd78c26e6d
style: format direct send json
2026-01-07 01:21:03 +00:00
Peter Steinberger
2ce5df3efc
style: align outbound delivery formatting
2026-01-07 01:20:40 +00:00
Peter Steinberger
aefaed159b
refactor: normalize outbound payload delivery
2026-01-07 01:19:47 +00:00
Peter Steinberger
f171d509bb
refactor: centralize outbound target validation
2026-01-07 01:16:39 +00:00
Peter Steinberger
4fb9293c29
docs: fix internal doc links
2026-01-07 02:15:46 +01:00
buddyh
79fff828e0
Docs: sanitize AGENTS.md guidance
2026-01-07 01:15:37 +00:00
Peter Steinberger
f5938f8114
refactor: unify outbound delivery
2026-01-07 01:13:04 +00:00
Peter Steinberger
1ae5e9a26b
feat: add docs search command
2026-01-07 02:03:06 +01:00
Peter Steinberger
e816991dc5
docs: update changelog and clawtributor list for PR #341
2026-01-07 01:46:37 +01:00
Erik
cd4e2023ab
fix(agent): capture compaction retry AbortError for model fallback
...
Wrap waitForCompactionRetry() in try/catch to capture AbortError
that was escaping and bypassing the model fallback mechanism.
When a timeout fires, session.abort() causes both session.prompt()
and waitForCompactionRetry() to throw AbortError. Previously only
the prompt error was captured, allowing the compaction error to
escape to model-fallback.ts where it was immediately re-thrown
(line 199: isAbortError check), bypassing fallback model attempts.
Fixes #313
2026-01-07 01:44:37 +01:00