Skip to content

fix(claude): retract turns by target identity - #27

Merged
asfires merged 1 commit into
mainfrom
t3code/claude-target-retraction
Aug 13, 2026
Merged

asfires merged 1 commit into
mainfrom
t3code/claude-target-retraction

Conversation

@asfires

@asfires asfires commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Claude Esc retraction could reject a valid active target when an older provider resume cursor reported fewer lifetime turns than T3s retained projection boundary. The rollback also left its updated native cursor only in memory until another provider operation.

This change makes Claude use the concrete orchestration target turn as the authoritative rollback coordinate, preserves all preceding local turns, and rebases the logical cursor afterward. Missing targets remain conservative unless the cursor is already at the requested boundary, and ProviderService persists the updated resume cursor before reporting rollback success.

Verification:

  • ClaudeAdapter.test.ts: 77 passed
  • ProviderService.test.ts: 30 passed
  • TurnRetractionReactor.test.ts: 13 passed
  • Server typecheck passed
  • Targeted lint passed

Implemented with GPT-5.6-sol through the Codex harness.

Prefer the concrete orchestration turn id over stale Claude lifetime counts while preserving count-only validation. Persist the rebased resume cursor and cover retry, restart, and foreign-target safety.
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Aug 13, 2026
@asfires
asfires merged commit a558c8a into main Aug 13, 2026
6 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant