The crash-safety epic lands: a Claude Code Slack session now survives a process crash, and no reply is silently lost — across single-message, chunked, streaming, and file-upload replies.
Highlights
Crash-safety & loss-proof delivery (epic ccsc-o7x)
- Lease-fenced sessions — monotonic-token + heartbeat lease so exactly one process owns a turn; a superseded owner is quarantined (no split-brain).
- Boot-time recovery sweep — requeues work whose lease lapsed, quarantines anything it can't prove safe (fail-closed), both journaled.
- Transactional reply outbox — replies are recorded as durable obligations before the send, drained by a leased poller that retries transient Slack errors with backoff and dead-letters permanent ones (always recording why).
- Exactly-once delivery via idempotency keys — a redelivery after a lost ack never double-posts. Live for single, chunked, streaming, and file replies. File uploads re-run the outbound exfil guard on the exact bytes sent (TOCTOU-safe) and dedup within the obligation's delivery window.
Usability & multi-agent
- Mention-to-engage channels — mention the bot once in a thread, then converse without re-mentioning (human-only; peer agents must mention each time).
- Multi-agent hardening — channel-wide circuit breaker for 3+-bot rings, optional per-user session isolation, global
maxConcurrentSessionsbackpressure, and read-only!agents/!mute-status/!rate-limitoperator verbs.
Project
- Greptile AI-reviewer config (
.greptile/);ROADMAP.mdwith explicit Non-Goals.
Operator knobs: SLACK_SESSION_LEASE_TTL_MS, SLACK_DELIVERY_POLL_MS, SLACK_MAX_CONCURRENT_SESSIONS.
Full detail: CHANGELOG.md.