Skip to content

feat(slack): add configurable streaming modes for draft previews#18555

Merged
steipete merged 4 commits intoopenclaw:mainfrom
Solvely-Colin:codex/slack-draft-streaming
Feb 16, 2026
Merged

feat(slack): add configurable streaming modes for draft previews#18555
steipete merged 4 commits intoopenclaw:mainfrom
Solvely-Colin:codex/slack-draft-streaming

Conversation

@Solvely-Colin
Copy link
Contributor

@Solvely-Colin Solvely-Colin commented Feb 16, 2026

Summary

  • add Slack draft-stream previews that post once and update via chat.update
  • add configurable streaming modes so teams can pick UX behavior:
    • replace: in-place replacement updates
    • status_final: stable status updates + separate final answer
    • append: append-only growth (never replaces earlier text)
  • add draft preview lifecycle hardening (clear, media/no-final cleanup)
  • keep multi-account safety by using explicit token: ctx.botToken on updates

Why

Different teams prefer different streaming UX patterns. This change allows Slack users to choose the style that fits them while preventing stale draft artifacts and preserving safe fallback behavior.

Changes

  • Streaming runtime:
    • src/slack/draft-stream.ts
    • src/slack/stream-mode.ts
    • src/slack/monitor/message-handler/dispatch.ts
  • Config surface:
    • src/config/types.slack.ts
    • src/config/zod-schema.providers-core.ts
    • src/config/schema.help.ts
    • src/config/schema.labels.ts
  • Tests:
    • src/slack/draft-stream.test.ts
    • src/slack/stream-mode.test.ts

Dependency

Depends on Slack Block Kit foundation stack (starting at #18180 through #18500).
If reviewing before dependencies merge, review tip commit: 865918d96.

Validation

  • pnpm vitest run src/slack/stream-mode.test.ts src/slack/draft-stream.test.ts src/slack/monitor/slash.test.ts src/slack/monitor/events/interactions.test.ts
  • pnpm tsgo
  • pnpm check

Notes

  • Slack-only scope; no Discord/webchat streaming behavior changes.

@openclaw-barnacle openclaw-barnacle bot added channel: slack Channel integration: slack size: M labels Feb 16, 2026
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@Solvely-Colin Solvely-Colin changed the title feat(slack): stream partial replies via draft message updates feat(slack): add configurable streaming modes for draft previews Feb 16, 2026
@steipete steipete merged commit 89ce146 into openclaw:main Feb 16, 2026
24 checks passed
@net
Copy link

net commented Feb 18, 2026

This seems to break Slack formatting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: slack Channel integration: slack size: L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants