Slack Events
Chief uses Slack Socket Mode (a persistent WebSocket) rather than HTTP webhooks. Events flow from Slack → Chief’s agent host (a DigitalOcean droplet) over WSS.
Why Socket Mode?
- No public webhook URL to expose, harden, and rotate.
- Slack handles backpressure — events queue server-side if Chief is slow.
- Lower latency for typical event volumes.
- Simpler ops (no inbound firewall rules).
Subscribed Events
Chief listens to:
| Event | What Chief does |
|---|---|
message.channels | If the message @-mentions Chief, route to agent. Otherwise ignore. |
message.groups | Same, for private channels. |
message.im | Always route to agent (DMs are addressed to Chief by definition). |
app_mention | Same payload as message.* with @chief; Chief uses this as a fallback. |
app_home_opened | Render the App Home tab with quick links. |
reaction_added, reaction_removed | Capture as feedback signal (👍 / 👎 on Chief messages). |
file_shared | If shared in a thread Chief is in, attach to the agent’s context. |
member_joined_channel | If Chief was added, send a brief intro message. |
team_join | Greet new workspace members in DM (configurable). |
app_uninstalled | Tear down the tenant’s Slack credentials gracefully. |
Slash Commands
Slash commands are dispatched separately:
| Command | Handler |
|---|---|
/chief-status | Lists in-flight tasks for this user |
/chief-stop | Cancels the current task |
/chief-help | Quick-reference Slack message |
/chief-knowledge | Opens a modal with the user’s saved memories |
/chief-learn | Opens a modal to manually save a memory |
/chief-crons | Lists the user’s active cron jobs |
Event Latency
Typical end-to-end latency from your Slack message to Chief’s first reaction (👀): 150–400 ms. Beyond that, latency depends on the work itself — quick Q&A returns in seconds; multi-tool tasks take longer.
Privacy: What Chief Reads
Chief reads only:
- DMs to Chief
- @-mentions of Chief in any channel where it’s invited
- Threads Chief is already participating in (to maintain context)
- Files attached to messages Chief is reading
Chief does not read:
- Channels Chief isn’t invited to
- DMs between other users
- Any content from before Chief was installed
This is enforced by the Slack OAuth scopes Chief requests. See Slack Install.
Event Volume Limits
If Chief sees a sudden burst of events that look like a runaway loop (e.g., one bot replying to another in an infinite chain), the event handler quietly drops events from that thread for 60 seconds and DMs admins.