From eef9669c95643941a362199bcf8b124e77ef0f28 Mon Sep 17 00:00:00 2001 From: dave Date: Fri, 27 Mar 2026 15:09:53 +0000 Subject: [PATCH] storkit: done 404_bug_whatsapp_and_slack_missing_assign_command_handler --- ...nd_slack_missing_assign_command_handler.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .storkit/work/5_done/404_bug_whatsapp_and_slack_missing_assign_command_handler.md diff --git a/.storkit/work/5_done/404_bug_whatsapp_and_slack_missing_assign_command_handler.md b/.storkit/work/5_done/404_bug_whatsapp_and_slack_missing_assign_command_handler.md new file mode 100644 index 00000000..d4f65d41 --- /dev/null +++ b/.storkit/work/5_done/404_bug_whatsapp_and_slack_missing_assign_command_handler.md @@ -0,0 +1,36 @@ +--- +name: "WhatsApp and Slack missing assign command handler" +--- + +# Bug 404: WhatsApp and Slack missing assign command handler + +## Description + +The assign command has a fallback handler in chat/commands/mod.rs that returns None. Only Matrix has pre-dispatch handling for this command. On WhatsApp and Slack, the command falls through to the LLM path. + +## Implementation Note + +Follow the **rebuild pattern** established in story 402. + +- `extract_assign_command` and `handle_assign` already exist in `server/src/chat/transport/matrix/assign.rs` +- Add an async intercept in `server/src/chat/transport/whatsapp.rs` (see rebuild intercept ~line 1107) and `server/src/chat/transport/slack.rs` (see rebuild intercept ~line 845) +- Call `crate::chat::transport::matrix::assign::extract_assign_command` to detect the command, then `crate::chat::transport::matrix::assign::handle_assign` to execute it +- The fallback handler in `chat/commands/mod.rs` (`handle_assign_fallback` — note: the registry entry for `assign` currently calls `assign::handle_assign` synchronously; verify this doesn't conflict) stays as-is for `help` listing +- The fallback in `chat/commands/assign.rs` may need to return `None` instead of a real response once the async path handles it + +## How to Reproduce + +1. Configure bot with transport = "whatsapp" or "slack"\n2. Send "assign " to the bot\n3. Check server logs + +## Actual Result + +Command falls through to LLM instead of assigning the agent. + +## Expected Result + +The bot assigns the specified agent to the story and replies with confirmation. + +## Acceptance Criteria + +- [ ] WhatsApp transport handles assign command: assigns agent and replies with confirmation +- [ ] Slack transport handles assign command: assigns agent and replies with confirmation