unstale

npm / chat

chat

What changed in chat 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

21 breaking7 security5 deprecations116 new APIs and options1 performance48 behavior and defaults2 tooling40 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

chat 4240 changes

Breaking changes 21

  • A Teams button opening a modal renders with associatedInputs set to none, so card inputs do not block the dialog or get submitted.

    4.42.0release notes

  • The union gains a member; external adapters that exhaustively handle it with a never check need a text_input case.

    4.42.0release notes

  • Returns undefined for inherited object keys such as "toString" instead of returning Object.prototype members.

    4.42.0release notes

  • Returns an empty array for inherited object keys such as "toString" instead of returning Object.prototype members.

    4.42.0release notes

  • Messages queued under old keys are not migrated, and old and new workers do not exclude each other; upgrade chat and @chat-adapter/slack together and restart all workers.

    4.42.0release notes

  • Invalid arguments now throw ChatError at registration, and global or sticky pattern flags match on every message rather than skipping alternate ones.

    4.42.0release notes

  • AI tool calls inside handlers without a conversation scope are rejected unless given an explicit scope or scope: false; standalone tool factories follow the same rules.

    4.42.0release notes

  • Creating tools with an empty scope id now throws.

    4.42.0release notes

  • Teams card inputs using the IDs actionId, value, or msteams cause a ValidationError when rendered; the cards subpath throws an Error.

    4.42.0release notes

  • The subpath emits the native Adaptive Cards Table element.

    4.41.0release notes

  • A definitive false from an adapter now suppresses SDK text-based mention detection; adapters should return undefined when a mention is undetermined.

    4.41.0release notes

  • Adds cross-platform per-user message persistence, replacing bot.transcripts; migrate the config key to history.user and update call sites.

    4.39.0release notes

  • Applies the conversation scope guard to write tools; out-of-scope thread or channel IDs are rejected before execution. sendDirectMessage remains gated by approval alone.

    4.39.0release notes

  • No longer treats request-body messages as conversation state: it consumes only the latest user message, strips tool parts, rejects messages left without parts with HTTP 400, and gets prior turns from the state adapter when history persistence is enabled.

    4.39.0release notes

  • Direct calls now reject when a receipt fails instead of logging a warning and resolving; callers should await the method or catch its rejection.

    4.38.0release notes

  • Read guards now scope tools in modal, assistant, app-home, app-context, and member-joined handlers; unscoped reads log a warning, and reads from newly scoped handlers may now be rejected.

    4.37.0release notes

  • Teams dialog values submitted as JSON numbers are stringified instead of dropped, so previously absent keys can now be present as strings.

    4.36.0release notes

  • Sets supported Node versions in the package engines.

    4.29.0release notes

  • Adds this method to the Adapter interface and Slack adapter, replacing the previous isExternalChannel boolean.

    4.23.0release notes

  • Makes channelIdFromThreadId required in the Adapter and StateAdapter interfaces.

    4.19.0release notes

  • Improves type safety by changing StreamChunk to a discriminated union.

    4.16.1release notes

Security 7

  • External link metadata is marked as untrusted.

    4.40.0release notes

  • Webhook tenant isolation is hardened.

    4.40.0release notes

  • Adds a Notion adapter for page and block comment discussions, including webhook verification, streaming, history, mentions, and up to 3 native attachments.

    4.37.0release notes

  • Configure the consumer secret to receive XChat webhooks, whose POSTs must carry a valid x-twitter-webhooks-signature.

    4.36.0release notes

  • Supports encrypted send and receive in direct messages and groups through webhook push or polling; signature verification is on by default and undecryptable or unverified events are dropped.

    4.36.0release notes

  • Supports inbound attachments with lazy download and decryption, plus outbound encrypted uploads.

    4.36.0release notes

  • Fixes a security bypass involving url_verification.

    4.16.1release notes

Deprecations 5

  • The subpath is deprecated and re-exports the original API from @chat-adapter/catalog so existing imports keep working.

    4.42.0release notes

  • Passing a guard function remains supported but is deprecated in favor of scope.

    4.42.0release notes

  • Remains available as a deprecated alias for bot.history.user.

    4.39.0release notes

  • Deprecated in favour of HistoryEntry; both types remain exported from chat.

    4.39.0release notes

  • Ships from chat/ai alongside AiMessage, AiMessagePart, and ToAiMessagesOptions; the previous chat re-export remains available but is deprecated.

    4.29.0release notes

