Skip to content

fix(server): retain sharing recovery after run interruption - #1

Merged
yelgabo merged 1 commit into
yelgabo:fix/codex-invalid-history-recoveryfrom
yniknafs:fix/sharing-rejected-terminal-states-20261106
Nov 10, 2026
Merged

yelgabo merged 1 commit into
yelgabo:fix/codex-invalid-history-recoveryfrom
yniknafs:fix/sharing-rejected-terminal-states-20261106

Conversation

@yniknafs

@yniknafs yniknafs commented Nov 7, 2026 •

Copy link
Copy Markdown

Problem

The recovery in pingdotgg/t3code#28962 only checks a previous accepted run whose final status is failed. A root subscription_sharing_unsupported_capability error can already be persisted when Stop settles that run as interrupted, or startup/shutdown recovery marks it cancelled. 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

  • On pinned Node 26.12.1, both new cases fail before the status change (failed instead of completed). After the change, all nine rejected-history scenarios pass.
  • vp run check:changed 471b4c2848b19ca38cfd9808fad700521f8ac4f9 --concurrency 2 passes format, lint, both knip checks, generated GraphQL verification, typechecking of three packages, and all 100 tests in three selected files on final head 10c8d12c9faa13ee3d6c6506da9198039f43f784. git diff --check passes and the checkout is clean.
  • Hosted CI is not available as evidence here: GitHub currently reports zero registered Actions workflows in the target fork and zero runs for this head. The PR has no reported checks; that is not a hosted pass. No workflow was enabled or manually dispatched, no stand-in status was posted, and author/maintainer review and upstream acceptance remain outstanding.
  • An independent Claude Opus 5.5 source review examined the same status/test change in a current-main combined candidate and found no blocking code defect. The supplemental branch contains only that reviewed amendment, not the combined prevention/recovery patch.
  • No installed T3, real subscription-sharing request, or live cancellation race was exercised. No dependency, provider, credential, instruction, or runtime-install change is included.

Implementation: GPT-6.1 Sol through the Codex harness in T3 Code. Review: Claude Opus 5.5 through T3 Code.

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.
@yelgabo
yelgabo merged commit a342e91 into yelgabo:fix/codex-invalid-history-recovery Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants