fix(flows): preserve code execution continuation - #7003
Open
saransh-translucent wants to merge 1 commit into
Open
fix(flows): preserve code execution continuation#7003saransh-translucent wants to merge 1 commit into
saransh-translucent wants to merge 1 commit into
Conversation
|
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. |
saransh-translucent
force-pushed
the
fix/code-execution-stop-continuation
branch
from
September 3, 2026 16:42
e3517aa to
cba407f
Compare
Validate genuinely empty STOP responses before response processors mutate the response so the sandbox continuation sentinel remains intact. Closes google#7002
saransh-translucent
force-pushed
the
fix/code-execution-stop-continuation
branch
from
September 3, 2026 16:43
cba407f to
fe82553
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to Issue or Description of Change
Problem:
The non-built-in code-execution response processor intentionally clears
llm_response.contentafter emitting a sandbox result so the LLM loop continues. The genuine-empty-STOPguard currently runs after response processors, mistakes that internal continuation sentinel for a provider-empty response, and emitsMODEL_RETURNED_NO_CONTENTbefore the model can produce its final answer.Solution:
Classify genuine non-streaming empty
STOPresponses before response processors run. This keeps the existing provider-empty error while allowing processor-cleared code-execution responses to continue the loop.Testing Plan
Unit Tests:
The new regression test uses a deterministic two-response model and a recording non-built-in executor. It verifies that the code executes, a second model call occurs, the final response is emitted, and no
MODEL_RETURNED_NO_CONTENTevent appears. The existing genuine-empty response regression test remains green.Manual End-to-End (E2E) Tests:
The same test drives the public in-memory Runner through the complete model → code executor → execution result → second model call → final response flow without external model or customer data.
Checklist
Additional context
This is a processor-ordering fix. It does not suppress genuine empty model responses and does not change SSE terminal-chunk handling.