From a453b716513d8ad0f6b8f857c05a0c13ae370988 Mon Sep 17 00:00:00 2001 From: pewdiepie-archdaemon Date: Fri, 18 Sep 2026 16:10:02 +0000 Subject: [PATCH] count artifact handoff once per response batch --- src/clean_agent_preview.py | 1 + tests/test_clean_agent_preview.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/clean_agent_preview.py b/src/clean_agent_preview.py index 73fe39b15..1d5b466a5 100644 --- a/src/clean_agent_preview.py +++ b/src/clean_agent_preview.py @@ -5471,6 +5471,7 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac if ( repeated_handoff_target and artifact_body_handoff_attempts < 2 + and not artifact_body_handoff_target ): artifact_body_handoff_attempts += 1 artifact_body_handoff_target = repeated_handoff_target diff --git a/tests/test_clean_agent_preview.py b/tests/test_clean_agent_preview.py index d99de2213..5dd85663b 100644 --- a/tests/test_clean_agent_preview.py +++ b/tests/test_clean_agent_preview.py @@ -547,6 +547,11 @@ async def test_repeated_off_contract_calls_recover_via_required_artifact_body(mo 'function': {'name': 'python', 'arguments': json.dumps({ 'code': 'print("nope")', })}, + }, { + 'index': 1, 'id': 'bad-inspect-sibling', + 'function': {'name': 'inspect_media', 'arguments': json.dumps({ + 'path': '/workspace/input.png', + })}, }]}}]}, {'choices': [{'delta': {'content': ''}}]}, {'choices': [{'delta': {'content': 'Recovered'}}]}, @@ -605,7 +610,7 @@ async def test_repeated_off_contract_calls_recover_via_required_artifact_body(mo event.get('type') == 'tool_output' and event.get('execution_attempted') is False for event in events - ) == 2 + ) == 3 assert any( event.get('type') == 'artifact_body_handoff' and event.get('path') == '/workspace/output.html'