github slackapi/bolt-js @slack/bolt@4.7.0

9 hours ago

What's Changed

Bring magic to a conversation with sayStream for streaming messages and show loading status with setStatus. Now available for app.event and app.message listeners:

app.event('app_mention', async ({ sayStream, setStatus }) => {
  setStatus({
    status: 'Thinking...',
    loading_messages: ['Waking up...', 'Loading a witty response...'],
  });
  const stream = sayStream({ buffer_size: 100 });
  await stream.append({ markdown_text: 'Thinking... :thinking_face:\n\n' });
  await stream.append({ markdown_text: 'Here is my response!' });
  await stream.stop();
});

The respond function now accepts thread_ts to publish responses in a thread:

app.action('my_action', async ({ ack, respond }) => {
  await ack();
  await respond({ text: 'Replying in thread!', thread_ts: '1234567890.123456' });
});

Configure ping timeouts, reconnect behavior, and other Socket Mode settings directly through App options:

const app = new App({
  socketMode: true,
  appToken: process.env.SLACK_APP_TOKEN,
  token: process.env.SLACK_BOT_TOKEN,
  clientPingTimeout: 15000,
  serverPingTimeout: 60000,
  pingPongLoggingEnabled: true,
});

👾 Enhancements

  • feat: add support for sayStream listener argument in #2841 - Thanks @WilliamBergamin!
  • feat: surface the setStatus argument to listeners if required event details are available in #2843 - Thanks @WilliamBergamin!
  • Add thread_ts to RespondFn type in #2732 - Thanks @misscoded!
  • feat(SocketModeReceiver): expose Socket Mode timeout and reconnect options in #2786 - Thanks @shivasymbl!
  • Enable esModuleInterop in tsconfig in #2719 - Thanks @misscoded!

🐛 Fixes

  • fix: Improve ESM compatibility for named exports in #2724 - Thanks @grantjoy!
  • Fixed edge case when there was error during authorize in #2753 - Thanks @shlomisas!

📚 Documentation

🧰 Maintenance

  • refactor: consolidate event channel and thread extraction in #2830 - Thanks @WilliamBergamin!
  • chore: consolidate context utility creators in #2828 - Thanks @WilliamBergamin!
  • build: use pinned minimum supported node18 version for type checks in #2801 - Thanks @zimeg!
  • build: include the package lockfile for custom receiver example in #2744 - Thanks @zimeg!
  • ci: support node 24 in #2831 - Thanks @zimeg!
  • ci: perform sample and example app tests on regression schedules in #2743 - Thanks @zimeg!
  • ci(deps): auto-approve / auto-merge dependencies from dependabot in #2780 - Thanks @mwbrooks!
  • chore: Add .github/CODEOWNERS file in #2718 - Thanks @mwbrooks!
  • chore: add AGENTS.md in #2826 - Thanks @WilliamBergamin!
  • chore(release): version @slack/bolt@4.7.0 in #2848 - Thanks @zimeg!

🎁 Dependencies

Core

  • chore(deps): update @slack/types requirement from ^2.18.0 to ^2.19.0 in #2727 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/types requirement from ^2.19.0 to ^2.20.0 in #2790 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/types requirement from ^2.20.0 to ^2.20.1 in #2820 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/web-api requirement from ^7.12.0 to ^7.13.0 in #2730 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/web-api requirement from ^7.13.0 to ^7.14.1 in #2791 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/web-api requirement from ^7.14.1 to ^7.15.0 in #2817 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/socket-mode requirement from ^2.0.5 to ^2.0.6 in #2816 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/logger requirement from ^4.0.0 to ^4.0.1 in #2818 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/oauth requirement from ^3.0.4 to ^3.0.5 in #2819 - Thanks @dependabot[bot]!
