refactor: consolidate duplicated blocking wait logic in RemoteConversation.run() + remove defensive if else #1569
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.
Summary
RemoteConversation.run()to use a single_wait_for_run_completion()call at the end instead of having two separate calls (one in the 409 path and one at the end).Fixes #1568
Problem
The original code had two
if blocking: self._wait_for_run_completion(...)blocks:While functionally correct, this duplication made the control flow harder to scan and invited mistaken "cleanup" changes.
Solution
Consolidated the wait logic into a single block at the end:
Behavior Preserved
This refactor preserves the exact same behavior:
blocking=False: returns immediately after logging (no wait)ConversationRunErroris unchangedTesting
Added two new tests to verify the refactored behavior:
test_remote_conversation_run_wait_called_once_on_409: Verifies_wait_for_run_completionis called exactly once on 409 responsetest_remote_conversation_run_wait_called_once_on_success: Verifies_wait_for_run_completionis called exactly once on successAll 1576 existing tests pass.
@simonrosenberg can click here to continue refining the PR
Agent Server images for this PR
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22golang:1.21-bookwormPull (multi-arch manifest)
# Each variant is a multi-arch manifest supporting both amd64 and arm64 docker pull ghcr.io/openhands/agent-server:5ad6791-pythonRun
All tags pushed for this build
About Multi-Architecture Support
5ad6791-python) is a multi-arch manifest supporting both amd64 and arm645ad6791-python-amd64) are also available if needed