Skip to content

v4.4.0 - Slack through the Claude connector and a native Calendar permission

Choose a tag to compare

@theyashgupta theyashgupta released this 09 Oct 12:44
ff89fad

Slack in Dispatch used to need a Slack app. You made the app, copied its token into the Vault and hoped your workspace admin allowed it. Many people never got that far. But the same people often had Slack connected in Claude already, through the Claude Slack connector.

Calendar on macOS had a different problem. Dispatch runs as a plain node process, so macOS asked for Calendar access in the name of node. The grant attached to that one node binary. A node upgrade lost it. And a second bug made every read answer "denied", whatever you clicked.

This release reads Slack through the connector you already connected in Claude. It also gives Dispatch its own Calendar permission on macOS, with a card that tells you the state and the next step.

Slack through the Claude connector

Open Settings, Connections, Slack. Under "Read Slack through", choose Claude Slack connector. You need no bot token and no Slack app. The card shows the state of the connector: connected, needs auth or not found. If it is not connected, the card shows the steps to connect Slack in claude.ai.

Dispatch reads Slack in rounds. A round is one headless claude -p call with the Slack connector. It runs every 30 minutes by default, and you can set from 5 to 1,440 minutes. Run now on the card starts a round at once. The card then shows the last round time, the item count and the last error. The first round reads the last 24 hours. Each later round starts 30 minutes before the last good round.

The round is read-only, and the tool list enforces this, not only the prompt:

  • The call allows 5 Slack read tools by name. The model never sees the 13 Slack write tools.
  • The prompt forbids every send, post, reply, reaction, edit, delete, schedule, draft and upload.
  • Dispatch keeps a message only if it appears in a tool result. An invented message creates no item.
  • Output that Dispatch cannot read creates no item. The cursor stays where it was, and the card shows the error.
  • If the connector is not ready, or the model used no Slack tool, the round fails and keeps the cursor. An empty answer never skips your messages.

Dispatch keeps your DMs and the mentions of you in the channels you picked. Each item gets the same id as in token mode, so a change of mode creates no duplicates. In connector mode, Load thread and the channel list also read through the connector, and Dispatch keeps each answer for 10 minutes.

Run now refuses with no model call when a round already runs, when the connector is not connected, or when Slack is off.

Calendar access in Dispatch's own name

On macOS, a small helper app, "Dispatch Calendar", now asks for Calendar access. Dispatch starts it through Launch Services, so macOS names Dispatch Calendar in the prompt and in System Settings, not node. We checked the real prompt on 2026-10-09. The grant stayed after a restart of Dispatch and after a switch to another node version.

The Calendar card shows the permission state and the next step:

  • Allowed: Dispatch reads your calendars.
  • Not asked: press Check access to show the macOS prompt.
  • Denied: Open System Settings goes to Privacy and Security, Calendars. Turn on Dispatch Calendar there.
  • Write only: choose Full Access for Dispatch Calendar in the same place.
  • Restricted: a profile or a parental control blocks access. Dispatch cannot change it.

Only two actions can show the macOS prompt: Check access, and Connect when you turn Calendar on. A background poll never shows a system dialog. Dispatch waits 120 seconds for your answer and 30 seconds for a read. If a saved calendar no longer exists, the card names it.

Known limits

  • The Calendar helper is for macOS only. The iCal URL mode works as before on every platform.
  • The helper reads your calendars and events. It has no command that writes an event.
  • The helper has an ad hoc signature. macOS keys the grant to that signature. A Dispatch release that rebuilds the helper can make macOS ask again.
  • If you click Allow after the 120 second wait, the grant works, but the card shows "No answer" until you press Connect.
  • Check access from a remote browser can show the prompt on the Mac, where nobody sees it.
  • Each Slack round is one billed model call. Our first real round cost $0.094.
  • Rounds run with the Claude account of the Dispatch server. That account must have the Slack connector connected. Any other account reads "not found".
  • A group DM that you did not pick as a channel is dropped.
  • In connector mode, the "Synced" time in the sidebar moves on each token poll, although that poll reads nothing.
  • The Swift helper has no automated tests. Our Linux CI does not compile it. The publish job on macOS stops if the helper is missing.

Underneath

  • Dispatch updates handlebars from 4.7.9 to 4.7.10 through an override, for a critical advisory. Only the lint plugin uses handlebars, so nothing changes at runtime.
  • The Publish job now runs on a macOS runner. It builds the Calendar helper for Apple silicon and Intel, and it stops if the helper binary is missing. The helper ships inside the npm package.
  • npm run build builds the helper on a Mac with swiftc. It skips the helper on other platforms or without swiftc, so a contributor checkout on Linux still builds and tests.

Upgrade notes

  • A Slack token setup keeps working with no change. With no mode saved, Dispatch uses token mode when the Vault holds a Slack token, and connector mode when it does not.
  • Your old Calendar grant belongs to node, not to Dispatch Calendar. After the upgrade, the Calendar card can show Not asked. Press Check access once, and macOS asks again in Dispatch Calendar's name.
  • No change to board.db and no schema change. No migration runs.
  • Two new optional settings: sources.slack.mode (token or mcp) and sources.slack.mcpIntervalMinutes.

See it

dispatch-v4.4.0-slack-connector.mp4

Dispatch v4.4.0: in Settings, Connections, the Slack card reads Slack through the Claude Slack connector, Run now starts a round, the card shows the round result, the Slack page lists the new messages, then the Calendar card shows its permission state

Higher-quality video with narration: dispatch-v4.4.0-slack-connector.mp4

Full changelog: v4.3.0...v4.4.0

Requires Node ≥ 22.22, tmux, ttyd, git, and the Claude Code CLI. Setup is in the README.