This release makes the Slack bridge dramatically more capable and resilient: richer message rendering, survival across restarts, the ability to stop runs mid-flight, and two-way file attachments.
✨ What's new
📊 Markdown rendering in Slack (#25)
Agent replies and questions now render as real Markdown in Slack using Slack's native markdown block — tables, headings, and code render properly instead of as raw text.
- Structure-aware chunking for long messages: code fences are closed at a chunk boundary and reopened with the original language tag on the next message.
- Tables re-emit their header + separator row on every continuation chunk, so each piece renders as a complete table.
- Plain-text fallback preserved for push-notification previews.
♻️ Restart resilience (#26)
The bridge now survives a daemon restart or crash:
- Threads resume their real Claude session instead of falling back to replaying thread history.
- Interrupted runs post a "bridge restarted" notice so you're never left wondering.
- Orphaned subprocesses from before the restart are cleaned up on boot.
🛑 Stop a running agent via reaction (#27)
React with 🛑 to the message that started a run to stop it. The bridge kills the run (and everything it spawned), posts ⏹️ Stopped., and drops the partial reply.
Action required — add bot scopes
reactions:read,reactions:writeand subscribe to thereaction_addedevent, then reinstall the Slack app.
📎 File attachments in both directions (#28)
- Inbound: upload images/docs in Slack for the agent to see.
- Outbound: the agent sends files back by writing
@@attach <path>on its own line.
Action required — add bot scopes
files:read,files:write, then reinstall the Slack app.
⚠️ Upgrade notes
Features #27 and #28 require new Slack app scopes/events and a reinstall of the Slack app:
| Feature | Bot scopes | Events |
|---|---|---|
| Stop reaction (#27) | reactions:read, reactions:write |
reaction_added |
| File attachments (#28) | files:read, files:write |
— |
📦 Full changelog
feat: render Slack messages as Markdown; chunk-safe tables and code blocks (#25)feat: restart resilience — persist sessions, resume, crash recovery (#26)feat: stop a running agent via a stop-sign reaction (#27)feat: file attachments in both directions (#28)
🙏 Thank you
A huge thank you to @FishTheOriginal, who authored all four features in this release (#25, #26, #27, #28). This entire version is the result of his work — thank you for these excellent contributions to the project! 🎉
Full Changelog: v3.0.0...v3.1.0