feat(joke-bot): conversational test bot + gate Slack wakes on @mention
joke-bot (new)
A minimal conversational agent to confirm the conversational + multi-turn-threading path works in isolation (no provider data / VFS) and to serve as the harness test vehicle (claude/codex/opencode). DM via relay or @AgentRelay joke-bot … in Slack → harness reply in-thread. Daily joke-of-the-day on a schedule.
linear-slack (fix: gate wake on @mention)
linear-slack woke on every message.created in its board channel, provisioning a Daytona box + running the harness, then self-filtered — a sandbox per message. The handler's skip-guards run after provisioning, so only a trigger-level gate saves the box.
Added match: '@mention' so the cloud only provisions when the agent is actually addressed.
Why match (not sandbox: false)
Both are harness agents (ctx.harness.run). sandbox: false is not an option for them — with the lightweight path the harness CLI credentials aren't mounted (EMPTY_HARNESS_CLI_CREDENTIAL_MOUNT), so a real harness run can't authenticate. The wake gate (match) is the correct lever; sandbox: true stays.
Companion fixes: customer-health (separate repo PR) and the creating-cloud-persona skill doc (corrects the sandbox:false table + documents the sandbox-per-message trap).
🤖 Generated with Claude Code
Summary by cubic
Adds a minimal conversational joke-bot for multi-turn chat that replies in Slack via DM or @mention. Also gates linear-slack wakes behind @mention to avoid provisioning a sandbox on every channel message.
-
New Features
joke-bot: conversational bot with per-thread memory; replies in Slack threads (DM or@mention).- Daily joke-of-the-day cron to
SLACK_CHANNEL. - Fixture for local testing:
joke-bot/fixtures/inbox-joke.json.
-
Bug Fixes
joke-bot: switch reply generation toctx.llm.complete(subscription-backed) to fix harness timeouts; keepsandbox: trueanduseSubscription: truefor Slack writeback.linear-slack: addmatch: '@mention'to themessage.createdtrigger so the cloud provisions only when addressed.