-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Summary
When an issue is rejected via td reject, it moves to in_progress status. However, the agent session that originally worked on it has ended. No agent is actively working on the issue, yet it's stuck in a state that implies one is. Since td next only returns open issues, the rejected issue never re-enters the work queue and is effectively orphaned.
The Problem
td is designed for agentic AI workflows where agents pick up work via td next. The lifecycle breaks down on rejection:
- Agent picks up issue via
td next→ starts work → submits for review - Reviewer runs
td reject <id> -m "reason" - Issue moves to
in_progress - The original agent session/context window no longer exists
- No agent will ever pick this issue up again —
td nextonly showsopenissues td query "rework()"knows about it, but no agent is told to run that
The in_progress status means "an agent is actively working on this." After rejection, that's not true — the session that implemented it is gone. The issue is orphaned.
Steps to Reproduce
td create "Example task" --type task --priority P1td start <id>(begin work in an agent session)td review <id>(submit for review)td reject <id> -m "Doesn't meet acceptance criteria"td next→ rejected issue does not appear- Issue sits in
in_progressindefinitely with no agent working on it
Expected Behavior
Rejected issues should re-enter the work queue so that td next picks them up. The most natural fix would be for td reject to set the status back to open rather than in_progress, since no agent owns the issue after rejection.
Alternatively, td next could be made aware of rejected/rework issues and surface them (potentially with higher priority, since they already have context and rejection feedback).
Why This Matters
The core value proposition of td is that agents can autonomously work through a queue of tasks across context windows. If rejected issues silently fall out of that queue, the feedback loop is broken — a reviewer rejects work expecting it to be reattempted, but nothing happens unless a human manually intervenes. This defeats the purpose of the agentic workflow.