You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Follow-up turns sent to completed delegated child threads stay queued forever after a T3 restart #42
T3 restarted at about 23:22 UTC on 2026-10-14; it cancelled two running delegated review tasks. Right after it came back I continued two completed delegated child threads with t3_thread_send (mode auto), the documented way to give a finished child a follow-up turn:
Both threads showed status queued, activeRunId: null, pendingRequestCount: 0, for about 2.5 hours.
Nothing else in the project was running; the repository's 4 worker slots were free. The repository was not paused.
Cancelling the queued run (t3_queue_cancel) and resending with t3_thread_send mode auto returned delivery: "started", but the new run (ordinal 3) also stayed queued with startedAt: null.
A fresh delegate_task (with issue) started a new child immediately (status: running).
get_repository_orchestration also reported milestones 6 and 22 as awaiting_approval throughout, with no pending request visible to the orchestrator. Milestone 22 has an eligible unclaimed issue (pingdotgg#494) that never auto-started. This may be the same stuck dispatcher.
Expected
A follow-up turn on a completed child thread starts when capacity is free, as it did before the restart (the same pattern worked repeatedly earlier on 2026-10-14).
Workaround
Cancel the queued run and start a fresh delegate_task whose prompt carries the needed context. This loses the child's conversation context and, for managed issue workers, means a new worktree, so the worker has to cherry-pick the old branch's commit.
Follow-up, 2026-10-15 (on main as f5fce3c, not yet in a build):
Retry leak in the milestone-retry fix (bdce311): reconcile runs about once a minute and gave every rejected milestone start a new attempt id. A start that kept failing (for example a deleted model role, or no available provider for the role) added one rejected receipt per pass, forever. It also broke the existing test "keeps invalid-request on rejected start replay so milestone reconciliation awaits the owner". Fixed in faaeb32: a new attempt waits 1 minute after a rejection, doubling up to a day.
Deleted milestones: ePC-SAFT's plan list still had milestones 23 and 24 after they were deleted on GitHub, so T3 re-read them every minute and showed them as unreadable. Fixed in ec59c62 and f5fce3c: work_through_milestone refuses a milestone that doesn't exist, and reconcile drops a plan once GitHub confirms its milestone is gone (a 404 from the milestone itself, since a 422 on the issue list can also be GitHub's spam guard).
Both were reviewed by GPT-6.1 Sol (two rounds), and each has a test that fails without it.
Activity
tannerpolley commentedon Oct 15, 2026
Follow-up, 2026-10-15 (on
mainas f5fce3c, not yet in a build):work_through_milestonerefuses a milestone that doesn't exist, and reconcile drops a plan once GitHub confirms its milestone is gone (a 404 from the milestone itself, since a 422 on the issue list can also be GitHub's spam guard).Both were reviewed by GPT-6.1 Sol (two rounds), and each has a test that fails without it.