Peter Steinberger
d116bcfb14
refactor(runtime): consolidate followup, gateway, and provider dedupe paths
2026-02-22 14:08:51 +00:00
Peter Steinberger
66f814a0af
refactor(channels): dedupe plugin routing and channel helpers
2026-02-22 14:08:51 +00:00
Peter Steinberger
6dd36a6b77
refactor(channels): reuse runtime group policy helpers
2026-02-22 12:44:23 +01:00
Peter Steinberger
85e5ed3f78
refactor(channels): centralize runtime group policy handling
2026-02-22 12:35:41 +01:00
Peter Steinberger
777817392d
fix: fail closed missing provider group policy across message channels ( #23367 ) (thanks @bmendonca3)
2026-02-22 12:21:04 +01:00
Brian Mendonca
3700151ec0
Channels: fail closed when Slack/Discord config is missing
2026-02-22 12:18:43 +01:00
Peter Steinberger
6c2e999776
refactor(security): unify secure id paths and guard weak patterns
2026-02-22 10:16:19 +01:00
Peter Steinberger
ae8d4a8eec
fix(security): harden channel token and id generation
2026-02-22 10:16:02 +01:00
Peter Steinberger
089a78c061
test(slack): avoid redundant reset in slash metadata wait case
2026-02-22 08:14:16 +00:00
Peter Steinberger
6f3fed0470
test(slack): use lightweight clear in interactions modal-close case
2026-02-22 08:13:42 +00:00
Peter Steinberger
7cf280805c
test: dedupe cron and slack monitor test harness setup
2026-02-22 07:52:12 +00:00
Peter Steinberger
75c1bfbae8
refactor(channels): dedupe message routing and telegram helpers
2026-02-22 07:44:57 +00:00
Peter Steinberger
474ba45a2f
refactor(slack): dedupe modal lifecycle interaction handlers
2026-02-22 07:44:56 +00:00
Peter Steinberger
a3936264ea
test(slack): use lightweight clears for interaction event mock
2026-02-22 07:35:54 +00:00
Robin Waslander
daf036a4f6
fix(slash): persist channel metadata from slash command sessions ( #23065 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 29fa20c7d773b2aac62dea912e00e438ce8ba9f6
Co-authored-by: hydro13 <6640526+hydro13@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-22 10:29:06 +05:30
Vignesh Natarajan
c51c2a2dca
Slack: preserve slash options receiver binding
2026-02-21 20:01:39 -08:00
Peter Steinberger
7c248cca4a
test(targets): table-drive slack and discord parse cases
2026-02-21 23:28:07 +00:00
Peter Steinberger
98790339ef
test: dedupe repeated validation and throw assertions
2026-02-21 23:28:07 +00:00
Peter Steinberger
0bd9f0d4ac
fix: enforce strict allowlist across pairing stores ( #23017 )
2026-02-22 00:00:23 +01:00
Peter Steinberger
58254b3b57
test: dedupe channel and transport adapters
2026-02-21 21:44:01 +00:00
Peter Steinberger
2c14b0cf4c
refactor(config): unify streaming config across channels
2026-02-21 19:53:42 +01:00
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: 7e3b2ff7afe052097c4414fc64d7e66191e8fcc3
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