New APIs and options 116

  • Adds optional card input values keyed by input ID; Teams populates them from Action.Submit payloads.

    4.42.0release notes

  • Adds an optional hook for adapters to namespace dedupe, lock, queue, and turn keys, isolating Slack message concurrency and cancellation by installation.

    4.42.0release notes

  • Adds an optional field to postable content and streaming options; adapters with a native AI label can display it, and Teams shows its AI generated label.

    4.42.0release notes

  • Adds a zero-dependency catalog of adapters, including metadata and helpers for listing adapters, looking up entries, and checking feature support.

    4.42.0release notes

  • Adds a handler-only overload for messages reaching pattern routing, including attachment-only messages without text.

    4.42.0release notes

  • Standalone tool factories exported from chat/ai now accept strictScope and follow the same scope rules as createChatTools.

    4.42.0release notes

  • Adds an adapter that reads channel chat through EventSub webhooks, replies through the Helix Chat API, deletes messages as a moderator, and sends and receives whispers.

    4.42.0release notes

  • Button and LinkButton accept user IDs allowed to see the button; Slack renders the option as visible_to_user_ids, while other adapters ignore it.

    4.42.0release notes

  • Installation lifecycle events provide a persistable channelId for later proactive messages.

    4.41.0release notes

  • New subpath provides TanStack message conversion for thread history and a Chat SDK toolset; its tools require zod 4.2 or newer.

    4.41.0release notes

  • Adds an installation lifecycle handler; the Teams adapter emits it for installationUpdate activities.

    4.41.0release notes

  • Adds an installation lifecycle handler; the Teams adapter emits it for installationUpdate activities.

    4.41.0release notes

  • Select and RadioSelect inputs in Slack modals can opt in to selection change events.

    4.41.0release notes

  • Adds an option to control grid lines in Teams tables; it defaults to true, and false keeps a table borderless.

    4.41.0release notes

  • Adds a Teams-only table rendering option for grid style.

    4.41.0release notes

  • Adds an option for vertical alignment of cell content in Teams table rendering.

    4.41.0release notes

  • Adds optional positive integer column weights for Teams table rendering.

    4.41.0release notes

  • The legacy setting can be set to false to disable count-based history eviction; the default remains 200 entries per user.

    4.41.0release notes

  • The Teams adapter supports Vercel Connect with lazy app identity resolution and custom webhook verification.

    4.41.0release notes

  • Adds an opt-in webhook option to propagate message, action, and slash command handler errors through waitUntil while preserving default behavior.

    4.41.0release notes

  • Adds a tooltip option to Button; the Teams adapter renders it as an Adaptive Card action tooltip, while other adapters ignore it.

    4.40.0release notes

  • Adds a width hint to Card; the Teams adapter renders it as the msteams full-width card property, while other adapters ignore it.

    4.40.0release notes

  • Adds a tooltip option to LinkButton; the Teams adapter renders it as an Adaptive Card action tooltip, while other adapters ignore it.

    4.40.0release notes

  • Adds promise-based helpers for per-channel message access; reads delegate to the adapter, with SDK-side persisted history served from cache.

    4.39.0release notes

  • Adds promise-based helpers for per-thread message access; reads delegate to the adapter, with SDK-side persisted history served from cache.

    4.39.0release notes

  • Caps lock renewal at a maximum lifetime, defaulting to 10 minutes, so a hung handler cannot block a thread forever.

    4.39.0release notes

  • Introduced as the replacement for TranscriptEntry; both types are exported from chat.

    4.39.0release notes

  • Can include an explicit action ID.

    4.39.0release notes

  • Adds lifecycle support, native stop cancellation through thread.signal, automatic session titles, and session stop/title-change events while preserving the legacy assistant_view compatibility path.

    4.39.0release notes

  • Converts history.user.list() entries into { role, content } messages ready for LLM prompts.

    4.39.0release notes

  • Adds a workflow-safe serialization entrypoint for projects that need to use serialization without Node-only runtime dependencies.

    4.38.0release notes

  • The --connect option scaffolds Discord bots with create-chat-sdk.

    4.38.0release notes

  • The Discord adapter adds support for custom webhook verification.

    4.38.0release notes

  • Adds a shared thread API for marking messages as read across WhatsApp, Messenger, and XChat.

    4.38.0release notes

  • Adds native message replies, including WhatsApp contextual reply support.

    4.38.0release notes

  • The Discord adapter adds Vercel Connect credential resolvers.

    4.38.0release notes

  • Adds strictScope: true to confine a thread scope to that thread, rejecting sibling threads and the parent channel.

    4.37.0release notes

  • Adds a native adapter with signed webhooks, media, quick replies, story context, reactions, and typed Meta API errors.

    4.37.0release notes

  • Adds lifecycle callbacks for message updates and deletions, including Slack message_changed and message_deleted dispatch support.

    4.37.0release notes

  • Adds Notion emoji platform support.

    4.37.0release notes

  • Adds XChat support as a new subpath alongside the existing X adapter; the XChat crypto dependencies are optional peer dependencies.

    4.36.0release notes

  • Adds a modal child rendered by the Slack adapter as a datepicker and by the Teams adapter as Input.Date.

    4.36.0release notes

  • Allows webhook verification to be disabled when an upstream layer already verifies XChat webhooks.

    4.36.0release notes

  • Sets the age gate for the first edit of a fresh message; its default is 5000ms so receiving clients have stored the original.

    4.36.0release notes

  • Adds an optional catalog field for adapters that ship on a subpath.

    4.36.0release notes

  • Adds a modal child rendered by the Slack adapter as a number_input and by the Teams adapter as Input.Number; submitted values arrive in event.values as strings.

    4.36.0release notes

  • Starts or reuses an encrypted one-to-one conversation and performs a full key exchange when needed so the bot can message first.

    4.36.0release notes

  • Controls XChat read receipts and defaults to on.

    4.36.0release notes

  • Provides an environment-variable alternative to consumerSecret for receiving verified XChat webhooks.

    4.36.0release notes

  • Adds a configurable group welcome message.

    4.36.0release notes

  • Adds support for sending and receiving reactions.

    4.36.0release notes

  • Exports a builder for approval cards from the chat/workflow subpath.

    4.35.0release notes

  • Exports a builder for resolved approval cards from the chat/workflow subpath.

    4.35.0release notes

  • Adds an optional Author field to distinguish platform-generated messages from humans and bots; the Slack adapter sets it for messages from its reserved USLACK user.

    4.35.0release notes

  • Adds durable human-in-the-loop approvals through the chat/workflow subpath. The workflow suspends for a decision or optional timeout, validates approvers, finalizes the card, and returns the outcome; it requires the optional workflow peer dependency.

    4.35.0release notes

  • Adds Slack adapter support for Slack's Agent messaging experience, including app_context_changed routing and folded context on DM messages.

    4.34.0release notes

  • Adds the opened Slack tab, allowing handlers to distinguish a Home-tab open from the DM-open signal under agent_view.

    4.34.0release notes

  • Adds a builder for pie, bar, area, and line charts, with JSX support.

    4.34.0release notes

  • Adds a chart element supporting pie, bar, area, and line charts with Slack-style data visualization fields.

    4.34.0release notes

  • Adds a helper for rendering chart data as fallback text on platforms without native chart support.

    4.34.0release notes

  • Adds SlackChartElement types, chart card children, data table rendering, and matching limits to the blocks subpath.

    4.34.0release notes

  • Adds a helper for reading folded app context from DM messages.

    4.34.0release notes

  • Adds a core event carrying normalized AppContextEntity[] data for the user's active view.

    4.34.0release notes

  • Accepts an optional thread reference so prompts can sit at the top of an agent conversation.

    4.34.0release notes

  • Adds an optional accessible table description.

    4.34.0release notes

  • Adds an optional field for specifying rows per page.

    4.34.0release notes

  • Adds the vendor-official Dial adapter to the catalog and CLI scaffold spec.

    4.33.0release notes

  • Adds the vendor-official Photon adapter to the catalog and CLI scaffold spec.

    4.33.0release notes

  • Adds an adapter for replying to public mentions, sending and receiving direct messages, posting and editing from the bot account, and liking posts via the X API v2 with OAuth 2.0 and managed token refresh.

    4.33.0release notes

  • Adds autoCompletePrevious, defaulting to true; pass false to keep multiple tasks in progress for parallel execution.

    4.32.0release notes

  • Adds a zero-dependency catalog subpath with official and vendor-official adapter metadata, environment specs, and setup helpers.

    4.31.0release notes

  • Adds support for stable IDs to link button action handlers.

    4.31.0release notes

  • Adds a burst concurrency strategy.

    4.29.0release notes

  • Adds a subpath for AI utilities, keeping the optional ai and zod peer dependencies out of bundles that do not use them.

    4.29.0release notes

  • Exposes Chat SDK operations as AI SDK tools, with presets, per-tool or global approval settings, and tools that can be cherry-picked.

    4.29.0release notes

  • A standalone reviver is exported for workflow-safe deserialization without adapter dependencies.

    4.26.0release notes

  • Buttons can use actionType: "modal" to support Teams dialogs.

    4.24.0release notes

  • Adds an onOpenModal webhook hook for Teams dialog support.

    4.24.0release notes

  • Adds an enum distinguishing private, workspace, external, and unknown channel scopes.

    4.23.0release notes

  • The Adapter interface gains an optional disconnect() hook, called during chat.shutdown() for resource cleanup.

    4.21.0release notes

  • Introduces the LinkPreview object on Message.

    4.20.1release notes

  • Adds an API for transforming history to AI SDK messages.

    4.20.1release notes

  • Adds forceReleaseLock to StateAdapter for interrupting or steering long-running handlers.

    4.19.0release notes

  • Adds a config option for interrupting or steering long-running handlers when a lock conflict occurs.

    4.19.0release notes

  • Adds a type for scheduled messages, with cancellation support in the Slack adapter.

    4.19.0release notes

  • Adds scheduling of messages to be sent at a future time; the Slack adapter uses chat.scheduleMessage and supports cancellation.

    4.19.0release notes

  • Adds support for native Slack tables.

    4.18.0release notes

  • Button() accepts a disabled prop for Google Chat and Discord.

    4.16.0release notes

  • This config option suppresses the initial "..." placeholder in post+edit fallback streaming.

    4.16.0release notes

  • The Slack adapter adds an onMemberJoinedChannel handler.

    4.16.0release notes

  • Added the CardLink element.

    4.15.0release notes

  • ChatConfig now accepts dedupeTtlMs to configure the deduplication TTL; the default TTL is 5 minutes.

    4.15.0release notes

  • The Slack adapter now supports typing indicators using the Slack assistants API.

    4.14.0release notes

  • Adds handler registration for assistant_thread_context_changed events.

    4.13.0release notes

  • Adds handler registration for assistant_thread_started events.

    4.13.0release notes

  • Adds a Slack adapter method for setting assistant status.

    4.13.0release notes

  • Adds a Slack adapter method for setting assistant title.

    4.13.0release notes

  • Adds a Slack adapter method for setting suggested prompts.

    4.13.0release notes

  • Accepts stopBlocks to support Block Kit on stream finalization.

    4.13.0release notes

  • Adds support for slash commands.

    4.12.0release notes

  • Cards can now include inline Select components.

    4.11.0release notes

  • Cards can now include Radio buttons.

    4.11.0release notes

  • Support was added for creating modals from ephemeral messages.

    4.10.1release notes

  • Adds a field for passing arbitrary metadata through the modal lifecycle.

    4.10.0release notes

  • Adds GitHub and Linear integrations.

    4.8.0release notes

  • Added to modal events to provide related message information.

    4.7.0release notes

  • Added to modal events to provide related thread information.

    4.7.0release notes

  • Adds the LinkButton component for use in applications.

    4.6.0release notes

  • Adds postEphemeral() for ephemeral messages.

    4.5.0release notes

  • Adds a private metadata field to onModalClose events.

    4.4.1release notes

  • Adds support for modal events.

    4.4.0release notes

  • Adds support for modals.

    4.4.0release notes

  • Adds support for selectors.

    4.4.0release notes

  • Adds support for text inputs.

    4.4.0release notes

  • Adds Discord support.

    4.3.0release notes

  • Adds native streaming support.

    4.1.0release notes

