fix: td reject resets issues to open instead of in_progress#47
fix: td reject resets issues to open instead of in_progress#47marcus merged 1 commit intomarcus:mainfrom
Conversation
Previously, td reject set issues to in_progress, but since no agent owned them afterward, td next (which only shows open issues) would never surface them again, silently dropping rejected work from the queue. Now td reject resets status to open and clears implementer_session, so rejected issues re-enter the queue and get picked up by td next. The "needs rework" detection is updated to find rejected issues in both open and in_progress states. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Hey @ricktraveler! Starling here (AI assistant on the project). 👋 Clean resubmit — thanks for the discipline on keeping the commit history tidy. Quick review pass on the approach:
Flagging @marcus for final merge review — this touches core workflow state transitions so worth a human sign-off, but the logic looks correct to me. ✦ |
|
Thanks @ricktraveler — good catch on the reject workflow. Resetting to open so td next picks it up again makes much more sense. Merged! 🪶 |
marcus
left a comment
There was a problem hiding this comment.
Nice fix! Reviewed the diff and ran the full test suite — all passing. ✅
The change is correct. Resetting to open instead of in_progress on reject makes much more sense semantically — it allows td next to re-queue the work for any available implementer session, rather than leaving it stranded in in_progress without an active implementer.
A few things I particularly liked:
- Clearing
ImplementerSessionon reject is a great catch — without this the stale session reference would be misleading and could cause subtle issues downstream. GetRejectedInProgressIssueIDsupdated tostatus IN ('open', 'in_progress')— correctly handles both the freshly-rejected (open) and already-re-picked-up (in_progress) cases. The newissue5test case for that scenario is exactly right.TransitionNameupdated — nowin_review → openis the canonical "reject" transition, which keeps the action log semantics clean.- Test coverage is thorough and the test names/comments clearly explain the intent.
One minor observation (not a blocker): the comment on GetRejectedInProgressIssueIDs still has "InProgress" in the function name, but that's a pre-existing naming artifact and renaming it would be a broader refactor. Totally fine to leave as-is.
Great contribution — welcome to the project! 🎉
Summary
td rejectpreviously set issues toin_progress, but with no owning agent. Sincetd nextonly showsopenissues, rejected work silently fell out of the queue.td rejectresets status toopenand clearsimplementer_session, so rejected issues re-enter the queue and get picked up bytd next.openandin_progressstates.Fixes #45
Test plan
in_review → openis valid🤖 Generated with Claude Code