sark
Mention a bot in Slack; it forks a cloud sandbox for that thread and runs a coding agent inside it.
One Worker, a Durable Object per thread, thread-scoped MCP tokens, and an allowlist that fails closed.
Requirements, .dev.vars, and the core loop: trigger a thread, watch it work, archive its sandbox.
Create the app from the manifest, set the two secrets, and opt channels into a fail-closed allowlist.
One Worker, a Durable Object per thread, a forked sandbox, and a token that can address exactly one of them.
Six routes behind API_TOKEN that drive a thread with no Slack app at all.
The five tools the agent gets, and why none of them takes a channel.
Every var and secret in wrangler.jsonc, with what happens if you leave it unset.
drive, smoke, and dev-vars: the three scripts you actually run.
Six actions that drive a thread — stop, re-run, escalate, fork, watch, archive — as contextual buttons or reactions.
Batched turns, per-message attribution, and delimiter neutralization.
What sark is not, and why.
End of line.