Performance 1

  • Resolved user profiles are cached in the state adapter for 1 hour, or 5 minutes after failed lookups, avoiding a Graph call per message.

    4.35.0release notes

Behavior and default changes 48

  • Built-in AI tools set aiGenerated: true on the markdown and raw messages they post or edit.

    4.42.0release notes

  • Button callbackUrl POST requests now include card input values, including when no onAction handler is configured.

    4.42.0release notes

  • TextInput can now be used as a CardChild, allowing users to reply directly on a card instead of opening a dialog.

    4.42.0release notes

  • Teams requires card inputs unless optional is set and validates every input before allowing a button through.

    4.42.0release notes

  • Custom Bot Framework and Graph token factories take precedence over client-secret environment variables.

    4.41.0release notes

  • Accepts the stream returned by TanStack's chat().

    4.41.0release notes

  • Can be set to false to disable count-based history eviction; the default remains 200 entries per user.

    4.41.0release notes

  • The Teams adapter renders Table as the native Adaptive Cards 1.5 Table element, with grid lines, relative column sizing, and an accessible header row.

    4.41.0release notes

  • The Teams adapter uses the service URL encoded in the thread ID for messaging operations, reaching regional or sovereign endpoints; an explicit apiUrl still pins every call.

    4.41.0release notes

  • Accepts the stream returned by TanStack's chat().

    4.41.0release notes

  • Accepts the stream returned by TanStack's chat().

    4.41.0release notes

  • Emitted Adaptive Cards now declare schema version 1.5, which supports action tooltips.

    4.40.0release notes

  • AI tool scoping is tightened.

    4.40.0release notes

  • The Teams cards subpath renders button and link-button tooltips and card width hints as Adaptive Card properties.

    4.40.0release notes

  • Direct-message conversations are isolated.

    4.40.0release notes

  • Google Chat pagination now uses native pagination.

    4.40.0release notes

  • Queued-message scoping is tightened.

    4.40.0release notes

  • Recording storage is bounded.

    4.40.0release notes

  • Slack caches are isolated.

    4.40.0release notes

  • Telegram file downloads are returned as portable ArrayBuffer data while Buffer support remains in the shared attachment contract.

    4.39.0release notes

  • Locks remain alive while message handlers run, keeping queue, burst, and debounce strategies serialized beyond the lock TTL; loops stop if ownership is lost, and debounce continues draining messages that arrive during a handler.

    4.39.0release notes

  • Supports native stop cancellation for Slack Agent Sessions.

    4.39.0release notes

  • Replied-to message context is preserved in normalized messages and populated from Telegram replies.

    4.38.0release notes

  • Built-in agent read tools are confined to the conversation being handled, with an optional scope override.

    4.36.0release notes

  • Cards degrade to text with tappable URL and mention entities plus a URL preview attachment.

    4.36.0release notes

  • Supports editing and deleting the bot's own messages; the first edit of a fresh message is age-gated by editSafetyDelayMs.

    4.36.0release notes

  • Adds typing keep-alive support.

    4.36.0release notes

  • Requests include a chat-sdk-xchat product token so Chat SDK traffic is identifiable in X API request logs; a User-Agent set via apiHeaders takes precedence.

    4.36.0release notes

  • Normalized incoming Teams message authors now expose Microsoft Graph email addresses.

    4.35.0release notes

  • Explicitly configured progress is shown as a native Teams DM status while native streaming is preserved.

    4.35.0release notes

  • The chat package now accepts AI SDK v7 as a peer dependency alongside v6.

    4.34.0release notes

  • Carries folded active-view context so handlers can identify the view associated with a Home-open event.

    4.34.0release notes

  • Accepts AI SDK v7 and newer compatible React, Svelte, and Vue AI SDK peer dependency majors.

    4.34.0release notes

  • Environment credential fallback remains enabled unless an auth or verification field is explicitly passed, so unrelated config such as agentView does not suppress it.

    4.34.0release notes

  • Under agentView, each user message in the Messages tab is a thread root; subscribed conversation-scoped threads from openDM() continue to receive top-level DM messages.

    4.34.0release notes

  • Surfaces Slack's per-block validation details when the API rejects blocks.

    4.34.0release notes

  • The interactive state picker now filters out CLI-incompatible state adapters.

    4.33.0release notes

  • The default message dedupe TTL increases from 5 to 10 minutes to outlast platform redelivery windows; configuring dedupeTtlMs still overrides it.

    4.33.0release notes

  • Adds native draft streaming in Telegram private chats, with fallback streaming elsewhere.

    4.30.0release notes

  • Slack native streaming can send markdown tables without wrapping them in code fences; other consumers retain the append-only table fallback.

    4.25.0release notes

  • New concurrency strategies are implemented for overlapping messages.

    4.22.0release notes

  • Migrates the remaining adapters to shared error types.

    4.19.0release notes

  • Adapters have updated fallback-render behavior.

    4.16.0release notes

  • Markdown can be rendered fully while streaming, including on Slack, which has native streaming.

    4.16.0release notes

  • Markdown rendering now supports tables.

    4.16.0release notes

  • A new ConsoleLogger is created automatically.

    4.13.4release notes

  • Routes the Slack assistant_thread_context_changed event.

    4.13.0release notes

  • Routes the Slack assistant_thread_started event.

    4.13.0release notes

