Repository navigation
Conversation
…eld queues after an opted-in restart
Owner
Author
|
Not going upstream as a PR. The main gap (Codex/Claude sessions left 'ready' were never continued) was fixed upstream in pingdotgg#14182. Releasing held queues conflicts with the deliberate 'hold queued runs after restart' design, so it needs an Ideas discussion with maintainer approval first. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
Pin the restart recovery fix (branch
fix/restart-run-recovery). V2 only. Forkmaincarries release configuration, not V2 source, so this PR only appends the manifest entry. The source commit is on the branch named below. Incident:research/t3-v2-server-update-outage-2026-09-30.md. Pins append at the end of.github/downstream-nightly-v2.json, so the PRs in this series conflict textually; whichever merges later rebases and keeps every entry. CI on this fork has been stuck, so verification is local.Why
The 2026-09-30 restarts cancelled about 19 live runs. With
continueThreadsAfterServerUpdateon (it was), recovery only continued a run whose saved provider state passed a strict check, and skipped every thread with queued work behind the interrupted run. About 13 threads needed a manual "continue", and four held queues sat for hours.Now, with the opt-in, startup also continues the interrupted run when that check fails (the same "Continue where you left off" a manual resume sends), and when queued work follows the cancelled run, delivery releases the held queue through
queue.resumeinstead of prompting. Runs waiting on the user, including running runs with an unanswered question, are left alone. Opted-out environments are unchanged. Each queue release has its own command id so a replay after another restart does not hit the old receipt.Not built: a one-click "resume all" for opted-out environments. Clients already show a held queue with a resume action; a cross-thread action would need a new command and UI on web and mobile.
Verification
RestartContinuation.test.tsandProviderRuntimeRecoveryService*.test.ts: 25 passed, with new cases for the relaxed selection, held-queue release, question-blocked runs, and the recovery commit carrying the continue effect.Implementation: Claude Sonnet 5.5 through T3 Code. Cross-vendor review: GPT-6 Astra (high) via
codex execread-only, because T3delegate_taskreported the Codex provider unavailable.🤖 Generated with Claude Code