feat: add unblock command and MCP tool to reset blocked stories

- Add `unblock` bot command (chat + web UI slash command) that clears the
  `blocked` flag and resets `retry_count` to 0 in story front matter
- Works across all pipeline stages (1_backlog through 6_archived)
- Returns confirmation with story name and ID, or clear error if story
  is not found or not blocked
- Expose `unblock_story` MCP tool for programmatic use by agents
- Make `chat::commands::unblock` module pub(crate) so story_tools can
  call `unblock_by_number`
- Add 8 unit tests covering registration, validation, core logic, and
  edge cases (not-found, not-blocked, any stage, story ID in response)
- Update MCP tools list test: 49 → 50 tools
This commit is contained in:
dave
2026-03-28 09:01:09 +00:00
parent 7652bbba9c
commit 6c6bc35785
4 changed files with 336 additions and 1 deletions
+6
View File
@@ -17,6 +17,7 @@ mod show;
mod status;
mod timer;
mod triage;
pub(crate) mod unblock;
mod unreleased;
use crate::agents::AgentPool;
@@ -166,6 +167,11 @@ pub fn commands() -> &'static [BotCommand] {
description: "Schedule a deferred agent start: `timer <story_id> <HH:MM>`, `timer list`, `timer cancel <story_id>`",
handler: timer::handle_timer,
},
BotCommand {
name: "unblock",
description: "Reset a blocked story: `unblock <number>` (clears blocked flag and resets retry count)",
handler: unblock::handle_unblock,
},
BotCommand {
name: "unreleased",
description: "Show stories merged to master since the last release tag",