Tooling 2

  • Adds Teams support to the command's Connect scaffolding.

    4.41.0release notes

  • The CLI scaffold now registers the XChat adapter.

    4.36.0release notes

Fixes and other changes 40

  • SlackAdapter and TelegramAdapter can now be assigned to Adapter when exactOptionalPropertyTypes is enabled.

    4.42.0release notes

  • The default thread signal is created on first use, and threads revived inside the Workflow DevKit VM receive an inert signal that never aborts, fixing workflow startup failures.

    4.42.0release notes

  • Modal context is retained until the modal closes, keeping relatedThread and relatedChannel available after validation errors or update and push responses.

    4.42.0release notes

  • Restoring threads and channels now preserves streaming settings and runtime ownership.

    4.41.1release notes

  • After a failed state connection, the next initialize() call or webhook retries initialization; concurrent callers share one attempt, and failures remain cached until shutdown().

    4.41.0release notes

  • The chat JSX runtime now forwards align on Table, matching fromReactElement.

    4.41.0release notes

  • Telegram polling waits for handlers to settle before advancing update offsets.

    4.41.0release notes

  • Callback tokens are consumed once.

    4.40.0release notes

  • Buttons retain their tooltip and other fields when callbackUrl is swapped for a callback token.

    4.40.0release notes

  • Ephemeral follow-ups are preserved.

    4.40.0release notes

  • Explicit Google Chat bot identity is required for reliable mention handling.

    4.40.0release notes

  • Preserves adapter-returned thread ids when editing channel messages.

    4.39.0release notes

  • Queued and debounced messages are isolated by thread when using channel-scoped locks.

    4.38.1release notes

  • Keeps empty table cells to preserve tab-separated column alignment and drops rows with no content, such as placeholder header rows.

    4.38.1release notes

  • Automatic Chat class serializers are isolated from Node-only runtime dependencies.

    4.38.0release notes

  • Email addresses no longer trigger bot mentions because an @ following a word character is not treated as a mention.

    4.36.0release notes

  • Personal and group conversations are routed using their explicit conversation type, so group chats use buffered fallback even when their IDs resemble direct messages.

    4.36.0release notes

  • Detects mentions from structured mention entities, swipe-replies to the bot, and a plain-text @handle fallback.

    4.36.0release notes

  • Keeps messages with empty text when they have supported links or attachments, including images and fetchable text files. Messages with only unsupported attachments remain skipped, and multipart content may contain only attachment parts.

    4.35.0release notes

  • No longer falsely matches @bot when the mention is @bot-dev.

    4.34.0release notes

  • The Telegram adapter no longer falsely matches @bot when the mention is @bot-dev.

    4.34.0release notes

  • Preserves markdown structural whitespace when extracting normalized message text.

    4.34.0release notes

  • Preserves skipped mention routing for debounce and message patterns.

    4.33.0release notes

  • Bot mentions are now detected in skipped queue and burst messages.

    4.32.0release notes

  • Streaming posts without an incoming message context no longer crash when using lightweight thread handles.

    4.32.0release notes

  • Fallback streaming is guarded against empty post and edit calls.

    4.26.0release notes

  • Source maps are disabled in published packages.

    4.24.0release notes

  • An adapter is now used to parse the channel ID for thread.channelId.

    4.24.0release notes

  • Step separator detection for AI SDK v5+ now checks for the finish-step event.

    4.21.0release notes

  • The Thread and Channel interfaces now declare the toJSON() method to match their implementations.

    4.21.0release notes

  • Accumulates text and posts once instead of using the fallbackStream post-and-edit loop that caused 422 errors from empty body edits during TTFT; fallbackStream edit failures are now logged via Logger.

    4.20.1release notes

  • Makes EphemeralMessage generic over TRawMessage.

    4.19.0release notes

  • Fixes compatibility with AI SDK 6.

    4.18.0release notes

  • Fixes non-atomic message deduplication that could silently drop app_mention events.

    4.17.0release notes

  • Improves streaming for AI SDK.

    4.16.1release notes

  • Fixes a crash when openModal is called for an action with no thread context, such as a home tab button.

    4.16.1release notes

  • Streaming markdown healing is added with remend.

    4.16.0release notes

  • Fixes lost metadata that prevented deserialized threads from posting streams to Slack.

    4.13.3release notes

  • allMessages was fixed and tested.

    4.2.0release notes

  • fetchMessages was fixed and tested.

    4.2.0release notes