Releases: vercel/chat
Release list
chat@4.34.0
Minor Changes
-
1721fa0: Add support for Slack's Agent messaging experience (
agent_view).- New core event
onAppContextChangedwith a normalizedAppContextEntity[]describing the user's active view (channel / canvas / list / message / unknown). AppHomeOpenedEventnow carries the folded active-view context asentitiesand the openedtab(Slack:"home"/"messages"), so handlers can tell a Home-tab open from the DM-open signal underagent_view.- Slack adapter: new
agentViewconfig flag (underagent_view,app_home_openedis the DM-open signal regardless of tab and folded context is surfaced), routing for theapp_context_changedevent, and agetAppContext(message)helper to read the folded context on DM messages. setSuggestedPromptsnow accepts an optional thread reference (agent_view lets prompts sit at the top of the agent conversation).- Under
agentView, DM (Messages-tab) messages are threaded per new Slack's model — each user message is a thread root (thread_ts ?? ts). Conversation-scoped threads returned byopenDM()keep working: when that thread is subscribed, incoming top-level DM messages route to it. createSlackAdapterenv auth fallback (SLACK_BOT_TOKEN/SLACK_CLIENT_ID/SLACK_CLIENT_SECRET) is now disabled only when an auth or verification field (botToken,clientId,clientSecret,installationProvider,signingSecret,webhookVerifier) is passed explicitly, instead of by any config object — socreateSlackAdapter({ agentView: true })still picks up env credentials, while explicit-secret configs stay immune to ambient env vars.- Bumped
@slack/web-apito^7.18.0(adds the optionalthread_tstyping forsetSuggestedPrompts).
- New core event
-
4717a38: Add chart support and richer table rendering, with native Slack data table and data visualization blocks.
- New core
ChartElementandChart()builder (JSX supported) with pie, bar, area, and line charts, mirroring Slack's data visualization model: pie charts takesegments, series charts take namedseriesplotted against sharedcategorieswith optionalxLabel/yLabel. TableElement/Table()gain optionalcaption(accessible table description) andpageSize(rows per page) fields.- Charts degrade gracefully on platforms without native chart support: the underlying data renders as a text table via the shared card fallback (new
chartElementToFallbackTexthelper). - Slack adapter: card tables now render as data table blocks by default — paginated and sortable — instead of plain table blocks. Header-only tables keep the plain table block; tables exceeding Slack limits (100 data rows, 20 columns, 10,000 characters) fall back to ASCII as before.
- Slack adapter: card charts render as data visualization blocks. Charts violating Slack constraints (50-character title, 12 segments/series, 20 categories, 20-character labels, one data point per category, max 2 charts per message) fall back to a text rendering instead of being rejected by the API.
- The
@chat-adapter/slack/blockssubpath gets the same treatment:SlackChartElementtypes,chartcard children, data table rendering, and matching limits. postMessagenow surfaces Slack's per-block validation details when the API rejects blocks (invalid_blocks), instead of the bare "An API error occurred" message.
- New core
-
6714efc: Support AI SDK v7 as a peer dependency.
chatnow acceptsai@^6.0.182 || ^7.0.0(chat/aitools work with both majors).@chat-adapter/webnow acceptsai@^6 || ^7,@ai-sdk/react@^3 || ^4,@ai-sdk/svelte@^4 || ^5, and@ai-sdk/vue@^3 || ^4.- The
chat/aitool factories now declare explicitTool<Input, Output>return types instead of relying on inference, so the published declarations no longer depend onaiinternals that changed in v7. The public type surface is unchanged.
Patch Changes
- 5c926f1: Preserve markdown structural whitespace when extracting normalized message text.
- 2531a42: Fix
detectMention(and the Telegram adapter'sisBotMentioned) falsely matching@botwhen@bot-devis mentioned.\b(word boundary) matches between a word character and a hyphen, so/@bot\b/incorrectly matches@bot-dev. Replaced with(?![\w-])to exclude hyphens.
@chat-adapter/x@4.34.0
Minor Changes
- 4bca64f: add image upload support to X posts and DMs via the chunked media upload endpoints
Patch Changes
@chat-adapter/whatsapp@4.34.0
Minor Changes
-
2338a66: Add
sendTemplate()for sending pre-approved template messages, enabling business-initiated conversations outside the 24-hour customer service window -
8bd8a57: Implement outbound file and attachment sending for the WhatsApp adapter.
Supports binary
FileUploaduploads, typedAttachmentpayloads (binary or HTTPS link passthrough), multi-file sequential sends, smart MIME-to-message-type mapping, caption placement with audio/long-text fallbacks, and card+file sequencing.
Patch Changes
@chat-adapter/web@4.34.0
Minor Changes
-
6714efc: Support AI SDK v7 as a peer dependency.
chatnow acceptsai@^6.0.182 || ^7.0.0(chat/aitools work with both majors).@chat-adapter/webnow acceptsai@^6 || ^7,@ai-sdk/react@^3 || ^4,@ai-sdk/svelte@^4 || ^5, and@ai-sdk/vue@^3 || ^4.- The
chat/aitool factories now declare explicitTool<Input, Output>return types instead of relying on inference, so the published declarations no longer depend onaiinternals that changed in v7. The public type surface is unchanged.
Patch Changes
@chat-adapter/twilio@4.34.0
@chat-adapter/tests@4.34.0
chore(release): version packages (#695)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.
# Releases
## @chat-adapter/discord@4.34.0
### Minor Changes
- 0fdb902: Add opt-in Discord Components v2 rendering for Chat SDK cards
via `contentFormat: DiscordContentFormat.ComponentsV2`.
- 5341f90: Ignore `@everyone`/`@here` pings by default in gateway mode.
Previously the legacy gateway listener treated global pings as bot
mentions, so the bot responded to announcements. A new
`respondToGlobalMentions` config option (default `false`) restores the
old behavior when enabled, and also lets forwarded gateway messages opt
in via the `mention_everyone` field.
- 6c2a391: Add support for renaming native Discord thread channels.
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/slack@4.34.0
### Minor Changes
- 1721fa0: Add support for Slack's Agent messaging experience
(`agent_view`).
- New core event `onAppContextChanged` with a normalized
`AppContextEntity[]` describing the user's active view (channel / canvas
/ list / message / unknown).
- `AppHomeOpenedEvent` now carries the folded active-view context as
`entities` and the opened `tab` (Slack: `"home"` / `"messages"`), so
handlers can tell a Home-tab open from the DM-open signal under
`agent_view`.
- Slack adapter: new `agentView` config flag (under `agent_view`,
`app_home_opened` is the DM-open signal regardless of tab and folded
context is surfaced), routing for the `app_context_changed` event, and a
`getAppContext(message)` helper to read the folded context on DM
messages.
- `setSuggestedPrompts` now accepts an optional thread reference
(agent_view lets prompts sit at the top of the agent conversation).
- Under `agentView`, DM (Messages-tab) messages are threaded per new
Slack's model — each user message is a thread root (`thread_ts ?? ts`).
Conversation-scoped threads returned by `openDM()` keep working: when
that thread is subscribed, incoming top-level DM messages route to it.
- `createSlackAdapter` env auth fallback (`SLACK_BOT_TOKEN` /
`SLACK_CLIENT_ID` / `SLACK_CLIENT_SECRET`) is now disabled only when an
auth or verification field (`botToken`, `clientId`, `clientSecret`,
`installationProvider`, `signingSecret`, `webhookVerifier`) is passed
explicitly, instead of by any config object — so `createSlackAdapter({
agentView: true })` still picks up env credentials, while
explicit-secret configs stay immune to ambient env vars.
- Bumped `@slack/web-api` to `^7.18.0` (adds the optional `thread_ts`
typing for `setSuggestedPrompts`).
- 4717a38: Add chart support and richer table rendering, with native
Slack data table and data visualization blocks.
- New core `ChartElement` and `Chart()` builder (JSX supported) with
pie, bar, area, and line charts, mirroring Slack's data visualization
model: pie charts take `segments`, series charts take named `series`
plotted against shared `categories` with optional `xLabel`/`yLabel`.
- `TableElement` / `Table()` gain optional `caption` (accessible table
description) and `pageSize` (rows per page) fields.
- Charts degrade gracefully on platforms without native chart support:
the underlying data renders as a text table via the shared card fallback
(new `chartElementToFallbackText` helper).
- Slack adapter: card tables now render as [data table
blocks](https://docs.slack.dev/reference/block-kit/blocks/data-table-block)
by default — paginated and sortable — instead of plain table blocks.
Header-only tables keep the plain table block; tables exceeding Slack
limits (100 data rows, 20 columns, 10,000 characters) fall back to ASCII
as before.
- Slack adapter: card charts render as [data visualization
blocks](https://docs.slack.dev/reference/block-kit/blocks/data-visualization-block).
Charts violating Slack constraints (50-character title, 12
segments/series, 20 categories, 20-character labels, one data point per
category, max 2 charts per message) fall back to a text rendering
instead of being rejected by the API.
- The `@chat-adapter/slack/blocks` subpath gets the same treatment:
`SlackChartElement` types, `chart` card children, data table rendering,
and matching limits.
- `postMessage` now surfaces Slack's per-block validation details when
the API rejects blocks (`invalid_blocks`), instead of the bare "An API
error occurred" message.
- 0f743c9: Add declarative agent-experience config and harden native
streaming:
- `suggestedPrompts` — a static payload or per-thread resolver, applied
automatically when an assistant/agent thread opens
(`assistant_thread_started` in legacy `assistant_view`, or a
Messages-tab `app_home_opened` under `agentView`, where prompts pin at
the top of the agent conversation without a `thread_ts`). The resolver
receives the thread context (`channelId`, `userId`, legacy
`threadTs`/`teamId`/`enterpriseId`, and active-view `entities` under
`agentView`); returning `null`/`undefined` skips the thread. Prompts
beyond Slack's 4-prompt limit are dropped with a warning, and
resolver/API failures are logged without failing the webhook.
- `loadingMessages` — default rotating status strings for the assistant
thinking indicator, used by `startTyping` and `setAssistantStatus` when
no explicit status/messages are passed.
- `nativeStreaming` config (default `true`). Set `false` on Slack
flavours without the `chat.startStream` family (e.g. GovSlack) to always
stream via post-and-edit.
- If the workspace rejects the first native streaming call, `stream()`
now falls back to throttled post-and-edit mid-stream instead of failing
the reply; already-consumed text is preserved. Permanent platform errors
(`unknown_method`, `method_deprecated`, `feature_not_enabled`) latch
native streaming off for subsequent streams on the adapter instance.
Structured chunks (`task_update` / `plan_update`) are skipped in
fallback mode.
- `feedbackButtons` — append Slack's native thumbs up/down
(`context_actions` + `feedback_buttons` block) to every streamed reply.
Pass `true` for defaults or an options object (`actionId`, labels,
values); clicks dispatch through `bot.onAction` with a positive/negative
value. A `buildFeedbackButtonsBlock(options?)` helper is exported for
attaching the block to non-streamed messages.
New exported types: `SlackFeedbackButtonsOptions`,
`SlackSuggestedPrompt`, `SlackSuggestedPrompts`,
`SlackSuggestedPromptsContext`, `SlackSuggestedPromptsOptions`.
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/telegram@4.34.0
### Minor Changes
- 8d7ccdb: Add Telegram media group uploads for multiple files and
attachments.
### Patch Changes
- 2531a42: Fix `detectMention` (and the Telegram adapter's
`isBotMentioned`) falsely matching `@bot` when `@bot-dev` is mentioned.
`\b` (word boundary) matches between a word character and a hyphen, so
`/@bot\b/` incorrectly matches `@bot-dev`. Replaced with `(?![\w-])` to
exclude hyphens.
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/web@4.34.0
### Minor Changes
- 6714efc: Support AI SDK v7 as a peer dependency.
- `chat` now accepts `ai@^6.0.182 || ^7.0.0` (`chat/ai` tools work with
both majors).
- `@chat-adapter/web` now accepts `ai@^6 || ^7`, `@ai-sdk/react@^3 ||
^4`, `@ai-sdk/svelte@^4 || ^5`, and `@ai-sdk/vue@^3 || ^4`.
- The `chat/ai` tool factories now declare explicit `Tool<Input,
Output>` return types instead of relying on inference, so the published
declarations no longer depend on `ai` internals that changed in v7. The
public type surface is unchanged.
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/whatsapp@4.34.0
### Minor Changes
- 2338a66: Add `sendTemplate()` for sending pre-approved template
messages, enabling business-initiated conversations outside the 24-hour
customer service window
- 8bd8a57: Implement outbound file and attachment sending for the
WhatsApp adapter.
Supports binary `FileUpload` uploads, typed `Attachment` payloads
(binary or HTTPS link passthrough), multi-file sequential sends, smart
MIME-to-message-type mapping, caption placement with audio/long-text
fallbacks, and card+file sequencing.
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/x@4.34.0
### Minor Changes
- 4bca64f: add image upload support to X posts and DMs via the chunked
media upload endpoints
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## chat@4.34.0
### Minor Changes
- 1721fa0: Add support for Slack's Agent messaging experience
(`agent_view`).
- New core event `onAppContextChanged` with a normalized
`AppContextEntity[]` describing the user's active view (channel / canvas
/ list / message / unknown).
- `AppHomeOpenedEvent` now carries the folded active-view context as
`entities` and the opened `tab` (Slack: `"home"` / `"messages"`), so
handlers can tell a Home-tab open from the DM-open signal under
`agent_view`.
- Slack adapter: new `agentView` config flag (under `agent_view`,
`app_home_opened` is the DM-open signal regardless of tab and folded
context is surfaced), routing for the `app_context_changed` event, and a
`getAppContext(message)` helper to read the folded context on DM
messages.
- `setSuggestedPrompts` now accepts an optional thread reference
(agent_view lets prompts sit at the top of the agent conversation).
- Under `agentView`, DM (Messages-tab) messages are threaded per new
Slack's model — each user message is a thread root (`thread_ts ?? ts`).
Conversation-scoped threads returned by `openDM()` keep working: when
that thread is subscribed, incoming top-level DM messages route to it.
- `createSlackAdapter` env auth fallback (`SLACK_BOT_TOKEN` /
`SLACK_CLIENT_ID` / `SLACK_CLIENT_SECRET`) is now disabled only when an
auth or verification field (`botToken`, `clientId`, `clientSecret`,
`installationProvider`, `signingSecret`, `webhookVerifier`) is passed
explicitly, instead of by any config object — so `createSlackAdapter({
agentView: true })` still picks up env credentials, while
explicit-secret configs stay immune to ambient env vars.
- Bumped `@slack/web-api` to `^7.18.0` (adds the optional `thread_ts`
typing for `setSuggestedPrompts`).
- 4717a38: Add chart support and richer table rendering, with native
Slack data table and data visualization blocks.
- New core `ChartElement` and `Chart()` builder (JSX supported) with
pie, bar, area, and line charts, mirroring Slack's data visualization
model: pie charts take `segments`, series charts take named `series`
plotted against shared `categories` with optional `xLabel`/`yLabel`.
- `TableElement` / `Table()` gain optional `caption` (accessible table
description) and `pageSize` (rows per page) fields.
- Charts degrade gracefully on platforms without native chart support:
the underlying data renders as a text table via the shared card fallback
(new `chartElementToFallbackText` helper).
- Slack adapter: card tables now render as [data table
blocks](https://docs.slack.dev/reference/block-kit/blocks/data-table-block)
by default — paginated and sortable — instead of plain table blocks.
Header-only tables keep the plain table block; tables exceeding Slack
limits (100 data rows, 20 columns, 10,000 characters) fall back to ASCII
as before.
- Slack adapter: card charts render as [data visualization
blocks](https://docs.slack.dev/reference/block-kit/blocks/data-visualization-block).
Charts violating Slack constraints (50-character title, 12
segments/series, 20 categories, 20-character labels, one data point per
category, max 2 charts per message) fall back to a text rendering
instead of being rejected by the API.
- The `@chat-adapter/slack/blocks` subpath gets the same treatment:
`SlackChartElement` types, `chart` card children, data table rendering,
and matching limits.
- `postMessage` now surfaces Slack's per-block validation details when
the API rejects blocks (`invalid_blocks`), instead of the bare "An API
error occurred" message.
- 6714efc: Support AI SDK v7 as a peer dependency.
- `chat` now accepts `ai@^6.0.182 || ^7.0.0` (`chat/ai` tools work with
both majors).
- `@chat-adapter/web` now accepts `ai@^6 || ^7`, `@ai-sdk/react@^3 ||
^4`, `@ai-sdk/svelte@^4 || ^5`, and `@ai-sdk/vue@^3 || ^4`.
- The `chat/ai` tool factories now declare explicit `Tool<Input,
Output>` return types instead of relying on inference, so the published
declarations no longer depend on `ai` internals that changed in v7. The
public type surface is unchanged.
### Patch Changes
- 5c926f1: Preserve markdown structural whitespace when extracting
normalized message text.
- 2531a42: Fix `detectMention` (and the Telegram adapter's
`isBotMentioned`) falsely matching `@bot` when `@bot-dev` is mentioned.
`\b` (word boundary) matches between a word character and a hyphen, so
`/@bot\b/` incorrectly matches `@bot-dev`. Replaced with `(?![\w-])` to
exclude hyphens.
## @chat-adapter/gchat@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/github@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/linear@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/messenger@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/shared@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
## @chat-adapter/teams@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/twilio@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0
## @chat-adapter/state-ioredis@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
## @chat-adapter/state-memory@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
## @chat-adapter/state-pg@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
## @chat-adapter/state-redis@4.34.0
### Patch Changes
- Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
## @chat-adapter/tests@4.34.0
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@chat-adapter/telegram@4.34.0
Minor Changes
- 8d7ccdb: Add Telegram media group uploads for multiple files and attachments.
Patch Changes
- 2531a42: Fix
detectMention(and the Telegram adapter'sisBotMentioned) falsely matching@botwhen@bot-devis mentioned.\b(word boundary) matches between a word character and a hyphen, so/@bot\b/incorrectly matches@bot-dev. Replaced with(?![\w-])to exclude hyphens. - Updated dependencies [5c926f1]
- Updated dependencies [2531a42]
- Updated dependencies [1721fa0]
- Updated dependencies [4717a38]
- Updated dependencies [6714efc]
- chat@4.34.0
- @chat-adapter/shared@4.34.0