Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/petite-wombats-hang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@chat-adapter/slack": patch
---

continue Slack streams across replies when text or task content exceeds platform limits
4 changes: 4 additions & 0 deletions apps/docs/content/docs/streaming.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,10 @@ await thread.post(stream);
| `task_update` | `id`, `title`, `status`, `details?`, `output?` | Tool/step progress updates (`pending`, `in_progress`, `complete`, `error`) with optional extra task context |
| `plan_update` | `title` | Plan title updates on supported platforms |

Slack limits native streamed text fields to 12,000 characters, task or plan chunks to 256 characters, and messages to 50 blocks. Chat SDK handles these limits automatically. Long text continues in ordered replies, long task details and output continue in additional task cards, and task or plan titles are shortened to fit. When a stream reaches 50 task cards, later tasks continue in another reply and updates remain attached to the reply containing the original task card.

When Slack creates continuation replies, `thread.post()` returns the final reply. Stop blocks are attached to that final reply.

### Streaming with options

Wrap a stream in a `StreamingPlan` to pass platform-specific options through `thread.post()` without dropping down to `adapter.stream()` directly:
Expand Down
Loading