Repository navigation
Release v1.37.1 - #4214
Release v1.37.1#4214
Conversation
Co-authored-by: openhands <openhands@all-hands.dev>
|
Hi! I started running the integration tests on your PR. You will receive a comment with the results shortly. |
|
Hi! I started running the behavior tests on your PR. You will receive a comment with the results shortly. |
🔒 Release Security Scan🔒 Approval drift (time-of-check vs time-of-use)❌ 5 blocking finding(s) Baseline:
Audited 10 PR(s): 5 clean, 5 flagged, 0 un-auditable. 📦 Supply-chain dependency diff✅ no findings Baseline: OSV: no known vulns across 4 new/bumped dep(s). Bumped dependencies
Deterministic scanners: approval-drift + supply-chain dependency diff. Read-only; no PR code executed. |
Python API breakage checks — ✅ PASSEDResult: ✅ PASSED Behavioral default changes detectedThese public
|
REST API breakage checks (OpenAPI) — ✅ PASSEDResult: ✅ PASSED |
all-hands-bot
left a comment
There was a problem hiding this comment.
✅ QA Report: PASS
The release version bump works in real execution: installed packages and the running agent server now report 1.37.1.
Does this PR achieve its stated goal?
Yes. The stated goal is to prepare release v1.37.1 by setting the package version to 1.37.1; after checking out the PR commit and syncing the project, the four OpenHands distributions report 1.37.1 through Python package metadata, and a real agent-server process returns 1.37.1 for the server, SDK, tools, and workspace versions from /server_info. The same checks on origin/main reported 1.37.0, confirming the PR changes produce the intended user-visible release version.
| Phase | Result |
|---|---|
| Environment Setup | ✅ make build completed successfully; dependencies installed with the PR packages at 1.37.1. |
| CI Status | ⏳ Latest check summary observed: 20 successful, 16 pending, 12 skipped, 0 failing. |
| Functional Verification | ✅ Package metadata and live /server_info both changed from 1.37.0 on base to 1.37.1 on the PR. |
Functional Verification
Test 1: Installed distribution versions
Step 1 — Establish baseline without the release bump:
Ran git checkout origin/main && uv sync --frozen --dev && uv run python - <<'PY' ... to query installed package metadata:
===== base: origin/main =====
7bca97c6
Installed distribution versions:
openhands-sdk=1.37.0
openhands-tools=1.37.0
openhands-workspace=1.37.0
openhands-agent-server=1.37.0
This shows the base branch still exposes 1.37.0 to Python package consumers.
Step 2 — Apply the PR's changes:
Checked out PR commit 71e2e773aa530a00217418a790d6de26cec30601 and re-synced the environment with uv sync --frozen --dev.
Step 3 — Re-run with the release bump in place:
Ran the same package metadata query:
===== pr: 71e2e773aa530a00217418a790d6de26cec30601 =====
71e2e773
Installed distribution versions:
openhands-sdk=1.37.1
openhands-tools=1.37.1
openhands-workspace=1.37.1
openhands-agent-server=1.37.1
This confirms the installed distributions users consume are versioned as 1.37.1 on the PR.
Test 2: Live agent-server version reporting
Step 1 — Establish baseline without the release bump:
Started the server from origin/main with uv run agent-server --host 127.0.0.1 --port 8765 and queried curl -fsS http://127.0.0.1:8765/server_info:
Agent server /server_info versions:
version=1.37.0
sdk_version=1.37.0
tools_version=1.37.0
workspace_version=1.37.0
This shows HTTP clients of the released server would see 1.37.0 on the base branch.
Step 2 — Apply the PR's changes:
Checked out PR commit 71e2e773aa530a00217418a790d6de26cec30601 and re-synced the environment.
Step 3 — Re-run with the release bump in place:
Started the server with uv run agent-server --host 127.0.0.1 --port 8766 and queried curl -fsS http://127.0.0.1:8766/server_info:
Agent server /server_info versions:
version=1.37.1
sdk_version=1.37.1
tools_version=1.37.1
workspace_version=1.37.1
This confirms the running software exposes the intended v1.37.1 release versions through the real server endpoint.
Issues Found
None from functional QA. CI was still in progress at the time of review, so merge readiness still depends on the remaining checks completing successfully.
This review was created by an AI agent (OpenHands) on behalf of the user.
🔄 Running Examples with
|
🧪 Integration Tests ResultsOverall Success Rate: 100.0% 📁 Detailed Logs & ArtifactsClick the links below to access detailed agent/LLM logs showing the complete reasoning process for each model. On the GitHub Actions page, scroll down to the 'Artifacts' section to download the logs.
📊 Summary
📋 Detailed Resultslitellm_proxy_deepseek_deepseek_v4_flash
litellm_proxy_gemini_3.1_pro_preview
litellm_proxy_anthropic_claude_sonnet_4_6
litellm_proxy_minimax_MiniMax_M2.7
litellm_proxy_openai_gpt_5.5
|
|
Manual audit of the release-security findings:
No unaudited product change remains in these findings. Proceeding after the remaining release checks finish. |
|
Closing because this release preparation was triggered in error. No release was published. |
🔄 Running Examples with
|
| Example | Status | Duration | Cost |
|---|---|---|---|
| 01_standalone_sdk/02_custom_tools.py | ✅ PASS | 26.8s | $0.03 |
| 01_standalone_sdk/03_activate_skill.py | ✅ PASS | 18.8s | $0.03 |
| 01_standalone_sdk/05_use_llm_registry.py | ✅ PASS | 8.1s | $0.01 |
| 01_standalone_sdk/07_mcp_integration.py | ✅ PASS | 34.2s | $0.03 |
| 01_standalone_sdk/09_pause_example.py | ✅ PASS | 12.2s | $0.01 |
| 01_standalone_sdk/10_persistence.py | ✅ PASS | 28.4s | $0.02 |
| 01_standalone_sdk/11_async.py | ✅ PASS | 32.2s | $0.04 |
| 01_standalone_sdk/12_custom_secrets.py | ✅ PASS | 11.7s | $0.01 |
| 01_standalone_sdk/13_get_llm_metrics.py | ✅ PASS | 27.2s | $0.03 |
| 01_standalone_sdk/14_context_condenser.py | ✅ PASS | 2m 15s | $0.15 |
| 01_standalone_sdk/17_image_input.py | ✅ PASS | 20.0s | $0.02 |
| 01_standalone_sdk/18_send_message_while_processing.py | ✅ PASS | 20.6s | $0.01 |
| 01_standalone_sdk/19_llm_routing.py | ✅ PASS | 15.4s | $0.02 |
| 01_standalone_sdk/20_stuck_detector.py | ✅ PASS | 15.9s | $0.03 |
| 01_standalone_sdk/21_generate_extraneous_conversation_costs.py | ✅ PASS | 9.7s | $0.00 |
| 01_standalone_sdk/22_anthropic_thinking.py | ✅ PASS | 15.2s | $0.01 |
| 01_standalone_sdk/23_responses_reasoning.py | ✅ PASS | 58.6s | $0.01 |
| 01_standalone_sdk/24_planning_agent_workflow.py | ✅ PASS | 2m 51s | $0.20 |
| 01_standalone_sdk/25_agent_delegation.py | ✅ PASS | 58.6s | $0.06 |
| 01_standalone_sdk/26_custom_visualizer.py | ✅ PASS | 21.8s | $0.03 |
| 01_standalone_sdk/28_ask_agent_example.py | ✅ PASS | 36.6s | $0.04 |
| 01_standalone_sdk/29_llm_streaming.py | ✅ PASS | 42.5s | $0.03 |
| 01_standalone_sdk/30_tom_agent.py | ✅ PASS | 10.4s | $0.01 |
| 01_standalone_sdk/31_iterative_refinement.py | ✅ PASS | 3m 31s | $0.23 |
| 01_standalone_sdk/32_configurable_security_policy.py | ✅ PASS | 20.9s | $0.03 |
| 01_standalone_sdk/33_hooks/main.py | ✅ PASS | 36.6s | $0.05 |
| 01_standalone_sdk/34_critic_example.py | ✅ PASS | 1m 37s | $0.10 |
| 01_standalone_sdk/36_event_json_to_openai_messages.py | ✅ PASS | 8.9s | $0.01 |
| 01_standalone_sdk/37_llm_profile_store/main.py | ✅ PASS | 2.9s | $0.00 |
| 01_standalone_sdk/38_browser_session_recording.py | ✅ PASS | 38.1s | $0.03 |
| 01_standalone_sdk/39_llm_fallback.py | ✅ PASS | 9.2s | $0.01 |
| 01_standalone_sdk/40_acp_agent_example.py | ✅ PASS | 46.9s | $0.31 |
| 01_standalone_sdk/41_task_tool_set.py | ✅ PASS | 22.8s | $0.02 |
| 01_standalone_sdk/42_file_based_subagents.py | ✅ PASS | 43.2s | $0.05 |
| 01_standalone_sdk/44_model_switching_in_convo.py | ✅ PASS | 6.9s | $0.01 |
| 01_standalone_sdk/45_parallel_tool_execution.py | ✅ PASS | 7m 7s | $0.58 |
| 01_standalone_sdk/46_agent_settings.py | ✅ PASS | 8.3s | $0.01 |
| 01_standalone_sdk/47_defense_in_depth_security.py | ✅ PASS | 2.6s | $0.00 |
| 01_standalone_sdk/48_conversation_fork.py | ✅ PASS | 21.4s | $0.01 |
| 01_standalone_sdk/49_switch_llm_tool.py | ✅ PASS | 9.9s | $0.04 |
| 01_standalone_sdk/50_async_cancellation.py | ✅ PASS | 14.0s | $0.01 |
| 01_standalone_sdk/51_agent_hooks/main.py | ✅ PASS | 27.8s | $0.04 |
| 01_standalone_sdk/52_dynamic_workflow.py | ✅ PASS | 7m 18s | $0.18 |
| 01_standalone_sdk/53_client_defined_tools.py | ✅ PASS | 13.6s | $0.01 |
| 01_standalone_sdk/54_goal_completion_loop.py | ✅ PASS | 25.4s | $0.02 |
| 01_standalone_sdk/55_persistent_memory.py | ✅ PASS | 14.4s | $0.02 |
| 02_remote_agent_server/01_convo_with_local_agent_server.py | ✅ PASS | 31.1s | $0.02 |
| 02_remote_agent_server/02_convo_with_docker_sandboxed_server.py | ✅ PASS | 1m 56s | $0.04 |
| 02_remote_agent_server/03_browser_use_with_docker_sandboxed_server.py | ✅ PASS | 1m 59s | $0.07 |
| 02_remote_agent_server/04_convo_with_api_sandboxed_server.py | ✅ PASS | 1m 12s | $0.05 |
| 02_remote_agent_server/06_custom_tool/main.py | ✅ PASS | 4m 26s | $0.03 |
| 02_remote_agent_server/07_convo_with_cloud_workspace.py | ✅ PASS | 42.2s | $0.03 |
| 02_remote_agent_server/08_convo_with_apptainer_sandboxed_server.py | ✅ PASS | 3m 32s | $0.03 |
| 02_remote_agent_server/09_acp_agent_with_remote_runtime.py | ✅ PASS | 1m 3s | $0.33 |
| 02_remote_agent_server/10_cloud_workspace_share_credentials.py | ✅ PASS | 28.0s | $0.04 |
| 02_remote_agent_server/11_conversation_fork.py | ✅ PASS | 47.0s | $0.00 |
| 02_remote_agent_server/12_settings_and_secrets_api.py | ✅ PASS | 2m 13s | $0.02 |
| 02_remote_agent_server/13_workspace_get_llm.py | ✅ PASS | 27.6s | $0.01 |
| 02_remote_agent_server/14_client_defined_tools.py | ✅ PASS | 35.1s | $0.02 |
| 02_remote_agent_server/15_openai_compatible_gateway.py | ✅ PASS | 16.4s | $0.01 |
| 02_remote_agent_server/16_deferred_init.py | ✅ PASS | 22.0s | $0.01 |
| 04_llm_specific_tools/01_gpt5_apply_patch_preset.py | ✅ PASS | 19.5s | $0.02 |
| 04_llm_specific_tools/02_gemini_file_tools.py | ✅ PASS | 37.3s | $0.08 |
| 05_skills_and_plugins/01_loading_agentskills/main.py | ✅ PASS | 11.8s | $0.02 |
| 05_skills_and_plugins/02_loading_plugins/main.py | ✅ PASS | 17.0s | $0.02 |
| 05_skills_and_plugins/04_mixed_marketplace_skills/main.py | ✅ PASS | 2.5s | $0.00 |
✅ All tests passed!
Total: 66 | Passed: 66 | Failed: 0 | Total Cost: $3.46
🧪 Integration Tests ResultsOverall Success Rate: 97.1% 📁 Detailed Logs & ArtifactsClick the links below to access detailed agent/LLM logs showing the complete reasoning process for each model. On the GitHub Actions page, scroll down to the 'Artifacts' section to download the logs.
📊 Summary
📋 Detailed Resultslitellm_proxy_deepseek_deepseek_v4_flash
Skipped Tests:
litellm_proxy_anthropic_claude_sonnet_4_6
Failed Tests:
litellm_proxy_minimax_MiniMax_M2.7
Skipped Tests:
litellm_proxy_openai_gpt_5.5
|
Release v1.37.1
This PR prepares the release for version 1.37.1.
Started by: @simonrosenberg
Release Checklist
integration-test)behavior-test)test-examples)security-scan)release-note-requiredPRs are accurately called out in the final release notesWhat happens on merge
When this PR is merged, the
create-release.ymlworkflow will automatically:v1.37.1and auto-generated notes, plus an explicit preamble for mergedrelease-note-requiredPRspypi-release.ymlto publish all packages to PyPIversion-bump-prs.ymlto create downstream version bump PRsAgent 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.13-nodejs22-slimgolang: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:71e2e77-pythonRun
All tags pushed for this build
About Multi-Architecture Support
71e2e77-python) is a multi-arch manifest supporting both amd64 and arm6471e2e77-python-amd64) are also available if needed