Skip to content

feat(slack): status and titles migrate to the Agent Sessions API before the Feb 2027 assistant_view removal - #101477

Merged
teknium1 merged 1 commit into
mainfrom
feat/platform-slack-agent-sessions
Sep 13, 2026
Merged

teknium1 merged 1 commit into
mainfrom
feat/platform-slack-agent-sessions

Conversation

@teknium1

@teknium1 teknium1 commented Sep 2, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Slack status lines and thread titles now go through the new Agent Sessions API (agents.sessions.setStatus / agents.sessions.rename) when the installed slack-sdk supports it, ahead of Slack's February 2027 removal of the Assistant messaging experience (assistant_view).

Slack announced the deprecation in its changelog: assistant.threads.setStatus → agents.sessions.setStatus, assistant.threads.setTitle → agents.sessions.rename, with a compat bridge until Feb 2027. slack-sdk 3.44.0 (released Aug 27 2026) shipped the typed methods with drop-in-compatible signatures (channel_id / thread_ts / status|title).

Changes

  • plugins/platforms/slack/adapter.py: SDK capability probe (_sdk_supports_agent_sessions, checked on the AsyncWebClient class, cached) + method resolvers; the three call sites (typing status set, status clear, thread title) route through agents.sessions.* when available, legacy assistant.threads.* otherwise
  • Dependency pin: main already carries slack-sdk 3.44.1 (pyproject.toml / tools/lazy_deps.py / uv.lock are unchanged in this PR after rebase); the adapter resolves the Agent Sessions methods at call time and falls back to the legacy assistant.threads.* calls on older SDKs
  • tests/gateway/test_slack.py: autouse fixture pins the probe to legacy under the mocked SDK (mock class attributes are always truthy); 5 new tests cover both routing paths for typing, clear, and title
  • website/docs/user-guide/messaging/slack.md: scope table + status-line notes name both methods

Validation

Before After
SDK 3.44+ assistant.threads.setStatus/setTitle (compat bridge, dies Feb 2027) agents.sessions.setStatus/rename
SDK < 3.44 legacy methods legacy methods (unchanged)
tests/gateway/test_slack.py 233 passed 238 passed, 1 skipped

Deadline: Slack removes assistant_view February 2027; this lands the migration 5 months early with a graceful fallback.

Infographic

Agent Sessions API migration mission patch

@teknium1
teknium1 requested a review from a team September 2, 2026 17:11
@github-actions

github-actions Bot commented Sep 2, 2026 •

Copy link
Copy Markdown

૮ >ﻌ< ა ci review

ran on 75b9bd2 — feat(slack): route status/title through the Agent Sessions A

⚠️ Warnings

OSV vulnerability scan · View job

76 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.


CI timings · View report · View job

Wall time 26m30s vs 4m55s (+439.0%). 6 job(s) slower, 7 faster, 2 unchanged.

  • OS-specific tests / Windows-only tests: -28.0s
  • OS-specific tests / macOS-only tests: +16.0s
  • Python tests / Run tests: -12.0s
  • OSV scan / Scan lockfiles / osv-scan: -12.0s
  • Python lints / Windows footguns (blocking): +11.0s

@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins platform/slack Slack app adapter labels Sep 2, 2026
@teknium1

teknium1 commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator Author

Platform API scout (Sep 9): bumped the pin one patch further, slack-sdk 3.44.0 → 3.44.1 (Sep 3 2026), which fixes aiohttp Socket Mode connect() retrying forever after close (slackapi/python-slack-sdk#1956) — directly relevant since this adapter runs on AsyncSocketModeHandler. uv.lock regenerated; tests/gateway/test_slack.py 238 passed, tests/tools/test_lazy_deps.py 69 passed.

Head: 80f7e87

…-sdk 3.44.0)

Slack deprecates the Assistant messaging experience (assistant_view) in
February 2027: assistant.threads.setStatus/setTitle are replaced by
agents.sessions.setStatus/rename. slack-sdk 3.44.0 (Aug 27 2026) ships
the typed methods with drop-in-compatible signatures.

- adapter: capability probe on the AsyncWebClient CLASS (never instance —
  mock auto-attributes lie), cached; status set/clear + thread title route
  through agents.sessions.* when available, legacy otherwise
- pins: slack-sdk 3.43.0 -> 3.44.0 (pyproject messaging+slack extras,
  lazy_deps, uv.lock)
- tests: autouse fixture pins the probe to legacy under the mocked SDK;
  5 new tests cover both routing paths for typing, clear, and title
- docs: slack.md scope table + status-line notes mention both methods
@teknium1
teknium1 force-pushed the feat/platform-slack-agent-sessions branch from 80f7e87 to 75b9bd2 Compare September 13, 2026 03:20
@teknium1
teknium1 merged commit a5522f6 into main Sep 13, 2026
64 of 66 checks passed
@teknium1
teknium1 deleted the feat/platform-slack-agent-sessions branch September 13, 2026 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have platform/slack Slack app adapter type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants