Peter Steinberger
bf4544784a
fix: stabilize typing + summary merge
2026-01-23 23:34:30 +00:00
Peter Steinberger
aeb6b2ffad
refactor: standardize channel logging
2026-01-23 23:34:30 +00:00
Peter Steinberger
1113f17d4c
refactor: share reply prefix context
2026-01-23 23:34:30 +00:00
Peter Steinberger
8252ae2da1
refactor: unify typing callbacks
2026-01-23 23:33:32 +00:00
Peter Steinberger
d82ecaf9dc
refactor: centralize inbound session updates
2026-01-23 23:33:32 +00:00
Peter Steinberger
521ea4ae5b
refactor: unify pending history helpers
2026-01-23 23:33:32 +00:00
Peter Steinberger
cb8c8fee9a
refactor: centralize ack reaction removal
2026-01-23 23:32:14 +00:00
Peter Steinberger
2e0a835e07
fix: unify inbound dispatch pipeline
2026-01-23 22:58:54 +00:00
Peter Steinberger
02bd6e4a24
refactor: centralize ack reaction gating
2026-01-23 22:24:31 +00:00
Peter Steinberger
b77e730657
fix: add per-channel markdown table conversion ( #1495 ) (thanks @odysseus0)
2026-01-23 18:39:25 +00:00
Peter Steinberger
68ea6e521b
fix: reduce Slack WebClient retries
2026-01-23 06:31:53 +00:00
Peter Steinberger
9bf295da48
feat: add slack replyToModeByChatType overrides
2026-01-23 05:38:28 +00:00
Stefan Galescu
7b40d1b261
feat(slack): add dm-specific replyToMode configuration ( #1442 )
...
Adds support for separate replyToMode settings for DMs vs channels:
- Add channels.slack.dm.replyToMode for DM-specific threading
- Keep channels.slack.replyToMode as default for channels
- Add resolveSlackReplyToMode helper to centralize logic
- Pass chatType through threading resolution chain
Usage:
```json5
{
channels: {
slack: {
replyToMode: "off", // channels
dm: {
replyToMode: "all" // DMs always thread
}
}
}
}
```
When dm.replyToMode is set, DMs use that mode; channels use the
top-level replyToMode. Backward compatible when not configured.
2026-01-23 05:13:23 +00:00
Travis Irby
578ac9f1a9
hydrate files from thread root message on replies
...
When replying to a Slack thread, files attached to the root message were
not being fetched. The existing `resolveSlackThreadStarter()` fetched the
root message text via `conversations.replies` but ignored the `files[]`
array in the response.
Changes:
- Add `files` to `SlackThreadStarter` type and extract from API response
- Download thread starter files when the reply message has no attachments
- Add verbose log for thread starter file hydration
Fixes issue where asking about a PDF in a thread reply would fail because
the model never received the file content from the root message.
2026-01-23 05:10:36 +00:00
Rodrigo Uroz
dd2400fb2a
fix: read Slack thread replies for message reads ( #1450 ) ( #1450 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Rodrigo Uroz <rodrigouroz@users.noreply.github.com >
2026-01-23 04:17:45 +00:00
Peter Steinberger
59a8eecd7e
test: speed up test suite
2026-01-23 02:22:02 +00:00
Peter Steinberger
4355d9acca
fix: resolve heartbeat sender and Slack thread_ts
2026-01-23 02:05:34 +00:00
Peter Steinberger
6a25e23909
fix: tui local shell consent UX ( #1463 )
...
- add local shell runner + denial notice + tests
- docs: describe ! local shell usage
- lint: drop unused Slack upload contentType
- cleanup: remove stray Swabble pins
Thanks @vignesh07.
Co-authored-by: Vignesh Natarajan <vigneshnatarajan92@gmail.com >
2026-01-22 23:38:44 +00:00
Jonathan Rhyne
47e440f73a
fix(slack): remove deprecated filetype field from files.uploadV2
...
Slack's files.uploadV2 API no longer supports the filetype field and logs
deprecation warnings when it's included. Slack auto-detects the file type
from the file content, so this field is unnecessary.
This removes the warning:
[WARN] web-api:WebClient filetype is no longer a supported field in files.uploadV2.
2026-01-22 08:33:13 -05:00
Peter Steinberger
45c1ccdfcf
refactor: unify threading contexts
2026-01-21 20:35:12 +00:00
Peter Steinberger
88d76d4be5
refactor(channels): centralize match metadata
2026-01-21 18:21:19 +00:00
Peter Steinberger
65dd73b4c3
fix: clean up slack threading landings ( #1360 ) (thanks @SocialNerd42069)
2026-01-21 06:29:36 +00:00
SocialNerd42069
5b8007784b
fix(slack): handle Bolt ESM/CJS import for Node 25.x
...
The slackBoltModule.default points to App class directly on Node 25.x,
not the module object. Check for App property first before using default.
2026-01-21 06:29:36 +00:00
SocialNerd42069
0d6e78b718
fix(slack): respect verbose setting and preserve thread context for tool notifications
...
Fixes two bugs in Slack tool notification delivery:
1. Tool notifications ignored verbose=false - normalized verbose values so
boolean false/'false' are properly treated as 'off'
2. Thread context lost - Slack outbound adapter now falls back to threadId
when replyToId is missing, and MessageThreadId is set for thread replies
Closes #1333
2026-01-21 06:29:36 +00:00
Peter Steinberger
02ca148583
fix: preserve subagent thread routing ( #1241 )
...
Thanks @gnarco.
Co-authored-by: gnarco <gnarco@users.noreply.github.com >
2026-01-20 17:22:07 +00:00
Peter Steinberger
115b4379bf
fix: handle Slack Bolt import + gateway node ids ( #1208 ) (thanks @24601)
2026-01-20 10:33:40 +00:00
Basit Mustafa
a6db1edee3
test(slack): mock HTTPReceiver
2026-01-20 10:33:01 +00:00
Basit Mustafa
4ed1b7c7ed
fix(slack): resolve bolt constructors
2026-01-20 10:33:01 +00:00
Basit Mustafa
7ef7b94bc0
fix(slack): handle bolt import for CJS/ESM compatibility
2026-01-20 10:33:01 +00:00
Peter Steinberger
66b6c9e0e5
chore: document slack bolt import interop
2026-01-18 23:55:36 +00:00
Peter Steinberger
b5e99dad1f
fix(slack): handle bolt CJS interop ( #1191 ) — thanks @CoreyH
...
Co-authored-by: Corey Henderson <corey@example.com >
2026-01-18 23:54:50 +00:00
Peter Steinberger
690bb192e6
style: format code
2026-01-18 19:36:46 +00:00
Peter Steinberger
601a052216
fix: unblock bundled plugin load
2026-01-18 19:34:21 +00:00
Peter Steinberger
744d1329cb
feat: make inbound envelopes configurable
...
Co-authored-by: Shiva Prasad <shiv19@users.noreply.github.com >
2026-01-18 18:50:37 +00:00
Peter Steinberger
be6a3d4caf
fix: unblock build and slack monitor
2026-01-18 16:35:18 +00:00
Peter Steinberger
b546b2a48d
fix: stabilize slack http receiver import
2026-01-18 15:44:17 +00:00
Peter Steinberger
4726580c7e
feat(slack): add HTTP receiver webhook mode ( #1143 ) - thanks @jdrhyne
...
Co-authored-by: Jonathan Rhyne <jdrhyne@users.noreply.github.com >
2026-01-18 15:04:07 +00:00
Peter Steinberger
2dabce59ce
feat(slash-commands): usage footer modes
2026-01-18 05:35:35 +00:00
Peter Steinberger
0d9172d761
fix: persist session origin metadata
2026-01-18 03:41:51 +00:00
Peter Steinberger
34590d2144
feat: persist session origin metadata across connectors
2026-01-18 02:42:10 +00:00
Peter Steinberger
0c93b9b7bb
style: apply oxfmt
2026-01-18 02:19:35 +00:00
Peter Steinberger
62354dff9c
refactor: share allowlist match metadata
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 01:49:25 +00:00
Peter Steinberger
3a0fd6be3c
test: stub slack allowlist resolvers
2026-01-18 01:25:19 +00:00
Peter Steinberger
f73dbdbaea
refactor: unify channel config matching and gating
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 01:24:00 +00:00
Peter Steinberger
05f49d2846
fix(slack): resolve allowlists async
2026-01-18 01:23:25 +00:00
Peter Steinberger
36d88f6079
fix: normalize gateway dev mode detection
2026-01-18 01:08:47 +00:00
Peter Steinberger
075ff675ac
refactor(channels): share allowlist + resolver helpers
2026-01-18 01:00:25 +00:00
Peter Steinberger
c7ea47e886
feat(channels): add resolve command + defaults
2026-01-18 01:00:24 +00:00
Peter Steinberger
22c7f659f6
fix: surface match metadata in audits and slack logs
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 00:50:36 +00:00
Peter Steinberger
79a44d0da4
refactor(channels): unify target parsing
2026-01-18 00:31:42 +00:00