From 081b33a8a60ded67d5e1efcd7ea13eb307fa5d7d Mon Sep 17 00:00:00 2001 From: dave Date: Sat, 28 Mar 2026 09:02:23 +0000 Subject: [PATCH] storkit: done 421_story_timer_command_for_deferred_agent_start --- ..._timer_command_for_deferred_agent_start.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .storkit/work/5_done/421_story_timer_command_for_deferred_agent_start.md diff --git a/.storkit/work/5_done/421_story_timer_command_for_deferred_agent_start.md b/.storkit/work/5_done/421_story_timer_command_for_deferred_agent_start.md new file mode 100644 index 00000000..b6281a34 --- /dev/null +++ b/.storkit/work/5_done/421_story_timer_command_for_deferred_agent_start.md @@ -0,0 +1,24 @@ +--- +name: "Timer command for deferred agent start" +--- + +# Story 421: Timer command for deferred agent start + +## User Story + +As a ..., I want ..., so that ... + +## Acceptance Criteria + +- [ ] Bot command `timer ` schedules a one-shot deferred start for the given story at the next occurrence of that time (server-local timezone) +- [ ] Bot command `timer list` shows all pending timers with story ID and scheduled time +- [ ] Bot command `timer cancel ` removes the pending timer for that story +- [ ] Timers are persisted to .storkit/timers.json so they survive server restarts +- [ ] A 30s tick loop (tokio task, same pattern as watchdog) checks for due timers and calls start_agent when triggered +- [ ] When a timer fires, the story must already be in current — timer does not move stories between stages +- [ ] Fired timers are removed after execution (one-shot, not recurring) +- [ ] Multiple timers for the same time are supported and respect agent slot contention via auto-assign + +## Out of Scope + +- TBD