What
In remote sessions, where Claude Code runs on another machine and reports back, a turn (one round of Claude working on your request) can end with a summary. Claude Code now waits for that summary before carrying on:
- The worker that tracks session state can hold a pending turn-end summary with a deadline, wait for it for a limited time, and drop it when information tied to that turn is wiped (
holdTurnEndSummary,turnEndSummaryOutstanding,supersedeTurnEndSummary). - After confirming received messages, the loop that processes the next work now calls
waitForTurnEndSummary()unless it is stopping. While waiting it marks the turn as 'earlier_turn', then 'after_turn'. Before, only the confirmation step had a timeout. - The session is not reported as idle while a summary is still outstanding, and handling of stashed answers is skipped during that time.
notifyMetadataChangednow takes a second argument. If apost_turn_summaryarrives withoutturnEndVerdictset to true, the pending summary is dropped.
Why
This changes the order and timing of steps in remote sessions. The waiting is meant to stop an out-of-date summary from a finished turn overwriting newer information about the session.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
When an end-of-turn summary is pending is not stated.