Skip to content

fix(cursor): preserve internal agent errors without transport labels - #11365

Open
shivamhwp wants to merge 1 commit into
fix/client-device-ticket-http-groupfrom
fix/cursor-internal-error-classification
Open

fix(cursor): preserve internal agent errors without transport labels#11365
shivamhwp wants to merge 1 commit into
fix/client-device-ticket-http-groupfrom
fix/cursor-internal-error-classification

Conversation

@shivamhwp

Copy link
Copy Markdown
Collaborator

Cursor can return an internal agent-loop error as its assistant answer. T3 currently calls every RetriableError a transport failure, including [internal] Failed to run step, exceeded max retries. Preserve internal diagnostics as returned text instead of replacing their meaning with a transport label.

Refs #10480. This fixes the classification issue identified in maintainer triage; it does not repair Cursor ACP or add retries.

Validation: 42 focused parser/adapter tests pass. Both new internal-error regressions fail on the parent, including a stack trace. Targeted lint, formatting and diff checks pass. No live Cursor ACP/model request was tested. Internal Fable refinement pending.

Stacked on #11298; only the diagnostic parser and its tests change.

Model and harness: GPT-6 through Codex.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Sep 12, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3ab5724

Macroscope's review found this PR approvable — The change narrowly corrects Cursor error classification so internal agent-loop diagnostics are preserved instead of being mislabeled as transport failures. It is confined to one classifier with focused regression tests, while existing transport-error handling remains unchanged.

You can add or adjust custom eligibility rules. Learn more.

@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 15.1 KiB
Codex Thread snapshot wire 7.1 KiB 7.3 KiB
Codex Live turn WebSocket wire 6.5 KiB 7.8 KiB
Codex Live turn WebSocket decoded 57.0 KiB 66.4 KiB
Codex Live turn messages 8 21
Claude Total thread wire 13.6 KiB 15.1 KiB
Claude Thread snapshot wire 7.1 KiB 7.3 KiB
Claude Live turn WebSocket wire 6.5 KiB 7.8 KiB
Claude Live turn WebSocket decoded 57.8 KiB 66.4 KiB
Claude Live turn messages 8 21

Baseline: unavailable · PR result: 3ab5724 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@greatitself

Copy link
Copy Markdown

Independent validation of 3ab5724370bb4e7430ee9eabefa4998dd577a987 (merge-base 050e2cafb144).

Checked the internal-error diagnostic at every possible two-chunk stream split, with LF/CRLF and optional stack trace: 354 cases. This revision preserved the diagnostic in every case; the merge-base classified every case as a transport failure. Unavailable, aborted, and deadline-exceeded transport diagnostics still classified as failures. Assertions were made after the complete diagnostic arrived.

Reproduction scripts and recorded resultsfirst.mjs; the numbered metadata file pins this PR’s tested revisions.

Model: GPT-6. Harness: Codex.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 changed lines (additions + deletions). 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.

2 participants