What's Changed
Bring magic to a conversation with say_stream for streaming messages and show loading status with set_status. Now available for app.event and app.message listeners:
@app.event("app_mention")
def handle_mention(say_stream, set_status):
set_status(
status="Thinking...",
loading_messages=["Waking up...", "Loading a witty response..."],
)
stream = say_stream(buffer_size=100)
stream.append(markdown_text="Thinking... :thinking_face:\n\n")
stream.append(markdown_text="Here is my response!")
stream.stop()🚀 Enhancements
- feat: add support for say_stream utility in #1462 - Thanks @WilliamBergamin!
- feat: surface the set_status argument to listeners if required event details are available in #1465 - Thanks @WilliamBergamin!
- feat: add agent set status to BoltAgent in #1441 - Thanks @srtaalej!
- feat(agent): add set_suggested_prompts helper in #1442 - Thanks @zimeg!
- feat(agent): default to message 'ts' when no 'thread_ts' is available for 'agent.chat_stream(...)' in #1444 - Thanks @zimeg!
- Add 'agent: BoltAgent' listener argument in #1437 - Thanks @mwbrooks!
🐛 Bug Fixes
- fix: pin setuptools to maintain support for pyramid adapter in #1436 - Thanks @WilliamBergamin!
- fix(agent): match channel_id api argument for set_status and set_suggested_prompts in #1446 - Thanks @zimeg!
- fix(assistant): get_thread_context calls store.find() for user_message events in #1453 - Thanks @srtaalej!
- fix(assistant): improve middleware dispatch and inject kwargs in middleware in #1456 - Thanks @WilliamBergamin!
- fix: improve the robustness of the payload extract logic in #1464 - Thanks @WilliamBergamin!
- fix: Remove 'agent: BoltAgent' listener argument in #1466 - Thanks @WilliamBergamin!
- refactor: rename AttachingAgentKwargs middleware to AttachingConversationKwargs in #1473 - Thanks @WilliamBergamin!
📚 Documentation
- docs: updates old links throughout in #1409 - Thanks @lukegalbraithrussell!
- docs: updates outmoded links and standardizes markdown links in #1410 - Thanks @lukegalbraithrussell!
- Docs: Add headings so copy as markdown button shows up in #1443 - Thanks @haleychaas!
🧰 Maintenance
- fix: update the release instructions in #1400 - Thanks @WilliamBergamin!
- chore: improve testing around assistant utilities in #1461 - Thanks @WilliamBergamin!
- chore: replace sleep-based polling with Event synchronization in tests in #1467 - Thanks @WilliamBergamin!
- chore: fix test warnings across test suite in #1468 - Thanks @WilliamBergamin!
- chore: improve type checking behavior in #1470 - Thanks @WilliamBergamin!
- chore: remove experiment around say_stream in #1471 - Thanks @WilliamBergamin!
- chore: format project to latest formatter version in #1460 - Thanks @WilliamBergamin!
- chore: update the ci pipeline to match other patterns in #1422 - Thanks @WilliamBergamin!
- ci(deps): auto-approve / auto-merge dependencies from dependabot in #1434 - Thanks @mwbrooks!
- chore(claude): add claude code support for maintainers in #1445 - Thanks @zimeg!
- chore: improve AGENTS.md in #1458 - Thanks @WilliamBergamin!
🎁 Dependencies
Dev
- chore(deps): update pytest-asyncio requirement from <1 to <2 in #1329 - Thanks @dependabot[bot]!
- chore(deps): update cheroot requirement from <11 to <12 in #1380 - Thanks @dependabot[bot]!
- chore(deps): bump mypy from 1.18.2 to 1.19.0 in #1403 - Thanks @dependabot[bot]!
- chore(deps): bump mypy from 1.19.0 to 1.19.1 in #1418 - Thanks @dependabot[bot]!
- chore(deps): bump black from 25.1.0 to 26.3.1 in /requirements in #1457 - Thanks @dependabot[bot]!
CI
- chore(deps): bump actions/checkout from 5.0.0 to 6.0.0 in #1404 - Thanks @dependabot[bot]!
- chore(deps): bump actions/setup-python from 6.0.0 to 6.1.0 in #1405 - Thanks @dependabot[bot]!
- chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 in #1415 - Thanks @dependabot[bot]!
- chore(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 in #1416 - Thanks @dependabot[bot]!
- chore(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 in #1417 - Thanks @dependabot[bot]!
- chore(deps): bump actions/stale from 10.1.0 to 10.1.1 in #1419 - Thanks @dependabot[bot]!
- chore(deps): bump actions/checkout from 6.0.0 to 6.0.1 in #1420 - Thanks @dependabot[bot]!
- chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 in #1424 - Thanks @dependabot[bot]!
- chore(deps): bump actions/setup-python from 6.1.0 to 6.2.0 in #1425 - Thanks @dependabot[bot]!
- chore(deps): bump actions/stale from 10.1.1 to 10.2.0 in #1448 - Thanks @dependabot[bot]!
- chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 in #1449 - Thanks @dependabot[bot]!
- chore(deps): bump actions/download-artifact from 7.0.0 to 8.0.0 in #1450 - Thanks @dependabot[bot]!
- chore(deps): bump actions/download-artifact from 8.0.0 to 8.0.1 in #1474 - Thanks @dependabot[bot]!
- chore(deps): bump codecov/codecov-action from 5.5.2 to 6.0.0 in #1475 - Thanks @dependabot[bot]!
- chore(deps): bump slackapi/slack-github-action from 2.1.1 to 3.0.1 in #1476 - Thanks @dependabot[bot]!
- chore(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 in #1477 - Thanks @dependabot[bot]!
👋 New Contributors 🎉
Full Changelog: v1.27.0...v1.28.0
Milestone: https://github.com/slackapi/bolt-python/milestone/96
Package: https://pypi.org/project/slack-bolt/1.28.0/