releases.shpreview
Slack/Node SDK/@slack/web-api@7.14.0

@slack/web-api@7.14.0

February 10, 2026Node SDKView original ↗
$npx -y @buildinternet/releases show rel_ozHv-W9FxibEvnIq2_Vf0

Agent Thinking Steps: Display Tasks/Tools, Plans, and Markdown Text

🍿 Preview: Display as Plan

https://github.com/user-attachments/assets/1a6478c2-37aa-48c2-84e9-69375b20177e

🍿 Preview: Display as Timeline

https://github.com/user-attachments/assets/984f84e5-c0e0-47ef-a1c2-994ac51a25ba

📺 Chat Stream with 2 Display Mode

  • Plan Display Mode
  • Timeline Display Mode

👾 Chat Stream Structured Content

Now, you can display a mixture of structured content called "chunks":

  • 🔠 Markdown Text Block to format your text with standard markdown
  • ☑️ Task Card Block to display a single task, representing an AI Tool Call or general action
  • 🗒️ Plan Block to display a collection of related tasks
  • 📚 URL Sources Element to display references within a task card block

Available in:

  • 🔌 API Methods: chat.startStream, chat.appendStream, and chat.stopStream
  • 🛟 Chat Stream Helper: const stream = new ChatStreamer(...);, stream.append(...)

📖 Documentation

🍿 Getting Started

$ slack create

# → AI Agent App
#   → Bolt for JavaScript
#     Bolt for Python

Minor Changes

  • 1fbce32: feat: add thinking steps support to streaming methods

    chat.appendStream, chat.startStream, and chat.stopStream now accept a chunks parameter for streaming structured content including markdown text, plan updates, and task updates.

    Related PRs:

    • #2467 - accept chunks as arguments to chat.{start,append,stop}Stream methods
    • #2470 - accept chunks as arguments to chat stream helper
    • #2479 - add task display mode option to start of chat streams
    • #2481 - export the chat streamer and related options from the package

    Example

    const stream = new ChatStreamer(client, client.logger, {
      channel: CHANNEL_ID,
      thread_ts: threadTs,
    });
    
    await stream.append({
      chunks: [
        {
          type: "markdown_text",
          text: "**Hello!** I am starting to process your request...\n\n",
        },
      ],
    });
    
    await stream.append({
      chunks: [
        {
          type: "plan_update",
          title: "Processing tasks...",
        },
        {
          type: "task_update",
          id: "task-1",
          title: "Fetching data from API",
          status: "complete",
          output: "Successfully retrieved 42 records",
        },
      ],
    });
    
    await stream.stop({
      chunks: [
        {
          type: "markdown_text",
          text: "\n\n---\n\n✅ **All tasks completed successfully!**\n",
        },
      ],
    });

Patch Changes

  • 16a43ca: fix(web-api): add channel_id to canvases.create method
  • Updated dependencies [f1fb7bf]
    • @slack/types@2.20.0

Fetched April 3, 2026