diff --git a/.storkit/work/1_backlog/401_bug_whatsapp_and_slack_missing_start_command_handler.md b/.storkit/work/1_backlog/401_bug_whatsapp_and_slack_missing_start_command_handler.md index 983e6579..0b09f2c0 100644 --- a/.storkit/work/1_backlog/401_bug_whatsapp_and_slack_missing_start_command_handler.md +++ b/.storkit/work/1_backlog/401_bug_whatsapp_and_slack_missing_start_command_handler.md @@ -10,7 +10,12 @@ The start command has a fallback handler in chat/commands/mod.rs that returns No ## Implementation Note -The fix must be in the shared command dispatch layer (chat/commands/mod.rs), NOT by adding transport-specific handlers. Study how commands like "rebuild" and "status" already work through the shared dispatch — the start handler should return a concrete result from try_handle_command so all transports get it for free. We do not want separate mechanisms per transport per command. +Follow the **rebuild pattern** established in story 402. + +- `extract_start_command` and `handle_start` already exist in `server/src/chat/transport/matrix/start.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::start::extract_start_command` to detect the command, then `crate::chat::transport::matrix::start::handle_start` to execute it +- The fallback handler in `chat/commands/mod.rs` (`handle_start_fallback`) stays as-is — it exists only so `help` lists the command ## How to Reproduce