Repository navigation
fix(server): retain sharing recovery after run interruption - #1
Merged
Conversation
Extend the existing recovery in pingdotgg#28962 to interrupted or cancelled runs that already retain the root sharing-rejection item. Preserve native-session binding and the background-work fence. Ordinary interruptions without that error remain unchanged.
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.
Problem
The recovery in pingdotgg/t3code#28962 only checks a previous accepted run whose final status is
failed. A rootsubscription_sharing_unsupported_capabilityerror can already be persisted when Stop settles that run asinterrupted, or startup/shutdown recovery marks itcancelled. Those records still identify the rejected native history, but the status check skips them.Change
Allow those two terminal statuses while retaining the exact root-error match, native-session identity checks, repaired-session guard, and background-work fence. Extend the existing scenario table with the two persisted states. This is a 22-line addition / one-line removal against your existing recovery branch, not a replacement for pingdotgg#28962 or the prevention work in #28143.
The tests synthesize the persisted terminal state through
EventSink; they are not live cancellation-race evidence. Ordinary Stop without a retained root sharing-rejection item is deliberately unchanged. Recovery remains a fresh native session and portable context in the same T3 thread/provider/model, never automatic replay of the rejected action.Verification
failedinstead ofcompleted). After the change, all nine rejected-history scenarios pass.vp run check:changed 471b4c2848b19ca38cfd9808fad700521f8ac4f9 --concurrency 2passes format, lint, both knip checks, generated GraphQL verification, typechecking of three packages, and all 100 tests in three selected files on final head10c8d12c9faa13ee3d6c6506da9198039f43f784.git diff --checkpasses and the checkout is clean.Implementation: GPT-6.1 Sol through the Codex harness in T3 Code. Review: Claude Opus 5.5 through T3 Code.