Skip to content

chat@4.34.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 15:49
f84b591

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 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/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.