David Szarzynski
bbcb3ac6e0
fix(slack): pass recipient_team_id to streaming API calls ( #20988 )
...
* fix(slack): pass recipient_team_id and recipient_user_id to streaming API calls
The Slack Agents & AI Apps streaming API (chat.startStream / chat.stopStream)
requires recipient_team_id and recipient_user_id parameters. Without them,
stopStream fails with 'missing_recipient_team_id' (all contexts) or
'missing_recipient_user_id' (DM contexts), causing streamed messages to
disappear after generation completes.
This passes:
- team_id (from auth.test at provider startup, stored in monitor context)
- user_id (from the incoming message sender, for DM recipient identification)
through to the ChatStreamer via recipient_team_id and recipient_user_id options.
Fixes #19839 , #20847 , #20299 , #19791 , #20337
AI-assisted: Written with Claude (Opus 4.6) via OpenClaw. Lightly tested
(unit tests pass, live workspace verification in progress).
* fix(slack): disable block streaming when native streaming is active
When Slack native streaming (`chat.startStream`/`stopStream`) is enabled,
`disableBlockStreaming` was set to `false`, which activated the app-level
block streaming pipeline. This pipeline intercepted agent output, sent it
via block replies, then dropped the final payloads that would have flowed
through `deliverWithStreaming` to the Slack streaming API — resulting in
zero replies delivered.
Set `disableBlockStreaming: true` when native streaming is active so the
final reply flows through the Slack streaming API path as intended.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-02-19 14:44:34 -08:00
Peter Steinberger
672b1c5084
refactor: dedupe slack monitor mrkdwn and modal event base
2026-02-19 14:27:36 +00:00
Peter Steinberger
37143cf70c
refactor(slack): share markdown render options
2026-02-18 18:33:48 +00:00
Peter Steinberger
7648f6bb00
perf(test): fake abort timer and dedupe slack thread cases
2026-02-18 16:14:07 +00:00
Peter Steinberger
41e68c31db
test(channels): dedupe slack arg-menu and discord reply chunk assertions
2026-02-18 13:39:40 +00:00
Peter Steinberger
3af9f704c8
test(cli): dedupe repeated gateway node and slack pairing setup
2026-02-18 13:34:03 +00:00
Peter Steinberger
53ad08f319
test(slack): type draft stream harness callbacks
2026-02-18 13:02:59 +00:00
Peter Steinberger
7bca5f5400
test(slack): dedupe block and draft stream test fixtures
2026-02-18 12:57:51 +00:00
Peter Steinberger
a9cce800df
test: dedupe slack missing-thread tests and cover history failures
2026-02-18 05:31:06 +00:00
Peter Steinberger
a69e7682c1
refactor(test): dedupe channel and monitor action suites
2026-02-18 04:49:22 +00:00
Peter Steinberger
05b7bd2c22
refactor: dedupe command dispatch and process poll tests
2026-02-18 04:04:14 +00:00
Peter Steinberger
91e9684e8c
test: add normalization coverage for shared and slack allow-list
2026-02-18 03:17:54 +00:00
Peter Steinberger
8407eeb33c
refactor: extract shared string normalization helpers
2026-02-18 03:17:54 +00:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
Peter Steinberger
6dcc052bb4
fix: stabilize model catalog and pi discovery auth storage compatibility
2026-02-18 02:09:40 +01:00
Peter Steinberger
1d23934c09
fix: follow-up slack streaming routing/tests ( #9972 ) (thanks @natedenh)
2026-02-18 00:50:22 +01:00
Peter Steinberger
bb9a539d1d
Merge remote-tracking branch 'prhead/feat/slack-text-streaming'
...
# Conflicts:
# docs/channels/slack.md
# src/config/types.slack.ts
# src/slack/monitor/message-handler/dispatch.ts
2026-02-18 00:49:30 +01:00
Seb Slight
f44e3b2a34
revert: fix models set catalog validation ( #19194 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 7e3b2ff7af
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-17 09:43:41 -05:00
Sebastian
cc359d338e
test: add fetch mock helper and reaction coverage
2026-02-17 09:02:39 -05:00
cpojer
2a4ca7671e
chore: Fix types in tests 35/N.
2026-02-17 15:50:07 +09:00
cpojer
97c8f4999e
chore: Fix types in tests 27/N.
2026-02-17 14:31:55 +09:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
cpojer
a76a9c375f
chore: Fix types in tests 15/N.
2026-02-17 12:00:29 +09:00
cpojer
a78839e60c
chore: Fix Slack test.
2026-02-17 11:15:15 +09:00
cpojer
01ea808876
chore: Format files.
2026-02-17 10:57:31 +09:00
cpojer
1406b28469
chore: Fix types in tests 3/N.
2026-02-17 10:57:31 +09:00
Peter Steinberger
d6226355e6
fix(slack): validate interaction payloads and handle malformed actions
2026-02-17 02:51:00 +01:00
Sebastian
67250f059a
fix(slack): scope attachment extraction to forwarded shares
2026-02-16 20:37:08 -05:00
Peter Steinberger
64fc82844e
refactor(channels): share prefixed target parsing
2026-02-17 00:32:34 +00:00
cpojer
90ef2d6bdf
chore: Update formatting.
2026-02-17 09:18:40 +09:00
Peter Steinberger
fbd3786e7a
refactor(channels): share target parsing helpers
2026-02-17 00:11:02 +00:00
Peter Steinberger
4088c0b89d
refactor(core): dedupe schema and command parsing helpers
2026-02-16 23:48:43 +00:00
Peter Steinberger
3451159174
refactor(channels): share draft stream loop across slack and telegram
2026-02-16 23:48:43 +00:00
Tom Peri
b57d29d833
fix(slack): extract text and media from forwarded message attachments
2026-02-16 23:55:34 +01:00
yinghaosang
59384001ad
channels: migrate core channel account listing to factory
2026-02-16 23:53:19 +01:00
Colin
1faf8e8e9d
Slack: add external select flow for large arg menus
2026-02-16 23:51:44 +01:00
Colin
7a4efbb030
Slack: capture workflow button interaction metadata
2026-02-16 23:51:44 +01:00
Colin
bd20c1e24d
Slack: include stacked modal lifecycle context
2026-02-16 23:51:44 +01:00
Colin
ce973332f6
Slack: add media block fallback text handling
2026-02-16 23:51:44 +01:00
Colin
7aaf1547df
Slack: escape mrkdwn in interaction confirmations
2026-02-16 23:51:44 +01:00
Colin
a7c1b8aea7
Slack: attribute interaction confirmations and structured selects
2026-02-16 23:51:44 +01:00
Colin
9fcb93dd13
Slack: add rich text previews for modal inputs
2026-02-16 23:51:44 +01:00
Colin
05ab147081
Slack: expand advanced modal controls payloads and confirms
2026-02-16 23:51:44 +01:00
Colin
5bbbc3e3e6
Slack: show picker values in interaction confirmations
2026-02-16 23:51:44 +01:00
Colin
5f9a04604e
Slack: add header and context blocks to arg menus
2026-02-16 23:51:44 +01:00
Colin
7c5529a153
Slack: enrich modal input payload normalization
2026-02-16 23:51:44 +01:00
Colin
d1aa2323bd
Slack: update action rows for select interactions
2026-02-16 23:51:44 +01:00
Colin
1bfdd4e237
Slack: add overflow menus for slash arg choices
2026-02-16 23:51:44 +01:00