Commit Graph

559 Commits

Author SHA1 Message Date
Peter Steinberger 5a1ff1347d fix(slack): bound inbound media downloads 2026-04-28 11:35:26 +01:00
Peter Steinberger 6cc6996a1c fix(slack): tune socket mode pong timeout 2026-04-28 11:13:03 +01:00
Peter Steinberger 67b16a4a6d fix: centralize source reply delivery mode 2026-04-28 09:14:19 +01:00
scoootscooob 3c636208b0 fix(messages): keep group replies tool-only by default
Rewrites the always-on reply handling so group/channel rooms default to message-tool-visible output, while `messages.groupChat.visibleReplies: \"automatic\"` preserves legacy auto-posting.\n\nThanks @scoootscooob.
2026-04-28 07:36:43 +01:00
Peter Steinberger e1acb61317 refactor: expose SDK test helper subpaths 2026-04-28 03:28:17 +01:00
Peter Steinberger 632b0fd580 chore: update workspace dependencies 2026-04-28 03:09:44 +01:00
Peter Steinberger 45a84b5f95 refactor: expose channel contract test helpers 2026-04-28 01:45:58 +01:00
Peter Steinberger f34b41f198 refactor: split plugin sdk test helpers 2026-04-28 01:14:19 +01:00
Peter Steinberger e27c32b9b0 refactor(plugin-sdk): publish route helpers 2026-04-28 01:13:01 +01:00
Peter Steinberger 8057561cee refactor: promote plugin test helpers to sdk 2026-04-28 00:55:11 +01:00
Peter Steinberger 90b6665ded refactor: move plugin api test helper to sdk 2026-04-28 00:24:54 +01:00
Peter Steinberger 0df6e5a473 refactor: expose plugin test helpers via sdk 2026-04-27 23:45:26 +01:00
Vincent Koc 61a18e5596 fix(agent): preserve default-agent session routing compatibility (#72414)
* fix(agent): preserve default-agent session routing compatibility

* fix(clownfish): address review for ghcrawl-207038-agentic-merge (1)

* fix(agent): migrate legacy default-agent sessions

* fix(slack): use narrow agent runtime import
2026-04-27 15:09:01 -07:00
Peter Steinberger 8599fdda4a test: keep extension mocks on sdk seams 2026-04-27 22:55:09 +01:00
Peter Steinberger a8c548f4f3 test: route extension tests through sdk seams 2026-04-27 22:34:21 +01:00
Peter Steinberger 74e62c32c3 test: route extension tests through sdk subpaths 2026-04-27 21:58:48 +01:00
Peter Steinberger f0000ab72d refactor(plugin-sdk): split infra runtime barrel 2026-04-27 20:50:35 +01:00
Peter Steinberger 9090457da7 test(plugin-sdk): use narrow config runtime mocks 2026-04-27 15:14:02 +01:00
Peter Steinberger 4336a7f3a9 refactor(plugin-sdk): narrow config runtime imports 2026-04-27 14:58:32 +01:00
Peter Steinberger 7f3f108521 refactor(config): migrate plugin config access 2026-04-27 12:35:58 +01:00
Peter Steinberger 49ce7fe90c test: cover slack bolt auth verification suppression 2026-04-27 08:03:38 +01:00
Peter Steinberger 53f536b368 fix: avoid slack startup auth rejection leak 2026-04-27 07:55:57 +01:00
Bek aac83e00cf fix: Slack inbound thread session routing (#72498)
Normalize actionable Slack thread roots and follow-up replies onto the same thread parent session key.
2026-04-27 02:19:27 -04:00
Peter Steinberger 8a731c1ef7 perf(plugin-sdk): add narrow outbound send deps entry 2026-04-25 22:19:09 +01:00
Vincent Koc 1915b29a3c fix(slack): stop block-based sender rehydration on assistant message edits (#71700)
* fix(slack): stop block-based sender rehydration on message edits

* docs(changelog): note Slack sender attribution fix
2026-04-25 12:34:55 -07:00
Peter Steinberger c6770d3694 fix: align native think menus with session models 2026-04-25 10:30:49 +01:00
Peter Steinberger 70fd1c91aa fix(channels): harden tool progress previews 2026-04-25 04:54:29 +01:00
Peter Steinberger d399ac74f7 fix(slack): hash token cache keys 2026-04-25 01:17:55 +01:00
Peter Steinberger b69e3b633b refactor(slack): reuse default write clients 2026-04-25 01:13:55 +01:00
Peter Steinberger 107d2b7a09 fix(slack): preserve rapid send ordering
Co-authored-by: nightq <zengwei@nightq.cn>
Co-authored-by: xydt cqh <cui.qianhong@xydigit.com>
2026-04-25 01:11:10 +01:00
Coy Geek 8ca66cad68 fix(browser): scope control auth to active gateway mode (#65639)
Browser control now authorizes only the resolved active gateway credential and fails closed when password mode lacks a resolved password.

Also removes the duplicate Slack test-helper middleware stub that kept current CI red after the base rebase.

Fixes #65626.

Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com>
2026-04-25 01:03:39 +01:00
Peter Steinberger ea74e01ed6 fix(slack): resolve native approval buttons
Co-authored-by: Motoki Maruyama <motoki.maruyama@kiconiaworks.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 01:02:51 +01:00
Vincent Koc e625651de8 feat(plugins): derive setup auth choices
* feat(plugins): derive setup auth choices

* fix(plugins): sanitize derived provider auth choices

* fix(plugins): clean up extension gate regressions
2026-04-24 16:57:39 -07:00
Peter Steinberger fb80405693 test: fix slack bolt mock middleware 2026-04-25 00:57:09 +01:00
Peter Steinberger ddedcac54a test: stabilize full-suite lanes 2026-04-25 00:57:08 +01:00
Peter Steinberger d1cc54866d fix(slack): return non-image downloads as files 2026-04-25 00:55:57 +01:00
Peter Steinberger a57fbc8026 test(slack): cover fast draft preview finalization 2026-04-25 00:42:55 +01:00
Peter Steinberger e40d7abda9 fix(slack): preserve real thread anchors 2026-04-25 00:38:19 +01:00
Peter Steinberger 2b5c719a62 fix(slack): process thread broadcasts as messages 2026-04-25 00:26:31 +01:00
Peter Steinberger 86856b88e3 fix(slack): suppress reasoning in native streams 2026-04-25 00:23:16 +01:00
Peter Steinberger 4693d20cad fix(slack): keep block replies in first thread 2026-04-25 00:17:56 +01:00
Peter Steinberger 2a4fa8ffe8 fix(slack): scope assistant self-event bypass 2026-04-25 00:03:23 +01:00
Peter Steinberger 893a18ff5c fix(slack): accept assistant dm message edits 2026-04-25 00:00:17 +01:00
Peter Steinberger 99cfa50451 test(slack): cover first native stream thread target 2026-04-24 23:42:50 +01:00
Peter Steinberger 5c445f7842 fix(slack): suppress block streaming during previews 2026-04-24 23:34:04 +01:00
Peter Steinberger 0cce4cf8f6 refactor(slack): share stream fallback delivery bookkeeping 2026-04-24 22:55:39 +01:00
martingarramon 150053bc86 fix(slack): route stream-fallback delivery through chunked sender (follow-up to #70370) (#71124)
* fix(slack): route stream-fallback delivery through chunked sender

deliverPendingStreamFallback was calling chat.postMessage directly for
err.pendingText, which bypasses the chunked reply path used everywhere
else. For Slack Connect cases where appendSlackStream throws
SlackStreamNotDeliveredError with a large pending buffer, the single
raw post could fail (msg_too_long) and drop the unsent tail.

Two changes:

1. deliverPendingStreamFallback now routes through deliverReplies so
   long pendingText is chunked by the normal sender and the fallback
   honors the configured replyToMode / identity.

2. The non-benign streaming-error branch in deliverWithStreaming now
   clears the session via markSlackStreamFallbackDelivered before
   falling back to deliverNormally. Without this, pendingText stays
   populated and the post-loop finalize (stopSlackStream →
   SlackStreamNotDeliveredError → fallback) re-posts the same chunk
   that deliverNormally already sent.

Addresses the three Codex P1 findings on #70370 about bypassing the
chunked sender, and the related "avoid reposting buffered text after
append fallback" P1 about duplicate delivery. Tests updated to assert
deliverReplies routing (instead of raw postMessage) and a new case
covers the non-benign-error dedup.

Follow-up to #70370.

* fix(slack): preserve pending buffered text on non-benign stream errors

Address Codex P1 on #71124: `markSlackStreamFallbackDelivered` was
clearing `pendingText` before `deliverNormally` ran, so any earlier
buffered chunk was lost. E.g. chunk A buffered in the SDK, then
appending chunk B throws a generic network error → previous fix
dropped A+B and only sent B via `deliverNormally`, silently truncating
the final reply.

Route the full buffered `pendingText` through
`deliverPendingStreamFallback` with a synthetic
`SlackStreamNotDeliveredError`, then skip `deliverNormally` entirely
(pendingText already contains this payload's text, per
`appendSlackStream` accumulating before throw). If the chunked
fallback fails, fall back to `deliverNormally` so at least the current
payload lands.

Test updated to assert the full pendingText ("first buffered\nsecond
payload") gets routed through the chunked sender, not the
chunk-B-only partial send.

* fix(slack): harden stream fallback docs and chunking test (#71124)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-24 22:50:18 +01:00
Peter Steinberger 55318df83f fix(slack): share HTTP route registry across module loads
Fixes #67955, #46245, #46246.

Co-authored-by: Axel <axel@kaleidoscope.studio>

Co-authored-by: Cesar Arevalo <cesar@cesararevalo.com>
2026-04-24 22:41:12 +01:00
Peter Steinberger 608c08fc54 test: narrow slack inbound contract imports 2026-04-24 13:00:05 +01:00
Peter Steinberger 0783090da0 test: split slack client option imports 2026-04-24 12:58:28 +01:00