Skip to content

fix(resume): replay unanswered parallel tool calls when a sibling answered - #7115

Open
Zsanz3 wants to merge 3 commits into
google:mainfrom
Zsanz3:cursor/fix-partial-parallel-resume-3209
Open

Zsanz3 wants to merge 3 commits into
google:mainfrom
Zsanz3:cursor/fix-partial-parallel-resume-3209

Conversation

@Zsanz3

@Zsanz3 Zsanz3 commented Sep 14, 2026

Copy link
Copy Markdown

Fixes #7108

Summary

When one sibling in a parallel tool call was answered, decide_step_resume treated the step as fully answered (any-answered), so never-executed parallel calls were not replayed.

Changes

  • Switch to full coverage via issubset on call names/ids (aligned with _pause_left_calls_unanswered)
  • Aggregate function responses across subsequent events (parallel answers often span multiple events)
  • PAUSE only when neither id nor name matches; partial sibling answers → REPLAY_CALLS
  • Unit coverage for partial-parallel cases in test_resume_utils.py
  • Decision-only; filtering unanswered ids in _replay_function_calls left as follow-up to keep the diff small

Tests

pytest tests/unittests/flows/llm_flows/test_resume_utils.py -q

@google-cla

google-cla Bot commented Sep 14, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

cursoragent and others added 2 commits September 15, 2026 22:30
decide_step_resume treated one answered sibling as coverage for the
whole event, so a parallel call that never ran was skipped. Require
full id and name coverage (issubset) before continuing.

Fixes google#7108

Co-authored-by: Zsanz3 <Zsanz3@users.noreply.github.com>
Name coverage looked only at the last matching response event, so a
fully answered parallel pair was treated as incomplete and replayed.
Walk every response after the call before testing issubset.

Co-authored-by: Zsanz3 <Zsanz3@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/fix-partial-parallel-resume-3209 branch from 91c561c to e1a32ba Compare September 15, 2026 22:30
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.

Resumable flow: a parallel tool call that never executed is never replayed when a sibling call was answered

3 participants