CI
  • chore(deps): bump actions/stale from 10.0.0 to 10.1.0 in #2706 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/stale from 10.1.0 to 10.1.1 in #2756 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/stale from 10.1.1 to 10.2.0 in #2804 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/setup-node from 5.0.0 to 6.0.0 in #2707 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/setup-node from 6.0.0 to 6.1.0 in #2757 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/setup-node from 6.1.0 to 6.2.0 in #2775 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/setup-node from 6.2.0 to 6.3.0 in #2833 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/checkout from 5.0.0 to 6.0.0 in #2729 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/checkout from 6.0.0 to 6.0.1 in #2758 - Thanks @dependabot[bot]!
  • chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 in #2774 - Thanks @dependabot[bot]!
  • chore(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 in #2755 - Thanks @dependabot[bot]!
  • chore(deps): bump codecov/codecov-action from 5.5.2 to 6.0.0 in #2834 - Thanks @dependabot[bot]!
  • chore(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 in #2835 - Thanks @dependabot[bot]!
  • chore(deps): bump slackapi/slack-github-action from 2.1.1 to 3.0.1 in #2832 - Thanks @dependabot[bot]!
Dev
  • chore(deps-dev): bump @types/node from 24.9.1 to 24.10.0 in #2708 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 24.10.0 to 24.10.1 in #2720 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 24.10.1 to 25.0.3 in #2746 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.0.6 to 25.0.9 in #2762 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.0.9 to 25.0.10 in #2769 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.0.10 to 25.2.0 in #2776 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.2.0 to 25.2.2 in #2782 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.2.2 to 25.2.3 in #2792 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.2.3 to 25.3.0 in #2798 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.3.0 to 25.3.3 in #2805 - Thanks @dependabot[bot]!
Examples
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/socket-mode-oauth in #2716 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/deploy-aws-lambda in #2709 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/deploy-heroku in #2710 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/getting-started-typescript in #2711 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/message-metadata in #2712 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/oauth in #2713 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/oauth-express-receiver in #2714 - Thanks @dependabot[bot]!
  • chore(deps): update @slack/bolt requirement from ^4.5.0 to ^4.6.0 in /examples/socket-mode in #2715 - Thanks @dependabot[bot]!
  • chore(deps): bump @koa/router from 14.0.0 to 15.0.0 in /examples/custom-receiver in #2733 - Thanks @dependabot[bot]!
  • chore(deps): bump @koa/router from 15.0.0 to 15.3.1 in /examples/custom-receiver in #2812 - Thanks @dependabot[bot]!
  • chore(deps): bump @koa/router from 15.3.1 to 15.4.0 in /examples/custom-receiver in #2824 - Thanks @dependabot[bot]!
  • chore(deps): bump @slack/oauth from 3.0.4 to 3.0.5 in /examples/custom-receiver in #2823 - Thanks @dependabot[bot]!
  • chore(deps): bump ajv from 8.17.1 to 8.18.0 in /examples/custom-receiver in #2797 - Thanks @dependabot[bot]!
  • chore(deps): bump axios from 1.13.2 to 1.13.5 in /examples/custom-receiver in #2785 - Thanks @dependabot[bot]!
  • chore(deps): bump dotenv from 17.2.3 to 17.2.4 in /examples/custom-receiver in #2784 - Thanks @dependabot[bot]!
  • chore(deps): bump dotenv from 17.2.4 to 17.3.1 in /examples/custom-receiver in #2793 - Thanks @dependabot[bot]!
  • chore(deps): bump dotenv from 17.3.1 to 17.4.0 in /examples/custom-receiver in #2845 - Thanks @dependabot[bot]!
  • chore(deps): bump fastify from 5.6.2 to 5.7.1 in /examples/custom-receiver in #2764 - Thanks @dependabot[bot]!
  • chore(deps): bump fastify from 5.7.1 to 5.7.2 in /examples/custom-receiver in #2770 - Thanks @dependabot[bot]!
  • chore(deps): bump fastify from 5.7.2 to 5.7.4 in /examples/custom-receiver in #2777 - Thanks @dependabot[bot]!
  • chore(deps): bump fastify from 5.7.4 to 5.8.1 in /examples/custom-receiver in #2810 - Thanks @dependabot[bot]!
  • chore(deps): bump fastify from 5.8.1 to 5.8.2 in /examples/custom-receiver in #2821 - Thanks @dependabot[bot]!
  • chore(deps): bump fastify from 5.8.2 to 5.8.3 in /examples/custom-receiver in #2829 - Thanks @dependabot[bot]!
  • chore(deps): bump fastify from 5.8.3 to 5.8.4 in /examples/custom-receiver in #2837 - Thanks @dependabot[bot]!
  • chore(deps): bump koa from 3.1.1 to 3.1.2 in /examples/custom-receiver in #2803 - Thanks @dependabot[bot]!
  • chore(deps): bump koa from 3.1.1 to 3.1.2 in /examples/custom-receiver in #2809 - Thanks @dependabot[bot]!
  • chore(deps): bump koa from 3.1.2 to 3.2.0 in /examples/custom-receiver in #2846 - Thanks @dependabot[bot]!
  • chore(deps): bump path-to-regexp from 8.3.0 to 8.4.0 in /examples/custom-receiver in #2842 - Thanks @dependabot[bot]!
  • chore(deps): bump qs from 6.14.0 to 6.14.1 in /examples/custom-receiver in #2759 - Thanks @dependabot[bot]!
  • chore(deps): bump qs from 6.14.1 to 6.14.2 in /examples/custom-receiver in #2787 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 24.10.4 to 25.0.3 in /examples/custom-receiver in #2748 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.0.6 to 25.0.9 in /examples/custom-receiver in #2763 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.0.9 to 25.0.10 in /examples/custom-receiver in #2771 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.0.10 to 25.2.0 in /examples/custom-receiver in #2778 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.2.0 to 25.2.2 in /examples/custom-receiver in #2783 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.2.2 to 25.2.3 in /examples/custom-receiver in #2794 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.2.3 to 25.3.0 in /examples/custom-receiver in #2799 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 25.3.2 to 25.3.3 in /examples/custom-receiver in #2806 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 22.19.11 to 22.19.13 in /examples/custom-receiver in #2808 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 22.19.13 to 22.19.15 in /examples/custom-receiver in #2811 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 22.19.15 to 24.12.0 in /examples/custom-receiver in #2836 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 24.12.0 to 24.12.2 in /examples/custom-receiver in #2844 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/koa from 3.0.1 to 3.0.2 in /examples/custom-receiver in #2825 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump @types/node from 24.10.4 to 25.0.3 in /examples/getting-started-typescript in #2750 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump typescript from 5.9.3 to 6.0.2 in /examples/getting-started-typescript in #2839 - Thanks @dependabot[bot]!
  • chore(deps-dev): bump typescript from 5.9.3 to 6.0.2 in /examples/custom-receiver in #2838 - Thanks @dependabot[bot]!
  • chore(deps-dev): update @tsconfig/node18 requirement from ^18.2.4 to ^18.2.5 in /examples/getting-started-typescript in #2721 - Thanks @dependabot[bot]!
  • chore(deps-dev): update @tsconfig/node18 requirement from ^18.2.5 to ^18.2.6 in /examples/getting-started-typescript in #2726 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.22.0 to ^4.23.0 in /examples/deploy-aws-lambda in #2717 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.23.0 to ^4.25.0 in /examples/deploy-aws-lambda in #2725 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.25.0 to ^4.27.0 in /examples/deploy-aws-lambda in #2734 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.27.0 to ^4.28.0 in /examples/deploy-aws-lambda in #2741 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.28.0 to ^4.29.0 in /examples/deploy-aws-lambda in #2749 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.30.0 to ^4.31.0 in /examples/deploy-aws-lambda in #2765 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.31.0 to ^4.31.2 in /examples/deploy-aws-lambda in #2779 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.31.2 to ^4.32.0 in /examples/deploy-aws-lambda in #2795 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.32.0 to ^4.33.0 in /examples/deploy-aws-lambda in #2800 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless requirement from ^4.33.0 to ^4.33.3 in /examples/deploy-aws-lambda in #2847 - Thanks @dependabot[bot]!
  • chore(deps-dev): update serverless-offline requirement from ^14.4.0 to ^14.5.0 in /examples/deploy-aws-lambda in #2807 - Thanks @dependabot[bot]!

👋 New Contributors 🎉

Full Changelog: https://github.com/slackapi/bolt-js/compare/@slack/bolt@4.6.0...@slack/bolt@4.7.0
Milestone: https://github.com/slackapi/bolt-js/milestone/61
Package: https://www.npmjs.com/package/@slack/bolt/v/4.7.0

Don't miss a new bolt-js release

NewReleases is sending notifications on new releases.