Skip to content

cherry-pick cursor acp thread rendering fix#60

Open
tarik02 wants to merge 2 commits into
revert/fork-cursor-fixesfrom
cherry-pick/cursor-acp-thread-rendering
Open

cherry-pick cursor acp thread rendering fix#60
tarik02 wants to merge 2 commits into
revert/fork-cursor-fixesfrom
cherry-pick/cursor-acp-thread-rendering

Conversation

@tarik02

@tarik02 tarik02 commented Jul 4, 2026

Copy link
Copy Markdown
Owner

What Changed

Cherry-picks the two change commits from pingdotgg#3669 on top of revert/fork-cursor-fixes.

Why

Applies the upstream Cursor ACP thread rendering, thought output, and cancel delivery fixes after removing the fork-specific Cursor fixes.

UI Changes

N/A.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

taschaub and others added 2 commits July 4, 2026 12:27
- Send session/cancel as a spec-compliant JSON-RPC notification (no id);
  the Cursor CLI dropped the malformed message so turns kept running
  after pausing a thread.
- Tag ACP assistant segment item ids with a per-runtime tag so resumed
  sessions stop appending new output to messages from earlier runs,
  which pushed assistant text above the latest user message.
- Parse agent_thought_chunk into channel-aware segments and surface the
  accumulated reasoning as expandable thinking rows in the work log.
- Drain queued ACP session updates before emitting turn.completed in
  CursorAdapter (raced against the notification fiber to avoid hanging
  on mid-turn teardown).

Co-authored-by: Cursor <cursoragent@cursor.com>
…ng deltas

- sendTurn's drain race also settles when stopSessionInternal interrupts
  the notification fiber. Check ctx.stopped after the race and bail out
  before mutating turn state or emitting turn.completed, so a torn-down
  session can no longer produce events after session.exited. Covered by
  extending the stop-during-pending-approval test.
- Document why reasoning_text content deltas are intentionally not
  appended to the assistant message by ingestion: the full thought text
  is accumulated in the runtime segment and persisted via item.completed,
  and segments close on prompt settlement so cancelled turns keep their
  reasoning.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Jul 4, 2026
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.

2 participants