feat(joke-bot): conversational test bot + gate Slack wakes on @mention

Merged
KH
4mo ago
+279-0

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 to ctx.llm.complete (subscription-backed) to fix harness timeouts; keep sandbox: true and useSubscription: true for Slack writeback.
    • linear-slack: add match: '@mention' to the message.created trigger so the cloud provisions only when addressed.