@@ -146,11 +146,16 @@ For Microsoft Teams, use `--adapter teams`. Two Teams steps stay yours because
146146nothing can work around them: granting tenant admin consent, and uploading the
147147app package through ** Apps → Manage your apps → Upload an app** .
148148
149- #### Three Slack details that cost the most time
149+ #### Four Slack details that cost the most time
150150
151151These apply on either path. Follow the CLI's emitted ` nextAction ` rather than
152152remembered Slack steps, and watch for:
153153
154+ - ** Leave Socket Mode off.** Managed delivery never uses it, and a Slack app with
155+ Socket Mode on installs green and delivers nothing to the Request URL — so
156+ nothing reaches Intelligence and nothing reaches your runtime. It is the one
157+ failure here that looks exactly like success. See
158+ [ ` setup.md ` ] ( ./setup.md#leave-socket-mode-off ) .
154159- After creating the app from the link, open ** OAuth & Permissions** and choose
155160 ** Reinstall to Workspace** . Slack applies the manifest's real scopes only on
156161 reinstall.
@@ -320,7 +325,8 @@ agent (Python + LangGraph deepagents)
320325 ├── GitHub MCP (optional, read-only)
321326 ├── PostHog MCP (optional, read-only)
322327 ├── Linear MCP (optional)
323- └── Notion MCP (optional remote server)
328+ ├── Notion MCP (optional remote server)
329+ └── Composio toolkits (optional; shared or per-person accounts)
324330```
325331
326332| You run | CopilotKit Intelligence manages |
@@ -329,16 +335,27 @@ agent (Python + LangGraph deepagents)
329335| The long-running Node Channels runtime | Platform ingress and credentialed delivery |
330336| Deployment, state, and logs | Runtime registration, health, and reconnects |
331337
332- Neither leg is Socket Mode, and neither needs a tunnel or a public URL of your
333- own. Slack reaches Intelligence over HTTPS, authenticated by the signing secret
334- Intelligence holds. Intelligence reaches your runtime over a websocket your
335- process opens outbound, authenticated by ` INTELLIGENCE_API_KEY ` .
338+ Neither of those legs is Socket Mode, and neither needs a tunnel or a public URL
339+ of your own. Slack reaches Intelligence over HTTPS, authenticated by the signing
340+ secret Intelligence holds. Intelligence reaches your runtime over a websocket
341+ your process opens outbound, authenticated by ` INTELLIGENCE_API_KEY ` .
336342
337343There is one canonical runtime host: [ ` server.ts ` ] ( ./server.ts ) .
338344[ ` app/index.ts ` ] ( ./app/index.ts ) composes one ` CopilotKitIntelligence ` , one
339- ` CopilotRuntime ` , and one adapter-free managed Channel. Intelligence owns the
340- Slack and Microsoft Teams adapters, their credentials, and attachments — no
341- platform credential belongs in this repository's environment.
345+ ` CopilotRuntime ` , and one adapter-free managed Channel.
346+ Intelligence owns the Slack and Microsoft Teams adapters, their credentials, and
347+ attachments.
348+
349+ No platform credential belongs here at all. Composio's per-person toolkits need
350+ a connect link to reach one person privately, and the managed adapter delivers
351+ that itself with the SDK pair pinned in [ ` package.json ` ] ( ./package.json ) —
352+ proven end to end on Slack.
353+ Teams has no private message, so a Teams-backed Channel cannot deliver a connect
354+ link and says so rather than posting one in the thread. What per-person toolkits
355+ do need is ` AGENT_AUTH_HEADER ` , a shared secret between the two services, set to
356+ a ** non-empty** value: the agent treats an empty string as unconfigured and
357+ refuses to mint. Leave it unset and nothing else changes.
358+ See [ ` setup.md ` ] ( ./setup.md#composio ) .
342359
343360` @copilotkit/channels ` and ` @copilotkit/runtime ` are pinned for reproducible
344361deploys. [ ` package.json ` ] ( ./package.json ) is the source of truth for both
@@ -361,6 +378,7 @@ knowledge work, and renders UI from model knowledge.
361378| ` GITHUB_PERSONAL_ACCESS_TOKEN ` | Read-only repository, code, PR, and CI search |
362379| ` POSTHOG_PERSONAL_API_KEY ` | PostHog analytics, read-only (use the ** MCP Server** key preset) |
363380| ` LINEAR_API_KEY ` | Hosted Linear MCP |
381+ | ` COMPOSIO_API_KEY ` | Composio toolkits, under one shared team account or under each person's own (per-person accounts are Slack-only and need ` AGENT_AUTH_HEADER ` ; see setup.md) |
364382| ` NOTION_MCP_URL ` + ` NOTION_MCP_AUTH_TOKEN ` | Remote Notion MCP; setting only one disables it |
365383| ` DAYTONA_API_KEY ` + a PAT or GitHub App | Coding subagent: edit in Daytona, then push and publish a draft PR after ` confirm_write ` |
366384
0 commit comments