Repository navigation
Releases: slackapi/node-slack-sdk
Release list
@slack/web-api@8.2.0
Minor Changes
- c523063: feat: add the
agents.conversations.*methods for Slack Code (create,archive,setProperties,setView,setCommands,listViews,removeView,getCanvas,setCanvasContent).
Patch Changes
@slack/types@3.2.0
Minor Changes
- ca6f416: feat(types): add
ContainerBlockblock interface - abf184e: feat: add the
data_tableBlock Kit block type (DataTableBlock) - d420d00: feat: allow
raw_numbercells inTableBlockrows (addsRawNumberElement) - 52eeb05: feat(types): add optional
action_idproperty to theWorkflowButtonblock element
@slack/socket-mode@3.1.0
Minor Changes
-
334e6a6: Support
undici@^8as a peer dependency in addition toundici@^7.undici@^8requires Node.js >=22.19;undici@^7continues to support Node.js >=20.The default dispatcher now pins the WebSocket connection to HTTP/1.1, since
undici@^8offers HTTP/2 by default. To do the same with a customProxyAgentdispatcher, passrequestTls: { allowH2: false }.
Patch Changes
@slack/webhook@8.0.2
@slack/webhook@8.0.1
Patch Changes
-
3a459f6: fix: stop
WebhookTrigger.send()from retrying after a successful deliveryA 2xx response with an empty or non-JSON body no longer throws. It now resolves to
{ ok: true }. Before this fix that body threw a parse error, which was retried as a request error and caused duplicate Workflow Builder runs. A valid{ ok: false, error }body is still surfaced to the caller. -
Updated dependencies [916d8e9]
-
Updated dependencies [f5e9a01]
- @slack/types@3.1.0
@slack/web-api@8.1.1
@slack/web-api@8.1.0
Minor Changes
-
955e6b9: feat(web-api): add support for
admin.users.getExpiration -
4322e14: feat(web-api): add
agents.sessions.renameandagents.sessions.setStatus -
4ba30a1: feat(web-api): add
session_statustochat.stopStreamarguments -
bff3398: feat(web-api): add webapi response changes as of 2026-08-21
Regenerate response types with new stable response properties (e.g.
agent_sessionon message-bearing responses,ListViewgrouping/sort/filter fields,bots.infoconnector/workflow flags).Two fields are removed from
UsersListResponse, neither of which is a real success-response property:Member.is_connector_bot— not returned byusers.list; this flag is surfaced onbots.info(added here toBotsInfoResponse).arg— an error-response echo field, not part of a successfulusers.listbody.
-
f5fd35a: feat(web-api): add
blocks.validatemethod
Patch Changes
@slack/types@3.1.0
Minor Changes
- 916d8e9: feat(types): add
agent_session_stoppedandagent_session_title_changedevents - f5e9a01: feat(types): add optional
min_linesandmax_linesproperties toRichTextInputelement
@slack/socket-mode@3.0.1
Patch Changes
-
5c2362c: Fix leaked TCP sockets on disconnect (#2709). Moving from
wsto undici'sWebSocketin 3.0.0 dropped every force-close mechanism, soESTABLISHEDsockets were never torn down and accumulated toward Slack's per-app connection cap.disconnect()now arms a 30s close-handshake timeout, so a peer that never replies to the close frame no longer leaves the socket stuck inCLOSINGindefinitely.- On the default dispatcher path, the underlying TCP socket is now captured and force-destroyed during cleanup. A user-supplied
dispatcherowns its own socket and instead relies on the close-handshake timeout — this limitation is documented on thedispatcheroption. - The
closehandler no longer schedules a reconnect on stale or overlapping close events, so at most one reconnect is scheduled per disconnect.
@slack/webhook@8.0.0
Major Changes
-
fc98c8c: Drop Node.js 18 support. The minimum supported Node.js version is now 20.
-
fc98c8c: Restructured error classes to use proper
Errorsubclasses extending a newSlackWebhookErrorbase class.Breaking changes to
IncomingWebhookHTTPError:- The
originalproperty has been removed. HTTP response details are now direct properties:statusCode: numberstatusMessage: stringbody: string
- Migrate from
error.original.response.statustoerror.statusCode,error.original.response.datatoerror.body, etc.
Breaking changes to
IncomingWebhookRequestError:- The
originalproperty is now a standardError(previously it was anAxiosError). The original error is also available via the standardcauseproperty.
Removed factory functions (use
newwith the corresponding class instead):requestErrorWithOriginal()→new IncomingWebhookRequestError(original)httpErrorWithOriginal()→new IncomingWebhookHTTPError(statusCode, statusMessage, body)errorWithCode()— Use the specific error class directly.
Migration: Replace
if (error.code === ErrorCode.HTTPError)withif (error instanceof IncomingWebhookHTTPError). You can also catch all webhook errors withif (error instanceof SlackWebhookError).The
CodedErrorinterface is deprecated — useinstanceofchecks with theSlackWebhookErrorbase class or specific error subclasses instead. - The
-
fc98c8c: Replaced
axioswith the standard Fetch API for HTTP transport.Removed options from
IncomingWebhookDefaultArguments:agent— Use the newfetchoption to provide a custom fetch implementation with proxy or TLS support. For proxies, prefer the built-inhttp.setGlobalProxyFromEnv()orNODE_USE_ENV_PROXY=1(Node.js 24+). For advanced use cases:import { fetch, Agent } from "undici"; const webhook = new IncomingWebhook(url, { fetch: (url, init) => fetch(url, { ...init, dispatcher: new Agent({ connect: { ca: myCA } }), }), });
The
axiosdependency has been removed. The default fetch implementation isglobalThis.fetch(available in Node.js 20+). Thetimeoutoption remains available and is implemented viaAbortController.
Minor Changes
-
fc98c8c: feat: add
WebhookTriggerclass for Workflow Builder triggers and opt-in retries forIncomingWebhookandWebhookTriggerWebhookTriggersurfaces its ownWebhookTriggerHTTPErrorandWebhookTriggerRequestError(subclasses ofSlackWebhookError), so trigger failures can be distinguished fromIncomingWebhookfailures viainstanceof.
Patch Changes
- Updated dependencies [fc98c8c]
- @slack/types@3.0.0