Repository navigation
Release v1.51.1 - #5483
Release v1.51.1#5483all-hands-bot wants to merge 2 commits into
Conversation
Co-authored-by: openhands <openhands@all-hands.dev>
🔒 Release Security Scan🔒 Approval drift (time-of-check vs time-of-use)❌ 3 finding(s) Baseline:
Audited 5 PR(s): 2 clean, 3 flagged, 0 un-auditable. 📦 Supply-chain dependency diff✅ no findings Baseline: OSV: no known vulns across 4 new/bumped dep(s). Internal `openhands-*` bumps
Deterministic scanners: approval-drift + supply-chain dependency diff. Read-only; no PR code executed. |
|
Hi! I started running the integration tests on your PR. You will receive a comment with the results shortly. |
REST API breakage checks (OpenAPI) — ✅ PASSEDResult: ✅ PASSED |
|
|
Hi! I started running the behavior tests on your PR. You will receive a comment with the results shortly. |
|
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. |
🧪 Integration Tests ResultsOverall Success Rate: 98.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_openai_gpt_5.5
litellm_proxy_gemini_3.1_pro_preview
litellm_proxy_anthropic_claude_sonnet_4_6
Failed Tests:
litellm_proxy_deepseek_deepseek_v4_flash
litellm_proxy_minimax_MiniMax_M2.7
Skipped Tests:
|
🧪 Integration Tests ResultsOverall Success Rate: 98.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_openai_gpt_5.5
litellm_proxy_gemini_3.1_pro_preview
litellm_proxy_anthropic_claude_sonnet_4_6
Failed Tests:
litellm_proxy_deepseek_deepseek_v4_flash
litellm_proxy_minimax_MiniMax_M2.7
Skipped Tests:
|
🔄 Running Examples with
|
| Example | Status | Duration | Cost |
|---|---|---|---|
| 01_standalone_sdk/02_custom_tools.py | ✅ PASS | 24.6s | $0.03 |
| 01_standalone_sdk/03_activate_skill.py | ✅ PASS | 22.8s | $0.03 |
| 01_standalone_sdk/05_use_llm_registry.py | ✅ PASS | 12.6s | $0.01 |
| 01_standalone_sdk/07_mcp_integration.py | ✅ PASS | 34.1s | $0.03 |
| 01_standalone_sdk/09_pause_example.py | ✅ PASS | 12.6s | $0.01 |
| 01_standalone_sdk/10_persistence.py | ✅ PASS | 29.6s | $0.03 |
| 01_standalone_sdk/11_async.py | ✅ PASS | 31.0s | $0.02 |
| 01_standalone_sdk/12_custom_secrets.py | ✅ PASS | 13.6s | $0.01 |
| 01_standalone_sdk/13_get_llm_metrics.py | ✅ PASS | 26.1s | $0.03 |
| 01_standalone_sdk/14_context_condenser.py | ✅ PASS | 1m 32s | $0.09 |
| 01_standalone_sdk/17_image_input.py | ✅ PASS | 26.9s | $0.02 |
| 01_standalone_sdk/18_send_message_while_processing.py | ✅ PASS | 25.0s | $0.01 |
| 01_standalone_sdk/19_llm_routing.py | ✅ PASS | 17.5s | $0.02 |
| 01_standalone_sdk/20_stuck_detector.py | ✅ PASS | 17.1s | $0.02 |
| 01_standalone_sdk/21_generate_extraneous_conversation_costs.py | ✅ PASS | 12.4s | $0.00 |
| 01_standalone_sdk/22_anthropic_thinking.py | ✅ PASS | 15.3s | $0.01 |
| 01_standalone_sdk/23_responses_reasoning.py | ✅ PASS | 40.3s | $0.01 |
| 01_standalone_sdk/24_planning_agent_workflow.py | ✅ PASS | 5m 17s | $0.30 |
| 01_standalone_sdk/25_agent_delegation.py | ✅ PASS | 1m 8s | $0.06 |
| 01_standalone_sdk/26_custom_visualizer.py | ✅ PASS | 21.0s | $0.02 |
| 01_standalone_sdk/28_ask_agent_example.py | ✅ PASS | 32.4s | $0.04 |
| 01_standalone_sdk/29_llm_streaming.py | ✅ PASS | 47.0s | $0.03 |
| 01_standalone_sdk/30_tom_agent.py | ✅ PASS | 12.5s | $0.01 |
| 01_standalone_sdk/31_iterative_refinement.py | ✅ PASS | 4m 44s | $0.31 |
| 01_standalone_sdk/32_configurable_security_policy.py | ✅ PASS | 20.9s | $0.01 |
| 01_standalone_sdk/33_hooks/main.py | ✅ PASS | 34.4s | $0.04 |
| 01_standalone_sdk/34_critic_example.py | ✅ PASS | 2m 34s | $0.02 |
| 01_standalone_sdk/36_event_json_to_openai_messages.py | ✅ PASS | 11.0s | $0.00 |
| 01_standalone_sdk/37_llm_profile_store/main.py | ✅ PASS | 8.0s | $0.00 |
| 01_standalone_sdk/38_browser_session_recording.py | ✅ PASS | 39.7s | $0.03 |
| 01_standalone_sdk/39_llm_fallback.py | ✅ PASS | 13.4s | $0.00 |
| 01_standalone_sdk/40_acp_agent_example.py | ✅ PASS | 48.2s | $0.32 |
| 01_standalone_sdk/41_task_tool_set.py | ✅ PASS | 29.8s | $0.03 |
| 01_standalone_sdk/42_file_based_subagents.py | ✅ PASS | 30.6s | $0.04 |
| 01_standalone_sdk/44_model_switching_in_convo.py | ✅ PASS | 10.6s | $0.01 |
| 01_standalone_sdk/45_parallel_tool_execution.py | ✅ PASS | 4m 34s | $0.55 |
| 01_standalone_sdk/46_agent_settings.py | ✅ PASS | 13.0s | $0.00 |
| 01_standalone_sdk/47_defense_in_depth_security.py | ✅ PASS | 5.2s | $0.00 |
| 01_standalone_sdk/48_conversation_fork.py | ✅ PASS | 23.1s | $0.01 |
| 01_standalone_sdk/49_switch_llm_tool.py | ✅ PASS | 8.5s | $0.04 |
| 01_standalone_sdk/50_async_cancellation.py | ✅ PASS | 15.0s | $0.00 |
| 01_standalone_sdk/51_agent_hooks/main.py | ✅ PASS | 45.8s | $0.05 |
| 01_standalone_sdk/52_dynamic_workflow.py | ✅ PASS | 4m 8s | $0.17 |
| 01_standalone_sdk/53_client_defined_tools.py | ✅ PASS | 12.9s | $0.01 |
| 01_standalone_sdk/54_goal_completion_loop.py | ✅ PASS | 22.6s | $0.02 |
| 01_standalone_sdk/55_persistent_memory.py | ✅ PASS | 18.8s | $0.02 |
| 01_standalone_sdk/56_structured_output.py | ✅ PASS | 47.6s | $0.05 |
| 01_standalone_sdk/57_prompt_hooks/main.py | ✅ PASS | 17.9s | $0.00 |
| 01_standalone_sdk/58_ask_oracle_tool/main.py | ✅ PASS | 18.3s | $0.01 |
| 01_standalone_sdk/59_route_task_to_model.py | ✅ PASS | 11.1s | $0.05 |
| 02_remote_agent_server/01_convo_with_local_agent_server.py | ✅ PASS | 35.5s | $0.02 |
| 02_remote_agent_server/02_convo_with_docker_sandboxed_server.py | ✅ PASS | 1m 25s | $0.04 |
| 02_remote_agent_server/03_browser_use_with_docker_sandboxed_server.py | ✅ PASS | 2m 29s | $0.18 |
| 02_remote_agent_server/04_convo_with_api_sandboxed_server.py | ✅ PASS | 1m 14s | $0.03 |
| 02_remote_agent_server/06_custom_tool/main.py | ✅ PASS | 5m 46s | $0.06 |
| 02_remote_agent_server/07_convo_with_cloud_workspace.py | ✅ PASS | 49.8s | $0.04 |
| 02_remote_agent_server/08_convo_with_apptainer_sandboxed_server.py | ✅ PASS | 4m 4s | $0.03 |
| 02_remote_agent_server/09_acp_agent_with_remote_runtime.py | ✅ PASS | 1m 10s | $0.21 |
| 02_remote_agent_server/10_cloud_workspace_share_credentials.py | ✅ PASS | 1m 44s | $0.00 |
| 02_remote_agent_server/11_conversation_fork.py | ✅ PASS | 1m 3s | $0.00 |
| 02_remote_agent_server/12_settings_and_secrets_api.py | ✅ PASS | 2m 22s | $0.02 |
| 02_remote_agent_server/13_workspace_get_llm.py | ✅ PASS | 27.3s | $0.00 |
| 02_remote_agent_server/14_client_defined_tools.py | ✅ PASS | 36.5s | $0.02 |
| 02_remote_agent_server/15_openai_compatible_gateway.py | ✅ PASS | 23.8s | $0.01 |
| 02_remote_agent_server/16_deferred_init.py | ✅ PASS | 28.9s | $0.00 |
| 04_llm_specific_tools/01_gpt5_apply_patch_preset.py | ✅ PASS | 23.5s | $0.02 |
| 04_llm_specific_tools/02_gemini_file_tools.py | ✅ PASS | 34.1s | $0.08 |
| 05_skills_and_plugins/01_loading_agentskills/main.py | ✅ PASS | 14.4s | $0.02 |
| 05_skills_and_plugins/02_loading_plugins/main.py | ✅ PASS | 29.6s | $0.03 |
| 05_skills_and_plugins/04_mixed_marketplace_skills/main.py | ✅ PASS | 8.2s | $0.00 |
✅ All tests passed!
Total: 70 | Passed: 70 | Failed: 0 | Total Cost: $3.48
🔄 Running Examples with
|
| Example | Status | Duration | Cost |
|---|---|---|---|
| 01_standalone_sdk/02_custom_tools.py | ✅ PASS | 24.0s | $0.02 |
| 01_standalone_sdk/03_activate_skill.py | ✅ PASS | 21.0s | $0.01 |
| 01_standalone_sdk/05_use_llm_registry.py | ✅ PASS | 13.2s | $0.00 |
| 01_standalone_sdk/07_mcp_integration.py | ✅ PASS | 30.8s | $0.02 |
| 01_standalone_sdk/09_pause_example.py | ✅ PASS | 10.9s | $0.01 |
| 01_standalone_sdk/10_persistence.py | ✅ PASS | 27.7s | $0.03 |
| 01_standalone_sdk/11_async.py | ✅ PASS | 27.0s | $0.03 |
| 01_standalone_sdk/12_custom_secrets.py | ✅ PASS | 12.3s | $0.00 |
| 01_standalone_sdk/13_get_llm_metrics.py | ✅ PASS | 24.3s | $0.02 |
| 01_standalone_sdk/14_context_condenser.py | ✅ PASS | 2m 29s | $0.16 |
| 01_standalone_sdk/17_image_input.py | ✅ PASS | 20.5s | $0.02 |
| 01_standalone_sdk/18_send_message_while_processing.py | ✅ PASS | 31.1s | $0.02 |
| 01_standalone_sdk/19_llm_routing.py | ✅ PASS | 17.0s | $0.01 |
| 01_standalone_sdk/20_stuck_detector.py | ✅ PASS | 19.6s | $0.01 |
| 01_standalone_sdk/21_generate_extraneous_conversation_costs.py | ✅ PASS | 10.7s | $0.00 |
| 01_standalone_sdk/22_anthropic_thinking.py | ✅ PASS | 15.3s | $0.01 |
| 01_standalone_sdk/23_responses_reasoning.py | ✅ PASS | 36.0s | $0.01 |
| 01_standalone_sdk/24_planning_agent_workflow.py | ✅ PASS | 4m 16s | $0.22 |
| 01_standalone_sdk/25_agent_delegation.py | ✅ PASS | 1m 2s | $0.06 |
| 01_standalone_sdk/26_custom_visualizer.py | ✅ PASS | 22.4s | $0.02 |
| 01_standalone_sdk/28_ask_agent_example.py | ✅ PASS | 34.0s | $0.03 |
| 01_standalone_sdk/29_llm_streaming.py | ✅ PASS | 35.6s | $0.02 |
| 01_standalone_sdk/30_tom_agent.py | ✅ PASS | 10.9s | $0.01 |
| 01_standalone_sdk/31_iterative_refinement.py | ✅ PASS | 3m 53s | $0.23 |
| 01_standalone_sdk/32_configurable_security_policy.py | ✅ PASS | 16.3s | $0.02 |
| 01_standalone_sdk/33_hooks/main.py | ✅ PASS | 32.3s | $0.04 |
| 01_standalone_sdk/34_critic_example.py | ✅ PASS | 2m 41s | $0.02 |
| 01_standalone_sdk/36_event_json_to_openai_messages.py | ✅ PASS | 10.7s | $0.00 |
| 01_standalone_sdk/37_llm_profile_store/main.py | ✅ PASS | 8.1s | $0.00 |
| 01_standalone_sdk/38_browser_session_recording.py | ✅ PASS | 41.6s | $0.04 |
| 01_standalone_sdk/39_llm_fallback.py | ✅ PASS | 13.3s | $0.01 |
| 01_standalone_sdk/40_acp_agent_example.py | ✅ PASS | 40.7s | $0.15 |
| 01_standalone_sdk/41_task_tool_set.py | ✅ PASS | 27.3s | $0.02 |
| 01_standalone_sdk/42_file_based_subagents.py | ✅ PASS | 44.7s | $0.03 |
| 01_standalone_sdk/44_model_switching_in_convo.py | ✅ PASS | 10.5s | $0.01 |
| 01_standalone_sdk/45_parallel_tool_execution.py | ✅ PASS | 4m 6s | $0.61 |
| 01_standalone_sdk/46_agent_settings.py | ✅ PASS | 11.3s | $0.00 |
| 01_standalone_sdk/47_defense_in_depth_security.py | ✅ PASS | 3.3s | $0.00 |
| 01_standalone_sdk/48_conversation_fork.py | ✅ PASS | 21.8s | $0.00 |
| 01_standalone_sdk/49_switch_llm_tool.py | ✅ PASS | 6.5s | $0.02 |
| 01_standalone_sdk/50_async_cancellation.py | ✅ PASS | 13.7s | $0.00 |
| 01_standalone_sdk/51_agent_hooks/main.py | ✅ PASS | 42.0s | $0.06 |
| 01_standalone_sdk/52_dynamic_workflow.py | ✅ PASS | 5m 30s | $0.19 |
| 01_standalone_sdk/53_client_defined_tools.py | ✅ PASS | 18.0s | $0.01 |
| 01_standalone_sdk/54_goal_completion_loop.py | ✅ PASS | 25.1s | $0.03 |
| 01_standalone_sdk/55_persistent_memory.py | ✅ PASS | 16.4s | $0.02 |
| 01_standalone_sdk/56_structured_output.py | ✅ PASS | 45.7s | $0.06 |
| 01_standalone_sdk/57_prompt_hooks/main.py | ✅ PASS | 9.5s | $0.00 |
| 01_standalone_sdk/58_ask_oracle_tool/main.py | ✅ PASS | 13.8s | $0.01 |
| 01_standalone_sdk/59_route_task_to_model.py | ✅ PASS | 10.0s | $0.05 |
| 02_remote_agent_server/01_convo_with_local_agent_server.py | ✅ PASS | 37.3s | $0.02 |
| 02_remote_agent_server/02_convo_with_docker_sandboxed_server.py | ✅ PASS | 1m 25s | $0.05 |
| 02_remote_agent_server/03_browser_use_with_docker_sandboxed_server.py | ✅ PASS | 1m 1s | $0.09 |
| 02_remote_agent_server/04_convo_with_api_sandboxed_server.py | ✅ PASS | 1m 48s | $0.04 |
| 02_remote_agent_server/06_custom_tool/main.py | ✅ PASS | 4m 24s | $0.05 |
| 02_remote_agent_server/07_convo_with_cloud_workspace.py | ✅ PASS | 33.9s | $0.02 |
| 02_remote_agent_server/08_convo_with_apptainer_sandboxed_server.py | ✅ PASS | 2m 53s | $0.02 |
| 02_remote_agent_server/09_acp_agent_with_remote_runtime.py | ✅ PASS | 1m 15s | $0.44 |
| 02_remote_agent_server/10_cloud_workspace_share_credentials.py | ✅ PASS | 1m 3s | $0.00 |
| 02_remote_agent_server/11_conversation_fork.py | ✅ PASS | 38.0s | $0.00 |
| 02_remote_agent_server/12_settings_and_secrets_api.py | ✅ PASS | 2m 14s | $0.02 |
| 02_remote_agent_server/13_workspace_get_llm.py | ✅ PASS | 26.2s | $0.01 |
| 02_remote_agent_server/14_client_defined_tools.py | ✅ PASS | 31.0s | $0.02 |
| 02_remote_agent_server/15_openai_compatible_gateway.py | ✅ PASS | 18.4s | $0.02 |
| 02_remote_agent_server/16_deferred_init.py | ✅ PASS | 17.9s | $0.00 |
| 04_llm_specific_tools/01_gpt5_apply_patch_preset.py | ✅ PASS | 28.9s | $0.02 |
| 04_llm_specific_tools/02_gemini_file_tools.py | ✅ PASS | 44.7s | $0.08 |
| 05_skills_and_plugins/01_loading_agentskills/main.py | ✅ PASS | 14.0s | $0.02 |
| 05_skills_and_plugins/02_loading_plugins/main.py | ✅ PASS | 17.8s | $0.02 |
| 05_skills_and_plugins/04_mixed_marketplace_skills/main.py | ✅ PASS | 3.5s | $0.00 |
✅ All tests passed!
Total: 70 | Passed: 70 | Failed: 0 | Total Cost: $3.33
🧪 Behavior 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_gemini_3.1_pro_preview
litellm_proxy_anthropic_claude_sonnet_4_6
litellm_proxy_deepseek_deepseek_v4_flash
litellm_proxy_minimax_MiniMax_M2.7
|
🧪 Behavior 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_openai_gpt_5.5
litellm_proxy_gemini_3.1_pro_preview
litellm_proxy_anthropic_claude_sonnet_4_6
litellm_proxy_deepseek_deepseek_v4_flash
litellm_proxy_minimax_MiniMax_M2.7
|
all-hands-bot
left a comment
There was a problem hiding this comment.
This review was posted by an AI agent (OpenHands).
Review: Release v1.51.1
This release PR bumps the four Python packages and the TypeScript client from 1.51.0 to 1.51.1 (+11/-11 across 7 files), with the matching uv.lock entries. The version-consistency half of the version-bump guard is fine: .github/scripts/check_version_bumps.py confirms all packages agree on 1.51.1 and the release markers match the rel-1.51.1 branch.
However, two required checks are red on the current head, and the release-specific test suites have not run against this head. Per .agents/skills/sdk-release/SKILL.md (Phase 3) and the review guide's "Release PRs" section, the latest PR-specific Run tests, Run Examples Scripts, and Run Integration Tests must have run on the current head and be green before merge.
Material findings
1. Check package versions fails: a 1.51.1 patch bump is not valid for the breaking SDK API changes present in this head.
Job Check package versions (run 37173812127, job 111352129504) fails at the Check Python API compatibility step:
::error Breaking changes detected (6); require at least minor version bump from 1.51.x, but new is 1.51.1
::warning LocalConversation.__init__(prompt_cache_key)::Positional parameter was moved
::warning LocalConversation.__init__(file_store)::Positional parameter was moved
::warning LocalConversation.__init__(mcp_tool_provider)::Positional parameter was moved
::warning LocalConversation.__init__(profile_store_dir)::Positional parameter was moved
::warning LocalConversation.__init__(stream_callbacks)::Positional parameter was moved
::warning LocalConversation.__init__(_parent_llm_call_context)::Positional parameter was moved
Reproduced in the workspace at head 3d2172e:
$ ACP_VERSION_CHECK_BASE_REF=main uv run python .github/scripts/check_sdk_api_breakage.py
... Breaking changes detected (6); require at least minor version bump from 1.51.x, but new is 1.51.1
EXIT:1
Root cause is in openhands-sdk/openhands/sdk/conversation/impl/local_conversation.py: observability_parent_span_context was inserted into LocalConversation.__init__ before prompt_cache_key, shifting six existing keyword-or-positional parameters out of the positional slots they held in 1.51.0. This is a public-API compatibility break, and AGENTS.md requires at least a MINOR SemVer bump for breaking SDK API changes. The regression landed via #5462 after v1.51.0; the v1.51.0 release PR (#5470) passed this same check. Fix by shipping as 1.52.0 (preferred), or restore the previous parameter order so the break disappears. Until then the release cannot pass its own version guard.
2. The release test suites are stale for this head.
Run Examples Scripts (workflow 201191657) and Run Integration Tests (workflow 188677861) have no runs for head_sha=3d2172e3362b85daa404a566e805b7ea62e8b865 (API query returns total_count: 0). Their most recent runs are against 716eaf2 — the pre-merge Release v1.51.1 commit — and every integration/behavior/examples result comment on this PR is timestamped 2026-10-03, before this head was created (2026-10-04T03:20:48Z). Run tests did run and pass on the head, but the examples and integration validations required by the release checklist are missing/stale. Re-trigger them against the current head and confirm the posted comments agree with the check results.
3. build-binary-and-test (windows-latest) fails.
Job 111352129891 (run 37173812154) fails at the Test --extra-python-path custom tool import step: the negative test and the OH_EXTRA_PYTHON_PATH positive test both pass, then the step exits 1 before the --extra-python-path CLI-flag test output appears. The identical job passes on main at b66c724 (run 37205812053, 2026-10-04T13:29Z), so this is head-specific rather than a pre-existing main failure. It is not attributable to the version-only diff and may be a flaky Windows runner, but it is a red required check on this head and must be green or explicitly waived by a maintainer.
Note
Release Security Scan ran only against 716eaf2 and reported 3 approval-drift findings (changed-after-approval on #5462, #5362, #4630); no scan has run against 3d2172e, so the security-scan label is also stale for this head.
Verdict
The version strings are internally consistent, but the release head fails the repository's version/API-compatibility guard and the Windows binary check, and its release-specific suites are stale. Deferring approval to a human maintainer.
🔄 CHANGES REQUESTED
| [project] | ||
| name = "openhands-sdk" | ||
| version = "1.51.0" | ||
| version = "1.51.1" |
There was a problem hiding this comment.
Bumping openhands-sdk to 1.51.1 fails the repository's own guard: the Check Python API compatibility step of Check package versions (job 111352129504) reports Breaking changes detected (6); require at least minor version bump from 1.51.x, but new is 1.51.1. The six breaks are the LocalConversation.__init__ parameters shifted by the insertion of observability_parent_span_context (see review body). Per AGENTS.md, breaking SDK API changes require at least a MINOR bump - ship as 1.52.0 or restore the previous parameter order.
Release v1.51.1
This PR prepares the release for version 1.51.1.
Started by: @malhotra5
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.51.1and auto-generated notes, plus an explicit preamble for mergedrelease-note-requiredPRsv1.51.1version-bump-prs.ymlafter successful PyPI publication🐳 Agent Server images for this PR — GHCR package, pull/run commands, and all pushed tags (click to expand)
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdkpython-node-runtimepython-node-runtimepython-node-runtimegolang: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:3d2172e-pythonRun
All tags pushed for this build
About Multi-Architecture Support
3d2172e-python) is a multi-arch manifest supporting both amd64 and arm643d2172e-python-amd64) are also available if needed