Skip to content

feat(managed_agents): Slack stateless webhook bridge template#614

Merged
rlancemartin merged 1 commit into
mainfrom
lance/managed-agents-slack
May 18, 2026
Merged

feat(managed_agents): Slack stateless webhook bridge template#614
rlancemartin merged 1 commit into
mainfrom
lance/managed-agents-slack

Conversation

@rlancemartin

Copy link
Copy Markdown
Contributor

Minimal TypeScript/Bun template connecting Slack's Events API to Claude Managed Agents using CMA outbound webhooks — no held SSE streams, no session-map database.

Slack @mention ─▶ /slack/events ─▶ sessions.create({metadata}) ─▶ 200
                                           │
                      Claude runs to idle on Anthropic infra
                                           │
/cma-webhook ◀── session.status_idled ◀────┘
      └─▶ sessions.retrieve → read metadata → chat.postMessage

The CMA session metadata (slack_channel, slack_thread_ts) is the entire routing state. Bridge is stateless, restart-safe, horizontally scalable.

managed_agents/slack/

  • README.md — diagram + bun install && claude quickstart
  • CLAUDE.md — invokes /claude-api, reads skill.md, drives guided setup + extensions menu
  • skill.md — walkthrough, gotchas (developer sandbox, scope-vs-subscription, xoxb vs xapp, workspace fan-out, retrieve-then-filter), debugging
  • src/ + setup/ — ~270 LOC, typechecks on @anthropic-ai/sdk@^0.95.1

Proven end-to-end against a live Slack sandbox.

Sibling Linear template: #607

@github-actions

github-actions Bot commented May 10, 2026

Copy link
Copy Markdown

Stateless TypeScript/Bun bridge connecting Slack's Events API to
Managed Agents via CMA outbound webhooks — no held SSE streams, no
session-map DB (session.metadata carries channel + thread_ts).

- setup/create-agent.ts: one-time agent + environment (claude-opus-4-7)
- src/slack-events.ts: v0 HMAC verify, url_verification, fire-and-forget
  kickoff (acks Slack within 3s)
- src/agent.ts: sessions.create with {slack_channel, slack_thread_ts}
- src/cma-webhook.ts: beta.webhooks.unwrap -> retrieve-then-filter ->
  chat.postMessage in-thread
- README: diagram + 'bun install && claude' quickstart
- CLAUDE.md: invoke /claude-api, read skill.md, offer extensions menu
- skill.md: walkthrough, gotchas (sandbox, scope-vs-subscription,
  xoxb-vs-xapp, workspace fan-out, retrieve-then-filter), debugging

Uses @anthropic-ai/sdk ^0.95.1 (beta.webhooks.unwrap).
@rlancemartin rlancemartin force-pushed the lance/managed-agents-slack branch from 16d734d to 103cc79 Compare May 13, 2026 15:47
@rlancemartin rlancemartin marked this pull request as ready for review May 13, 2026 15:59
@rlancemartin rlancemartin requested a review from markn-ant May 13, 2026 17:40

@markn-ant markn-ant left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@rlancemartin rlancemartin merged commit a102bbe into main May 18, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants