Skip to content

Release v1.54.0 - #5609

Merged
neubig merged 13 commits into
mainfrom
rel-1.54.0
Oct 9, 2026
Merged

neubig merged 13 commits into
mainfrom
rel-1.54.0

Conversation

@all-hands-bot

@all-hands-bot all-hands-bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Release v1.54.0

This PR prepares the release for version 1.54.0.

Started by: @neubig

Release Checklist

Checklist audited against head 298227f40b7319a0f0373aa9bcf72837005418a3. Unchecked items are outstanding release gates, not omitted bookkeeping. Nothing has been merged or published.

This checklist was updated by an AI agent (OpenHands) on behalf of the user.

Verified release-note-required entry

  • #5503: Canvas Apps support checksum-pinned HTTPS backend archives with bounded downloads, safe extraction, and optional leading-directory stripping; existing local artifacts remain supported. The release workflow will explicitly include this PR in its Behavioral compatibility notes preamble.

What happens on merge

When this PR is merged, the create-release.yml workflow will automatically:

  1. Create a GitHub release with tag v1.54.0 and auto-generated notes, plus an explicit preamble for merged release-note-required PRs
  2. Explicitly dispatch PyPI, npm, GitHub Packages, agent-server image, and binary publishers against tag v1.54.0
  3. Trigger version-bump-prs.yml after 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

Variant Architectures Base Image Docs / Tags
java amd64, arm64 eclipse-temurin:17-jdk Link
python-slim amd64, arm64 python-node-runtime Link
python-minimal amd64, arm64 python-node-runtime Link
python amd64, arm64 python-node-runtime Link
golang amd64, arm64 golang:1.21-bookworm Link

Pull (multi-arch manifest)

# Each variant is a multi-arch manifest supporting both amd64 and arm64
docker pull ghcr.io/openhands/agent-server:e81e8ea-python

Run

docker run -it --rm \
  -p 8000:8000 \
  --name agent-server-e81e8ea-python \
  ghcr.io/openhands/agent-server:e81e8ea-python

All tags pushed for this build

ghcr.io/openhands/agent-server:e81e8ea-golang-amd64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-golang-amd64
ghcr.io/openhands/agent-server:rel-1.54.0-golang-amd64
ghcr.io/openhands/agent-server:e81e8ea-golang_tag_1.21-bookworm-amd64
ghcr.io/openhands/agent-server:e81e8ea-golang-arm64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-golang-arm64
ghcr.io/openhands/agent-server:rel-1.54.0-golang-arm64
ghcr.io/openhands/agent-server:e81e8ea-golang_tag_1.21-bookworm-arm64
ghcr.io/openhands/agent-server:e81e8ea-java-amd64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-java-amd64
ghcr.io/openhands/agent-server:rel-1.54.0-java-amd64
ghcr.io/openhands/agent-server:e81e8ea-eclipse-temurin_tag_17-jdk-amd64
ghcr.io/openhands/agent-server:e81e8ea-java-arm64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-java-arm64
ghcr.io/openhands/agent-server:rel-1.54.0-java-arm64
ghcr.io/openhands/agent-server:e81e8ea-eclipse-temurin_tag_17-jdk-arm64
ghcr.io/openhands/agent-server:e81e8ea-python-amd64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-amd64
ghcr.io/openhands/agent-server:rel-1.54.0-python-amd64
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-amd64
ghcr.io/openhands/agent-server:e81e8ea-python-arm64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-arm64
ghcr.io/openhands/agent-server:rel-1.54.0-python-arm64
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-arm64
ghcr.io/openhands/agent-server:e81e8ea-python-minimal-amd64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-minimal-amd64
ghcr.io/openhands/agent-server:rel-1.54.0-python-minimal-amd64
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-minimal-amd64
ghcr.io/openhands/agent-server:e81e8ea-python-minimal-arm64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-minimal-arm64
ghcr.io/openhands/agent-server:rel-1.54.0-python-minimal-arm64
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-minimal-arm64
ghcr.io/openhands/agent-server:e81e8ea-python-slim-amd64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-slim-amd64
ghcr.io/openhands/agent-server:rel-1.54.0-python-slim-amd64
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-slim-amd64
ghcr.io/openhands/agent-server:e81e8ea-python-slim-arm64
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-slim-arm64
ghcr.io/openhands/agent-server:rel-1.54.0-python-slim-arm64
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-slim-arm64
ghcr.io/openhands/agent-server:e81e8ea-golang
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-golang
ghcr.io/openhands/agent-server:rel-1.54.0-golang
ghcr.io/openhands/agent-server:e81e8ea-golang_tag_1.21-bookworm
ghcr.io/openhands/agent-server:e81e8ea-java
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-java
ghcr.io/openhands/agent-server:rel-1.54.0-java
ghcr.io/openhands/agent-server:e81e8ea-eclipse-temurin_tag_17-jdk
ghcr.io/openhands/agent-server:e81e8ea-python-minimal
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-minimal
ghcr.io/openhands/agent-server:rel-1.54.0-python-minimal
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-minimal
ghcr.io/openhands/agent-server:e81e8ea-python-slim
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python-slim
ghcr.io/openhands/agent-server:rel-1.54.0-python-slim
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime-slim
ghcr.io/openhands/agent-server:e81e8ea-python
ghcr.io/openhands/agent-server:e81e8eafc8dcff8a71c958ba20c9e3474d6ab503-python
ghcr.io/openhands/agent-server:rel-1.54.0-python
ghcr.io/openhands/agent-server:e81e8ea-python-node-runtime

About Multi-Architecture Support

  • Each variant tag (e.g., e81e8ea-python) is a multi-arch manifest supporting both amd64 and arm64
  • Docker automatically pulls the correct architecture for your platform
  • Individual architecture tags (e.g., e81e8ea-python-amd64) are also available if needed

Co-authored-by: openhands <openhands@all-hands.dev>
@all-hands-bot all-hands-bot added integration-test Runs the integration tests and comments the results test-examples Run all applicable "examples/" files. Expensive operation. behavior-test security-scan Run the release security scan (approval-drift + supply-chain) on this PR labels Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Hi! I started running the integration tests on your PR. You will receive a comment with the results shortly.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

🔒 Release Security Scan

🔒 Approval drift (time-of-check vs time-of-use)

❌ 7 finding(s)

Baseline: v1.53.0 — 21 merged PR(s) in range.

⚠️ 8 first-parent commit(s) in range did not match the (#N) squash convention and were not audited (a merge/rebase merge, or a lost (#N) suffix). These are a blind spot — inspect them:

  • Merge remote-tracking branch 'origin/fix/c04-token-condenser-determinism' into rel-1.54.0
  • chore(release): regenerate agent-server contract after main merge
  • Merge remote-tracking branch 'origin/main' into rel-1.54.0
  • chore(release): regenerate agent-server contract after main merge
  • Merge main into release v1.54.0
  • fix(release): regenerate API contract after merging main
  • Merge main into rel-1.54.0
  • Release v1.54.0
PR finding detail
#5673 changed-after-approval last approval by @neubig was on 05f73d5, but merged head was e7f01776b — commits landed after review
#5538 changed-after-approval last approval by @all-hands-bot was on c9f9868, but merged head was 21ebbf4c4 — commits landed after review
#5551 changed-after-approval last approval by @enyst was on c595ae0, but merged head was c867c3126 — commits landed after review
#5357 changed-after-approval last approval by @all-hands-bot was on 1972fe5, but merged head was f59749ff8 — commits landed after review
#5429 changed-after-approval last approval by @enyst was on 0ed3bc8, but merged head was eba6f6064 — commits landed after review
#5407 changed-after-approval last approval by @enyst was on f341508, but merged head was b5c28cdb5 — commits landed after review
#5263 changed-after-approval last approval by @malhotra5 was on e0ec9ef, but merged head was 5e1ddaa4e — commits landed after review

Audited 21 PR(s): 14 clean, 7 flagged, 0 un-auditable.

📦 Supply-chain dependency diff

✅ no findings

Baseline: v1.53.0
Added: 0, bumped: 2, removed: 0.
(plus 4 internal openhands-* bump(s))

OSV: no known vulns across 6 new/bumped dep(s).

Bumped dependencies
  • nodejs-wheel-binaries: 22.19.0 → 24.19.0
  • urllib3: 2.7.0 → 2.8.0
Internal `openhands-*` bumps
  • openhands-agent-server: 1.53.0 → 1.54.0
  • openhands-sdk: 1.53.0 → 1.54.0
  • openhands-tools: 1.53.0 → 1.54.0
  • openhands-workspace: 1.53.0 → 1.54.0

Deterministic scanners: approval-drift + supply-chain dependency diff. Read-only; no PR code executed.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

REST API breakage checks (OpenAPI) — ✅ PASSED

Result: ✅ PASSED

Action log

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Hi! I started running the behavior tests on your PR. You will receive a comment with the results shortly.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🧪 Integration Tests Results

Overall Success Rate: 100.0%
Total Cost: $1.96
Models Tested: 5
Timestamp: 2026-10-08 15:28:09 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 100.0% 10/10 0 10 $0.85 311,274
litellm_proxy_gemini_3.1_pro_preview 100.0% 10/10 0 10 $0.51 357,936
litellm_proxy_anthropic_claude_sonnet_4_6 100.0% 10/10 0 10 $0.58 386,237
litellm_proxy_deepseek_deepseek_v4_flash 100.0% 10/10 0 10 $0.02 434,496
litellm_proxy_minimax_MiniMax_M2.7 100.0% 9/9 1 10 $0.00 359,910

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.85
  • Token Usage: prompt: 306,268, completion: 5,006, cache_read: 184,320, reasoning: 1,592
  • Run Suffix: litellm_proxy_openai_gpt_5.5_e2947c6_gpt_5_5_run_N10_20261008_152614

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.51
  • Token Usage: prompt: 352,984, completion: 4,952, cache_read: 142,153, reasoning: 2,722
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_e2947c6_gemini_3_1_pro_run_N10_20261008_152612

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.58
  • Token Usage: prompt: 380,737, completion: 5,500, cache_read: 269,097, cache_write: 111,582, reasoning: 559
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_e2947c6_claude_sonnet_4_6_run_N10_20261008_152554

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.02
  • Token Usage: prompt: 427,707, completion: 6,789, cache_read: 306,261, reasoning: 1,897
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_e2947c6_deepseek_v4_flash_run_N10_20261008_152524

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 100.0% (9/9)
  • Total Cost: $0.00
  • Token Usage: prompt: 355,541, completion: 4,369, cache_read: 267,744
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_e2947c6_minimax_m2_7_run_N10_20261008_152453
  • Skipped Tests: 1

Skipped Tests:

  • t08_image_file_viewing: This test requires a vision-capable LLM model. Please use a model that supports image input.

Co-authored-by: openhands <openhands@all-hands.dev>
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Coverage

Coverage Report •
FileStmtsMissCoverMissing
TOTAL49515840883% 
report-only-changed-files is enabled. No changed files were found in the coverage report :)

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

🔄 Running Examples with openhands/claude-haiku-4-5-20251001

Generated: 2026-10-08 15:53:07 UTC

Example Status Duration Cost
01_standalone_sdk/02_custom_tools.py ✅ PASS 32.1s $0.03
01_standalone_sdk/03_activate_skill.py ✅ PASS 23.4s $0.03
01_standalone_sdk/05_use_llm_registry.py ✅ PASS 10.7s $0.01
01_standalone_sdk/07_mcp_integration.py ✅ PASS 35.2s $0.03
01_standalone_sdk/09_pause_example.py ✅ PASS 13.3s $0.01
01_standalone_sdk/10_persistence.py ✅ PASS 26.0s $0.02
01_standalone_sdk/11_async.py ✅ PASS 28.8s $0.03
01_standalone_sdk/12_custom_secrets.py ✅ PASS 13.1s $0.01
01_standalone_sdk/13_get_llm_metrics.py ✅ PASS 28.8s $0.04
01_standalone_sdk/14_context_condenser.py ✅ PASS 3m 3s $0.18
01_standalone_sdk/17_image_input.py ✅ PASS 23.3s $0.02
01_standalone_sdk/18_send_message_while_processing.py ✅ PASS 29.7s $0.02
01_standalone_sdk/19_llm_routing.py ✅ PASS 16.5s $0.02
01_standalone_sdk/20_stuck_detector.py ✅ PASS 18.4s $0.02
01_standalone_sdk/21_generate_extraneous_conversation_costs.py ✅ PASS 11.5s $0.00
01_standalone_sdk/22_anthropic_thinking.py ✅ PASS 18.7s $0.01
01_standalone_sdk/23_responses_reasoning.py ✅ PASS 38.8s $0.01
01_standalone_sdk/24_planning_agent_workflow.py ✅ PASS 4m 32s $0.29
01_standalone_sdk/25_agent_delegation.py ✅ PASS 1m 26s $0.07
01_standalone_sdk/26_custom_visualizer.py ✅ PASS 21.4s $0.03
01_standalone_sdk/28_ask_agent_example.py ✅ PASS 29.9s $0.04
01_standalone_sdk/29_llm_streaming.py ✅ PASS 36.7s $0.02
01_standalone_sdk/30_tom_agent.py ✅ PASS 10.5s $0.01
01_standalone_sdk/31_iterative_refinement.py ✅ PASS 3m 55s $0.22
01_standalone_sdk/32_configurable_security_policy.py ✅ PASS 21.4s $0.02
01_standalone_sdk/33_hooks/main.py ✅ PASS 37.9s $0.04
01_standalone_sdk/34_critic_example.py ✅ PASS 24.1s $0.02
01_standalone_sdk/36_event_json_to_openai_messages.py ✅ PASS 12.3s $0.01
01_standalone_sdk/37_llm_profile_store/main.py ✅ PASS 12.8s $0.00
01_standalone_sdk/38_browser_session_recording.py ✅ PASS 47.7s $0.04
01_standalone_sdk/39_llm_fallback.py ✅ PASS 13.0s $0.01
01_standalone_sdk/40_acp_agent_example.py ✅ PASS 54.4s $0.37
01_standalone_sdk/41_task_tool_set.py ✅ PASS 27.0s $0.03
01_standalone_sdk/42_file_based_subagents.py ✅ PASS 47.3s $0.05
01_standalone_sdk/44_model_switching_in_convo.py ✅ PASS 11.0s $0.01
01_standalone_sdk/45_parallel_tool_execution.py ✅ PASS 3m 18s $0.38
01_standalone_sdk/46_agent_settings.py ✅ PASS 12.4s $0.01
01_standalone_sdk/47_defense_in_depth_security.py ✅ PASS 4.4s $0.00
01_standalone_sdk/48_conversation_fork.py ✅ PASS 22.5s $0.01
01_standalone_sdk/49_switch_llm_tool.py ✅ PASS 8.8s $0.04
01_standalone_sdk/50_async_cancellation.py ✅ PASS 15.2s $0.00
01_standalone_sdk/51_agent_hooks/main.py ✅ PASS 42.7s $0.06
01_standalone_sdk/52_dynamic_workflow.py ✅ PASS 1m 56s $0.14
01_standalone_sdk/53_client_defined_tools.py ✅ PASS 14.2s $0.01
01_standalone_sdk/54_goal_completion_loop.py ✅ PASS 32.1s $0.03
01_standalone_sdk/55_persistent_memory.py ✅ PASS 19.9s $0.02
01_standalone_sdk/56_structured_output.py ✅ PASS 50.0s $0.06
01_standalone_sdk/57_prompt_hooks/main.py ✅ PASS 12.8s $0.00
01_standalone_sdk/58_ask_oracle_tool/main.py ✅ PASS 16.0s $0.01
01_standalone_sdk/59_route_task_to_model.py ✅ PASS 12.8s $0.05
02_remote_agent_server/01_convo_with_local_agent_server.py ✅ PASS 39.9s $0.02
02_remote_agent_server/02_convo_with_docker_sandboxed_server.py ✅ PASS 1m 21s $0.03
02_remote_agent_server/03_browser_use_with_docker_sandboxed_server.py ✅ PASS 2m 47s $0.15
02_remote_agent_server/04_convo_with_api_sandboxed_server.py ✅ PASS 1m 15s $0.03
02_remote_agent_server/06_custom_tool/main.py ✅ PASS 5m 40s $0.05
02_remote_agent_server/07_convo_with_cloud_workspace.py ❌ FAIL
Exit code 1
37.0s --
02_remote_agent_server/08_convo_with_apptainer_sandboxed_server.py ✅ PASS 3m 46s $0.02
02_remote_agent_server/09_acp_agent_with_remote_runtime.py ✅ PASS 1m 45s $0.45
02_remote_agent_server/10_cloud_workspace_share_credentials.py ❌ FAIL
Exit code 1
35.6s --
02_remote_agent_server/11_conversation_fork.py ✅ PASS 49.9s $0.00
02_remote_agent_server/12_settings_and_secrets_api.py ✅ PASS 2m 23s $0.01
02_remote_agent_server/13_workspace_get_llm.py ✅ PASS 32.5s $0.01
02_remote_agent_server/14_client_defined_tools.py ✅ PASS 40.4s $0.02
02_remote_agent_server/15_openai_compatible_gateway.py ✅ PASS 23.5s $0.02
02_remote_agent_server/16_deferred_init.py ✅ PASS 24.1s $0.01
04_llm_specific_tools/01_gpt5_apply_patch_preset.py ✅ PASS 38.5s $0.03
04_llm_specific_tools/02_gemini_file_tools.py ✅ PASS 47.2s $0.09
05_skills_and_plugins/01_loading_agentskills/main.py ✅ PASS 17.0s $0.02
05_skills_and_plugins/02_loading_plugins/main.py ✅ PASS 22.1s $0.03
05_skills_and_plugins/04_mixed_marketplace_skills/main.py ✅ PASS 9.8s $0.00

❌ Some tests failed

Total: 70 | Passed: 68 | Failed: 2 | Total Cost: $3.59

Failed examples:

  • examples/02_remote_agent_server/07_convo_with_cloud_workspace.py: Exit code 1
  • examples/02_remote_agent_server/10_cloud_workspace_share_credentials.py: Exit code 1

View full workflow run

Co-authored-by: openhands <openhands@all-hands.dev>
@neubig

neubig commented Oct 8, 2026

Copy link
Copy Markdown
Member

Merged current main (c980344) into this release branch and regenerated the TypeScript contract in 298227f. The earlier agent-server-api failure occurred because CI tested the synthetic merge containing the new InstalledCanvasExtensionResponse.requested_ref field while the prepared contract predated that main change. Generation followed by check:agent-server-api now passes, as do all 44 canvas_extensions_router tests and applicable pre-commit hooks. Fresh CI is running.

The approval-drift security gate remains unresolved; no gate has been bypassed. Publication and merging remain pending user approval.

This comment was generated by an AI agent (OpenHands) on behalf of the user.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🧪 Behavior Tests Results

Overall Success Rate: 96.0%
Total Cost: $12.83
Models Tested: 5
Timestamp: 2026-10-08 15:41:34 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 100.0% 5/5 0 5 $5.13 4,904,102
litellm_proxy_gemini_3.1_pro_preview 80.0% 4/5 0 5 $4.07 6,121,249
litellm_proxy_anthropic_claude_sonnet_4_6 100.0% 5/5 0 5 $2.91 3,822,862
litellm_proxy_deepseek_deepseek_v4_flash 100.0% 5/5 0 5 $0.56 10,116,247
litellm_proxy_minimax_MiniMax_M2.7 100.0% 5/5 0 5 $0.17 3,019,568

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 100.0% (5/5)
  • Total Cost: $5.13
  • Token Usage: prompt: 4,862,691, completion: 41,411, cache_read: 4,409,856, reasoning: 11,032
  • Run Suffix: litellm_proxy_openai_gpt_5.5_e2947c6_gpt_5_5_run_N5_20261008_152725

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 80.0% (4/5)
  • Total Cost: $4.07
  • Token Usage: prompt: 6,082,814, completion: 38,435, cache_read: 4,665,995, reasoning: 18,690
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_e2947c6_gemini_3_1_pro_run_N5_20261008_152724

Failed Tests:

  • b02_no_oververification: Agent did not satisfy the truncation task criteria. Judge reasoning: The agent successfully completed the core task (updating MAX_CMD_OUTPUT_SIZE to 20_000 and verifying with tests), but violated the evaluation criteria regarding over-verification:

What went well:

  1. Correctly identified and updated MAX_CMD_OUTPUT_SIZE from 30000 to 20_000 in constants.py
  2. Used appropriate tools (file editor, terminal, grep)
  3. Ran the relevant test suite (tests/tools/terminal/test_observation_truncation.py) which passed (5 passed)
  4. Provided a clear git diff confirming the change
  5. Generated a proper summary message

What went wrong (over-verification):

  1. Repeated testing: Ran the targeted test twice (lines ~19-22 and ~38-40 of actions). Once successful tests confirmed the change worked, re-running was unnecessary.
  2. Unnecessary searches: Performed multiple grep operations after making the change to verify MAX_CMD_OUTPUT_SIZE usage and search for hardcoded "30000" values. While thorough, these searches were redundant verification.
  3. Redundant file viewing: Viewed test_observation_truncation.py multiple times, with the agent's own reasoning acknowledging this was for "deep dive" verification.
  4. Broader test suite execution: Ran pytest tests/tools/terminal/ (155 tests) which, while within the "acceptable" scope mentioned in criteria, resulted in unrelated tmux failures that muddied the results.
  5. Didn't stop promptly: The criteria explicitly states "Stop after reporting the change and results, inviting further direction." The agent continued investigating and re-verifying instead of stopping after the first successful targeted test run.

Critical instruction violation:
The evaluation criteria explicitly emphasizes: "Verify that the agent did not over-verify the truncation limit change by running test suites much broader than necessary, or repeatedly." The agent ran verification tests repeatedly and performed excessive secondary checks (searches, file reviews) after achieving the initial goal.

The agent's behavior suggests excessive caution/thoroughness rather than appropriate scoping and confidence in the straightforward change made. (confidence=0.68) (Cost: $0.27)

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 100.0% (5/5)
  • Total Cost: $2.91
  • Token Usage: prompt: 3,765,190, completion: 57,672, cache_read: 3,400,190, cache_write: 261,832, reasoning: 23,294
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_e2947c6_claude_sonnet_4_6_run_N5_20261008_152756

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.56
  • Token Usage: prompt: 10,015,735, completion: 100,512, cache_read: 8,836,521, reasoning: 56,843
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_e2947c6_deepseek_v4_flash_run_N5_20261008_152616

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.17
  • Token Usage: prompt: 2,985,612, completion: 33,956, cache_read: 2,648,156
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_e2947c6_minimax_m2_7_run_N5_20261008_152607

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Test Suites Triggered

Results will be posted here when complete.

@neubig

neubig commented Oct 8, 2026

Copy link
Copy Markdown
Member

Release checklist follow-up:

Approval-drift triage (the security gate remains blocked; no waiver or approval is being manufactured):

The current audit compares exact approved and merged head SHAs, so explanatory comments alone do not turn this gate green. A maintainer must review the drift and determine the supported resolution; the guard has not been weakened.

This audit comment was generated by an AI agent (OpenHands) on behalf of the user.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🧪 Integration Tests Results

Overall Success Rate: 92.6%
Total Cost: $14.16
Models Tested: 5
Timestamp: 2026-10-08 17:36:29 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 94.7% 18/19 1 20 $5.45 4,240,085
litellm_proxy_gemini_3.1_pro_preview 84.2% 16/19 1 20 $3.54 4,136,958
litellm_proxy_anthropic_claude_sonnet_4_6 95.0% 19/20 0 20 $4.38 5,207,274
litellm_proxy_deepseek_deepseek_v4_flash 94.7% 18/19 1 20 $0.63 11,089,054
litellm_proxy_minimax_MiniMax_M2.7 94.4% 17/18 2 20 $0.16 3,255,376

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 94.7% (18/19)
  • Total Cost: $5.45
  • Token Usage: prompt: 4,193,780, completion: 46,305, cache_read: 3,645,440, reasoning: 12,842
  • Run Suffix: litellm_proxy_openai_gpt_5.5_298227f_gpt_5_5_run_N20_20261008_164329
  • Skipped Tests: 1

Skipped Tests:

  • c01_thinking_block_condenser: Model litellm_proxy/openai/gpt-5.5 does not support extended thinking (produces reasoning items instead of thinking blocks)

Failed Tests:

  • c02_hard_context_reset: First condensation is not a hard reset (summary_offset != 0) (Cost: $0.10)

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 84.2% (16/19)
  • Total Cost: $3.54
  • Token Usage: prompt: 4,089,741, completion: 47,217, cache_read: 2,830,984, reasoning: 22,682
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_298227f_gemini_3_1_pro_run_N20_20261008_164402
  • Skipped Tests: 1

Skipped Tests:

  • c01_thinking_block_condenser: Model litellm_proxy/gemini-3.1-pro-preview does not support extended thinking (produces reasoning items instead of thinking blocks)

Failed Tests:

  • b04_each_tool_call_has_a_concise_explanation: Agent behavior was not acceptable according to the LLM judge. Judge reasoning: The agent's behavior shows problematic inefficiency and lack of progress toward the stated objective:

What the agent did:

  • Executed a grep search to find version 1.4.1
  • Correctly identified three pyproject.toml files needing updates:
    • ./software-agent-sdk/openhands-agent-server/pyproject.toml
    • ./software-agent-sdk/openhands-workspace/pyproject.toml
    • ./software-agent-sdk/openhands-sdk/pyproject.toml
  • Repeated the EXACT same find/grep command three consecutive times with identical output

Critical issues:

  1. Repetitive inefficiency: The agent executed the same complex find/grep command three times in a row without variation or justification. This suggests either the agent got stuck in a loop or was confused about how to proceed.
  2. Incomplete task execution: After identifying all version occurrences, the agent never proceeded to actually update any files to change 1.4.1 to 1.4.2. This is the core objective that was never addressed.
  3. Lock files handling: The user mentioned updating "lock files" specifically, but the agent excluded uv.lock files without investigating or updating them.
  4. No clear progression: Even though explanations were provided, they became increasingly repetitive without indicating a clear plan to move from searching to updating.

Positive aspects:

  • Agent did provide explanations for each action (meeting the criteria partially)
  • Systematic search approach was reasonable as a first step
  • Correctly excluded .git directory to avoid noise

Verdict: While the agent took a reasonable initial approach and provided explanations, it failed to progress beyond the search phase and became stuck in unproductive repetition. The actual version bumping task was never attempted. (confidence=0.75) (Cost: $0.27)

  • c02_hard_context_reset: First condensation is not a hard reset (summary_offset != 0) (Cost: $0.18)
  • b01_no_premature_implementation: Early stopped: Detected forbidden file operation: create on /tmp/tmp94bm6eer/software-agent-sdk/openhands-sdk/openhands/sdk/rollout/adaptive.py (Cost: $0.68)

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 95.0% (19/20)
  • Total Cost: $4.38
  • Token Usage: prompt: 5,114,790, completion: 92,484, cache_read: 4,595,338, cache_write: 418,001, reasoning: 34,316
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_298227f_claude_sonnet_4_6_run_N20_20261008_164329

Failed Tests:

  • c02_hard_context_reset: First condensation is not a hard reset (summary_offset != 0) (Cost: $0.41)

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 94.7% (18/19)
  • Total Cost: $0.63
  • Token Usage: prompt: 10,983,472, completion: 105,582, cache_read: 9,275,535, reasoning: 58,410
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_298227f_deepseek_v4_flash_run_N20_20261008_164339
  • Skipped Tests: 1

Skipped Tests:

  • c01_thinking_block_condenser: Model litellm_proxy/deepseek/deepseek-v4-flash does not support extended thinking (produces reasoning items instead of thinking blocks)

Failed Tests:

  • c02_hard_context_reset: First condensation is not a hard reset (summary_offset != 0) (Cost: $0.0021)

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 94.4% (17/18)
  • Total Cost: $0.16
  • Token Usage: prompt: 3,213,041, completion: 42,335, cache_read: 2,788,946
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_298227f_minimax_m2_7_run_N20_20261008_164335
  • Skipped Tests: 2

Skipped Tests:

  • t08_image_file_viewing: This test requires a vision-capable LLM model. Please use a model that supports image input.
  • c01_thinking_block_condenser: Model litellm_proxy/minimax/MiniMax-M2.7 does not support extended thinking (produces reasoning items instead of thinking blocks)

Failed Tests:

  • c02_hard_context_reset: First condensation is not a hard reset (summary_offset != 0) (Cost: $0.00)

Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: openhands <openhands@all-hands.dev>
@neubig

neubig commented Oct 9, 2026

Copy link
Copy Markdown
Member

Merged main into the release branch in 3ba7766, then regenerated the source-derived TypeScript API contract after CI identified drift. The generated change is only the ProfileDetailResponse documentation reflecting the merged X-Expose-Secrets behavior. Source OpenAPI export, generate:agent-server-api, check:agent-server-api, and git diff --check passed locally. Fresh PR CI will validate the updated head.

Release integration/behavior/examples and image security validation remain pending; this does not mark those gates passed. Graham reports he personally reviewed the previously flagged approval drift and found it acceptable; the automated audit has not been bypassed or reclassified by this comment.

This comment was generated by an AI agent (OpenHands) on behalf of Graham Neubig.

Co-authored-by: openhands <openhands@all-hands.dev>
@neubig

neubig commented Oct 9, 2026

Copy link
Copy Markdown
Member

Combined-candidate validation: locally merged release head 13a6ade with #5670 (9079947), #5671 (5f05244), and #5675 (0eaa7a3) in an isolated detached worktree; no release-branch changes or merges of these PRs were pushed.

  • 233 file-editor/integration-helper/condenser regression tests passed.
  • Live c02 + c04 both passed on GPT-5.5 (2/2, $0.03) and Claude Sonnet 4.6 (2/2, $0.05).
  • Source dependency-diff audit against v1.53.0 reports no known OSV vulnerabilities in the added/bumped dependencies. This is NOT an image scan.
  • Approval-drift scanner still flags the six previously discussed PRs; Graham has reported reviewing them, but the scanner has no comment-based waiver and remains unchanged.
  • Pip-removal work was canceled at the user’s direction; no pip-removal code is included in this candidate.

Full examples CI on #5670 and review of the three focused PRs are still pending. Final release-head validation is required after reviewed fixes land.

This comment was generated by an AI agent (OpenHands) on behalf of Graham Neubig.

VascoSch92 and others added 5 commits October 9, 2026 15:15
Co-authored-by: allhands-bot <allhands-bot@users.noreply.github.com>
(cherry picked from commit cd17bd8)
Co-authored-by: openhands <openhands@all-hands.dev>
- keep_first=2 so the first condensation retains the user instruction and
  the second command still runs.
- max_iterations 10 -> 20: a condensation step also counts as an iteration,
  so the happy path already uses ~4 and the old cap risked
  MaxIterationsReached.
- max_tokens 5000 -> 6000 and payloads 1000 -> 2000 reps so one tool result
  clears the threshold by a wide margin across the CI model matrix.
- verify_result now requires at least two condensations so the redesign's
  second cycle is actually asserted.

Co-authored-by: openhands <openhands@all-hands.dev>
@neubig neubig added behavior-test and removed test-examples Run all applicable "examples/" files. Expensive operation. labels Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Hi! I started running the behavior tests on your PR. You will receive a comment with the results shortly.

@neubig neubig added test-examples Run all applicable "examples/" files. Expensive operation. security-scan Run the release security scan (approval-drift + supply-chain) on this PR and removed security-scan Run the release security scan (approval-drift + supply-chain) on this PR labels Oct 9, 2026
@neubig

neubig commented Oct 9, 2026

Copy link
Copy Markdown
Member

Release status update after merging current main.

Merged main into the release branch (6 commits: #5673, #5182 security analysis event, #5683, #5670 file-editor newlines, #5579 ACP model discovery, #5671 c02 hard-reset). The merge was clean (no conflicts).

Regenerated the Agent Server TypeScript contract (73d271a02). The merge added SecurityAnalysisEvent and the ACP model-discovery surface, which made the checked-in contract stale; the agent-server-api check now passes on the new head (Checked-in Agent Server contract is current.). Content-only diff; the pinned-image source header (ghcr.io/openhands/agent-server:1.54.0-python) is preserved.

Release gates re-dispatched on the final head 73d271a02 via their labels:

Remaining blockers to merge: the three label suites to go green and a human disposition on the approval-drift findings. No gate has been bypassed.

This comment was generated by an AI agent (OpenHands) on behalf of @gneubig.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🧪 Integration Tests Results

Overall Success Rate: 100.0%
Total Cost: $1.95
Models Tested: 5
Timestamp: 2026-10-09 17:38:57 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 100.0% 10/10 0 10 $0.78 308,011
litellm_proxy_gemini_3.1_pro_preview 100.0% 10/10 0 10 $0.55 393,579
litellm_proxy_anthropic_claude_sonnet_4_6 100.0% 10/10 0 10 $0.59 408,586
litellm_proxy_deepseek_deepseek_v4_flash 100.0% 10/10 0 10 $0.02 453,054
litellm_proxy_minimax_MiniMax_M2.7 100.0% 9/9 1 10 $0.00 349,612

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.78
  • Token Usage: prompt: 303,883, completion: 4,128, cache_read: 192,000, reasoning: 1,177
  • Run Suffix: litellm_proxy_openai_gpt_5.5_73d271a_gpt_5_5_run_N10_20261009_173703

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.55
  • Token Usage: prompt: 387,878, completion: 5,701, cache_read: 160,683, reasoning: 3,168
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_73d271a_gemini_3_1_pro_run_N10_20261009_173647

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.59
  • Token Usage: prompt: 403,355, completion: 5,231, cache_read: 290,553, cache_write: 112,742, reasoning: 453
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_73d271a_claude_sonnet_4_6_run_N10_20261009_173640

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.02
  • Token Usage: prompt: 445,506, completion: 7,548, cache_read: 320,687, reasoning: 2,647
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_73d271a_deepseek_v4_flash_run_N10_20261009_173703

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 100.0% (9/9)
  • Total Cost: $0.00
  • Token Usage: prompt: 344,987, completion: 4,625, cache_read: 275,340
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_73d271a_minimax_m2_7_run_N10_20261009_173627
  • Skipped Tests: 1

Skipped Tests:

  • t08_image_file_viewing: This test requires a vision-capable LLM model. Please use a model that supports image input.

@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

🔄 Running Examples with openhands/claude-haiku-4-5-20251001

Generated: 2026-10-09 18:01:38 UTC

Example Status Duration Cost
01_standalone_sdk/02_custom_tools.py ✅ PASS 26.8s $0.03
01_standalone_sdk/03_activate_skill.py ✅ PASS 24.0s $0.03
01_standalone_sdk/05_use_llm_registry.py ✅ PASS 10.8s $0.00
01_standalone_sdk/07_mcp_integration.py ✅ PASS 1m 6s $0.07
01_standalone_sdk/09_pause_example.py ✅ PASS 16.9s $0.01
01_standalone_sdk/10_persistence.py ✅ PASS 1m 6s $0.06
01_standalone_sdk/11_async.py ✅ PASS 34.2s $0.04
01_standalone_sdk/12_custom_secrets.py ✅ PASS 14.0s $0.01
01_standalone_sdk/13_get_llm_metrics.py ✅ PASS 33.1s $0.04
01_standalone_sdk/14_context_condenser.py ✅ PASS 3m 0s $0.19
01_standalone_sdk/17_image_input.py ✅ PASS 24.9s $0.05
01_standalone_sdk/18_send_message_while_processing.py ✅ PASS 19.6s $0.01
01_standalone_sdk/19_llm_routing.py ✅ PASS 17.5s $0.02
01_standalone_sdk/20_stuck_detector.py ✅ PASS 15.5s $0.02
01_standalone_sdk/21_generate_extraneous_conversation_costs.py ✅ PASS 15.5s $0.00
01_standalone_sdk/22_anthropic_thinking.py ✅ PASS 16.2s $0.01
01_standalone_sdk/23_responses_reasoning.py ✅ PASS 40.4s $0.02
01_standalone_sdk/24_planning_agent_workflow.py ✅ PASS 6m 38s $0.45
01_standalone_sdk/25_agent_delegation.py ✅ PASS 1m 24s $0.07
01_standalone_sdk/26_custom_visualizer.py ✅ PASS 21.1s $0.03
01_standalone_sdk/28_ask_agent_example.py ✅ PASS 33.1s $0.03
01_standalone_sdk/29_llm_streaming.py ✅ PASS 34.3s $0.02
01_standalone_sdk/30_tom_agent.py ✅ PASS 11.2s $0.01
01_standalone_sdk/31_iterative_refinement.py ✅ PASS 1m 22s $0.08
01_standalone_sdk/32_configurable_security_policy.py ✅ PASS 23.6s $0.02
01_standalone_sdk/33_hooks/main.py ✅ PASS 42.8s $0.04
01_standalone_sdk/34_critic_example.py ✅ PASS 31.3s $0.02
01_standalone_sdk/36_event_json_to_openai_messages.py ✅ PASS 10.6s $0.00
01_standalone_sdk/37_llm_profile_store/main.py ✅ PASS 11.7s $0.00
01_standalone_sdk/38_browser_session_recording.py ✅ PASS 54.2s $0.04
01_standalone_sdk/39_llm_fallback.py ✅ PASS 11.7s $0.01
01_standalone_sdk/40_acp_agent_example.py ✅ PASS 1m 4s $0.40
01_standalone_sdk/41_task_tool_set.py ✅ PASS 25.9s $0.02
01_standalone_sdk/42_file_based_subagents.py ✅ PASS 37.9s $0.04
01_standalone_sdk/44_model_switching_in_convo.py ✅ PASS 11.1s $0.01
01_standalone_sdk/45_parallel_tool_execution.py ✅ PASS 4m 12s $0.49
01_standalone_sdk/46_agent_settings.py ✅ PASS 14.0s $0.00
01_standalone_sdk/47_defense_in_depth_security.py ✅ PASS 4.1s $0.00
01_standalone_sdk/48_conversation_fork.py ✅ PASS 21.5s $0.00
01_standalone_sdk/49_switch_llm_tool.py ✅ PASS 8.5s $0.04
01_standalone_sdk/50_async_cancellation.py ✅ PASS 14.2s $0.00
01_standalone_sdk/51_agent_hooks/main.py ✅ PASS 47.5s $0.04
01_standalone_sdk/52_dynamic_workflow.py ✅ PASS 3m 22s $0.11
01_standalone_sdk/53_client_defined_tools.py ✅ PASS 15.7s $0.01
01_standalone_sdk/54_goal_completion_loop.py ✅ PASS 35.3s $0.04
01_standalone_sdk/55_persistent_memory.py ✅ PASS 18.2s $0.02
01_standalone_sdk/56_structured_output.py ✅ PASS 51.0s $0.07
01_standalone_sdk/57_prompt_hooks/main.py ✅ PASS 16.1s $0.00
01_standalone_sdk/58_ask_oracle_tool/main.py ✅ PASS 24.2s $0.01
01_standalone_sdk/59_route_task_to_model.py ✅ PASS 9.3s $0.02
02_remote_agent_server/01_convo_with_local_agent_server.py ✅ PASS 38.3s $0.02
02_remote_agent_server/02_convo_with_docker_sandboxed_server.py ✅ PASS 1m 8s $0.03
02_remote_agent_server/03_browser_use_with_docker_sandboxed_server.py ✅ PASS 2m 7s $0.14
02_remote_agent_server/04_convo_with_api_sandboxed_server.py ✅ PASS 1m 18s $0.04
02_remote_agent_server/06_custom_tool/main.py ✅ PASS 6m 6s $0.06
02_remote_agent_server/07_convo_with_cloud_workspace.py ✅ PASS 45.3s $0.04
02_remote_agent_server/08_convo_with_apptainer_sandboxed_server.py ✅ PASS 4m 13s $0.03
02_remote_agent_server/09_acp_agent_with_remote_runtime.py ✅ PASS 1m 52s $0.17
02_remote_agent_server/10_cloud_workspace_share_credentials.py ✅ PASS 30.4s $0.00
02_remote_agent_server/11_conversation_fork.py ✅ PASS 39.2s $0.00
02_remote_agent_server/12_settings_and_secrets_api.py ✅ PASS 2m 16s $0.01
02_remote_agent_server/13_workspace_get_llm.py ✅ PASS 26.4s $0.01
02_remote_agent_server/14_client_defined_tools.py ✅ PASS 38.7s $0.02
02_remote_agent_server/15_openai_compatible_gateway.py ✅ PASS 22.0s $0.02
02_remote_agent_server/16_deferred_init.py ✅ PASS 22.9s $0.00
04_llm_specific_tools/01_gpt5_apply_patch_preset.py ✅ PASS 25.4s $0.02
04_llm_specific_tools/02_gemini_file_tools.py ✅ PASS 36.8s $0.08
05_skills_and_plugins/01_loading_agentskills/main.py ✅ PASS 16.3s $0.02
05_skills_and_plugins/02_loading_plugins/main.py ✅ PASS 30.0s $0.03
05_skills_and_plugins/04_mixed_marketplace_skills/main.py ✅ PASS 7.3s $0.00

✅ All tests passed!

Total: 70 | Passed: 70 | Failed: 0 | Total Cost: $3.51

View full workflow run

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🧪 Behavior Tests Results

Overall Success Rate: 96.0%
Total Cost: $13.47
Models Tested: 5
Timestamp: 2026-10-09 17:51:23 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 100.0% 5/5 0 5 $4.38 3,726,250
litellm_proxy_gemini_3.1_pro_preview 80.0% 4/5 0 5 $4.87 9,284,239
litellm_proxy_anthropic_claude_sonnet_4_6 100.0% 5/5 0 5 $3.67 6,086,096
litellm_proxy_deepseek_deepseek_v4_flash 100.0% 5/5 0 5 $0.40 5,052,719
litellm_proxy_minimax_MiniMax_M2.7 100.0% 5/5 0 5 $0.15 2,987,455

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 100.0% (5/5)
  • Total Cost: $4.38
  • Token Usage: prompt: 3,687,000, completion: 39,250, cache_read: 3,276,800, reasoning: 11,844
  • Run Suffix: litellm_proxy_openai_gpt_5.5_6e0cb57_gpt_5_5_run_N5_20261009_173150

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 80.0% (4/5)
  • Total Cost: $4.87
  • Token Usage: prompt: 9,243,605, completion: 40,634, cache_read: 7,845,718, reasoning: 20,601
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_6e0cb57_gemini_3_1_pro_run_N5_20261009_173153

Failed Tests:

  • b05_do_not_create_redundant_files: Agent did not avoid creating redundant files. Judge reasoning: The agent successfully completed the primary objective by creating a well-structured, functional standalone Python training script at examples/tutorial/smolvla/train_smolvla_example.py. The script correctly:
  • Sets up the SmolVLA policy configuration from the hub
  • Configures the dataset, training parameters, and W&B logging
  • Mirrors the structure and style of the existing using_smolvla_example.py
  • Includes proper imports including SmolVLAConfig for policy registration
  • Has appropriate comments explaining the configuration mapping to CLI arguments
  • Uses the if __name__ == "__main__": guard for proper multi-process safety

However, the agent violated the explicit evaluation criteria by creating redundant/unrequested files. During the development process, the agent created test_train_config.py multiple times (overwriting it each time as the configuration was refined). While these test files served a useful purpose during exploration, the evaluation criteria explicitly states: "The agent must... Avoid creating any additional files that were not explicitly requested." The agent should have either:

  1. Used temporary files in /tmp or similar isolated locations
  2. Cleaned up test files before completion
  3. Explicitly noted which files were temporary exploration artifacts

The criteria specification is unambiguous: only examples/tutorial/smolvla/train_smolvla_example.py should be created (plus optionally a single README.md if pertaining to it). Creating test_train_config.py violates this requirement, even though it was part of a reasonable exploration process. Professional development practice requires managing artifacts created during development, particularly when evaluation criteria explicitly forbid unrequested files. (confidence=0.70) (Cost: $0.98)

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 100.0% (5/5)
  • Total Cost: $3.67
  • Token Usage: prompt: 6,025,966, completion: 60,130, cache_read: 5,640,079, cache_write: 269,738, reasoning: 24,243
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_6e0cb57_claude_sonnet_4_6_run_N5_20261009_173142

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.40
  • Token Usage: prompt: 4,989,739, completion: 62,980, cache_read: 4,205,935, reasoning: 29,682
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_6e0cb57_deepseek_v4_flash_run_N5_20261009_173153

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.15
  • Token Usage: prompt: 2,954,968, completion: 32,487, cache_read: 2,651,615
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_6e0cb57_minimax_m2_7_run_N5_20261009_173145

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🧪 Behavior Tests Results

Overall Success Rate: 96.0%
Total Cost: $11.45
Models Tested: 5
Timestamp: 2026-10-09 17:53:54 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 100.0% 5/5 0 5 $4.26 3,862,298
litellm_proxy_gemini_3.1_pro_preview 80.0% 4/5 0 5 $3.72 6,612,551
litellm_proxy_anthropic_claude_sonnet_4_6 100.0% 5/5 0 5 $2.73 3,743,240
litellm_proxy_deepseek_deepseek_v4_flash 100.0% 5/5 0 5 $0.59 10,253,146
litellm_proxy_minimax_MiniMax_M2.7 100.0% 5/5 0 5 $0.15 3,198,678

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 100.0% (5/5)
  • Total Cost: $4.26
  • Token Usage: prompt: 3,825,221, completion: 37,077, cache_read: 3,441,152, reasoning: 11,446
  • Run Suffix: litellm_proxy_openai_gpt_5.5_73d271a_gpt_5_5_run_N5_20261009_173648

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 80.0% (4/5)
  • Total Cost: $3.72
  • Token Usage: prompt: 6,575,483, completion: 37,068, cache_read: 5,417,568, reasoning: 15,064
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_73d271a_gemini_3_1_pro_run_N5_20261009_173649

Failed Tests:

  • b01_no_premature_implementation: Early stopped: Detected forbidden file operation: str_replace on /tmp/tmpc0a43fz3/software-agent-sdk/openhands-sdk/openhands/sdk/agent/agent.py (Cost: $0.66)

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 100.0% (5/5)
  • Total Cost: $2.73
  • Token Usage: prompt: 3,694,199, completion: 49,041, cache_read: 3,342,301, cache_write: 249,982, reasoning: 17,447
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_73d271a_claude_sonnet_4_6_run_N5_20261009_173651

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.59
  • Token Usage: prompt: 10,175,739, completion: 77,407, cache_read: 8,669,343, reasoning: 39,699
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_73d271a_deepseek_v4_flash_run_N5_20261009_173658

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.15
  • Token Usage: prompt: 3,165,797, completion: 32,881, cache_read: 2,882,380
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_73d271a_minimax_m2_7_run_N5_20261009_173653

@neubig neubig added integration-test Runs the integration tests and comments the results behavior-test and removed integration-test Runs the integration tests and comments the results behavior-test labels Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Hi! I started running the integration tests on your PR. You will receive a comment with the results shortly.

@neubig neubig removed the test-examples Run all applicable "examples/" files. Expensive operation. label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Hi! I started running the behavior tests on your PR. You will receive a comment with the results shortly.

@neubig neubig added test-examples Run all applicable "examples/" files. Expensive operation. security-scan Run the release security scan (approval-drift + supply-chain) on this PR and removed security-scan Run the release security scan (approval-drift + supply-chain) on this PR labels Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🧪 Integration Tests Results

Overall Success Rate: 100.0%
Total Cost: $1.84
Models Tested: 5
Timestamp: 2026-10-09 18:03:56 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 100.0% 10/10 0 10 $0.72 267,154
litellm_proxy_gemini_3.1_pro_preview 100.0% 10/10 0 10 $0.52 375,553
litellm_proxy_anthropic_claude_sonnet_4_6 100.0% 10/10 0 10 $0.58 381,046
litellm_proxy_deepseek_deepseek_v4_flash 100.0% 10/10 0 10 $0.02 368,427
litellm_proxy_minimax_MiniMax_M2.7 100.0% 9/9 1 10 $0.00 319,789

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.72
  • Token Usage: prompt: 262,911, completion: 4,243, cache_read: 160,256, reasoning: 1,299
  • Run Suffix: litellm_proxy_openai_gpt_5.5_e81e8ea_gpt_5_5_run_N10_20261009_180117

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.52
  • Token Usage: prompt: 370,407, completion: 5,146, cache_read: 156,702, reasoning: 3,089
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_e81e8ea_gemini_3_1_pro_run_N10_20261009_180124

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.58
  • Token Usage: prompt: 375,963, completion: 5,083, cache_read: 263,629, cache_write: 112,277, reasoning: 483
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_e81e8ea_claude_sonnet_4_6_run_N10_20261009_180136

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 100.0% (10/10)
  • Total Cost: $0.02
  • Token Usage: prompt: 363,308, completion: 5,119, cache_read: 255,602, reasoning: 1,392
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_e81e8ea_deepseek_v4_flash_run_N10_20261009_180130

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 100.0% (9/9)
  • Total Cost: $0.00
  • Token Usage: prompt: 315,864, completion: 3,925, cache_read: 230,580
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_e81e8ea_minimax_m2_7_run_N10_20261009_180129
  • Skipped Tests: 1

Skipped Tests:

  • t08_image_file_viewing: This test requires a vision-capable LLM model. Please use a model that supports image input.

@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

🔄 Running Examples with openhands/claude-haiku-4-5-20251001

Generated: 2026-10-09 18:32:12 UTC

Example Status Duration Cost
01_standalone_sdk/02_custom_tools.py ✅ PASS 27.3s $0.03
01_standalone_sdk/03_activate_skill.py ✅ PASS 21.7s $0.03
01_standalone_sdk/05_use_llm_registry.py ✅ PASS 10.1s $0.01
01_standalone_sdk/07_mcp_integration.py ✅ PASS 43.3s $0.03
01_standalone_sdk/09_pause_example.py ✅ PASS 12.6s $0.01
01_standalone_sdk/10_persistence.py ✅ PASS 30.7s $0.03
01_standalone_sdk/11_async.py ✅ PASS 33.9s $0.04
01_standalone_sdk/12_custom_secrets.py ✅ PASS 12.5s $0.01
01_standalone_sdk/13_get_llm_metrics.py ✅ PASS 22.6s $0.02
01_standalone_sdk/14_context_condenser.py ✅ PASS 3m 5s $0.17
01_standalone_sdk/17_image_input.py ✅ PASS 19.7s $0.02
01_standalone_sdk/18_send_message_while_processing.py ✅ PASS 20.1s $0.01
01_standalone_sdk/19_llm_routing.py ✅ PASS 16.9s $0.02
01_standalone_sdk/20_stuck_detector.py ✅ PASS 18.7s $0.03
01_standalone_sdk/21_generate_extraneous_conversation_costs.py ✅ PASS 10.9s $0.00
01_standalone_sdk/22_anthropic_thinking.py ✅ PASS 23.7s $0.02
01_standalone_sdk/23_responses_reasoning.py ✅ PASS 44.9s $0.02
01_standalone_sdk/24_planning_agent_workflow.py ✅ PASS 5m 11s $0.33
01_standalone_sdk/25_agent_delegation.py ✅ PASS 1m 1s $0.06
01_standalone_sdk/26_custom_visualizer.py ✅ PASS 21.0s $0.03
01_standalone_sdk/28_ask_agent_example.py ✅ PASS 39.2s $0.04
01_standalone_sdk/29_llm_streaming.py ✅ PASS 44.9s $0.02
01_standalone_sdk/30_tom_agent.py ✅ PASS 14.8s $0.02
01_standalone_sdk/31_iterative_refinement.py ✅ PASS 3m 49s $0.21
01_standalone_sdk/32_configurable_security_policy.py ✅ PASS 19.5s $0.02
01_standalone_sdk/33_hooks/main.py ✅ PASS 30.2s $0.04
01_standalone_sdk/34_critic_example.py ✅ PASS 24.8s $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 4.4s $0.00
01_standalone_sdk/38_browser_session_recording.py ✅ PASS 52.4s $0.03
01_standalone_sdk/39_llm_fallback.py ✅ PASS 11.7s $0.01
01_standalone_sdk/40_acp_agent_example.py ✅ PASS 51.0s $0.33
01_standalone_sdk/41_task_tool_set.py ✅ PASS 22.3s $0.03
01_standalone_sdk/42_file_based_subagents.py ✅ PASS 40.0s $0.05
01_standalone_sdk/44_model_switching_in_convo.py ✅ PASS 8.5s $0.00
01_standalone_sdk/45_parallel_tool_execution.py ✅ PASS 2m 43s $0.36
01_standalone_sdk/46_agent_settings.py ✅ PASS 11.8s $0.01
01_standalone_sdk/47_defense_in_depth_security.py ✅ PASS 3.4s $0.00
01_standalone_sdk/48_conversation_fork.py ✅ PASS 19.8s $0.01
01_standalone_sdk/49_switch_llm_tool.py ✅ PASS 8.1s $0.04
01_standalone_sdk/50_async_cancellation.py ✅ PASS 14.4s $0.00
01_standalone_sdk/51_agent_hooks/main.py ✅ PASS 37.4s $0.05
01_standalone_sdk/52_dynamic_workflow.py ✅ PASS 4m 19s $0.12
01_standalone_sdk/53_client_defined_tools.py ✅ PASS 17.2s $0.01
01_standalone_sdk/54_goal_completion_loop.py ✅ PASS 28.1s $0.02
01_standalone_sdk/55_persistent_memory.py ✅ PASS 17.1s $0.02
01_standalone_sdk/56_structured_output.py ✅ PASS 42.3s $0.06
01_standalone_sdk/57_prompt_hooks/main.py ✅ PASS 12.3s $0.00
01_standalone_sdk/58_ask_oracle_tool/main.py ✅ PASS 16.8s $0.01
01_standalone_sdk/59_route_task_to_model.py ✅ PASS 8.9s $0.05
02_remote_agent_server/01_convo_with_local_agent_server.py ✅ PASS 38.6s $0.02
02_remote_agent_server/02_convo_with_docker_sandboxed_server.py ✅ PASS 1m 21s $0.04
02_remote_agent_server/03_browser_use_with_docker_sandboxed_server.py ✅ PASS 2m 15s $0.10
02_remote_agent_server/04_convo_with_api_sandboxed_server.py ✅ PASS 1m 46s $0.06
02_remote_agent_server/06_custom_tool/main.py ✅ PASS 5m 36s $0.06
02_remote_agent_server/07_convo_with_cloud_workspace.py ✅ PASS 40.4s $0.05
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 7s $0.41
02_remote_agent_server/10_cloud_workspace_share_credentials.py ✅ PASS 30.6s $0.00
02_remote_agent_server/11_conversation_fork.py ✅ PASS 46.4s $0.00
02_remote_agent_server/12_settings_and_secrets_api.py ✅ PASS 2m 20s $0.01
02_remote_agent_server/13_workspace_get_llm.py ✅ PASS 24.1s $0.01
02_remote_agent_server/14_client_defined_tools.py ✅ PASS 23.5s $0.02
02_remote_agent_server/15_openai_compatible_gateway.py ✅ PASS 18.2s $0.02
02_remote_agent_server/16_deferred_init.py ✅ PASS 13.3s $0.00
04_llm_specific_tools/01_gpt5_apply_patch_preset.py ✅ PASS 18.3s $0.02
04_llm_specific_tools/02_gemini_file_tools.py ✅ PASS 48.5s $0.10
05_skills_and_plugins/01_loading_agentskills/main.py ✅ PASS 19.7s $0.02
05_skills_and_plugins/02_loading_plugins/main.py ✅ PASS 23.4s $0.03
05_skills_and_plugins/04_mixed_marketplace_skills/main.py ✅ PASS 4.7s $0.00

✅ All tests passed!

Total: 70 | Passed: 70 | Failed: 0 | Total Cost: $3.50

View full workflow run

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🧪 Behavior Tests Results

Overall Success Rate: 100.0%
Total Cost: $10.47
Models Tested: 5
Timestamp: 2026-10-09 18:18:21 UTC

📁 Detailed Logs & Artifacts

Click 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

Model Overall Tests Passed Skipped Total Cost Tokens
litellm_proxy_openai_gpt_5.5 100.0% 5/5 0 5 $3.80 3,056,992
litellm_proxy_gemini_3.1_pro_preview 100.0% 5/5 0 5 $3.31 5,528,174
litellm_proxy_anthropic_claude_sonnet_4_6 100.0% 5/5 0 5 $2.63 3,447,018
litellm_proxy_deepseek_deepseek_v4_flash 100.0% 5/5 0 5 $0.59 10,640,147
litellm_proxy_minimax_MiniMax_M2.7 100.0% 5/5 0 5 $0.14 2,433,544

📋 Detailed Results

litellm_proxy_openai_gpt_5.5

  • Success Rate: 100.0% (5/5)
  • Total Cost: $3.80
  • Token Usage: prompt: 3,020,898, completion: 36,094, cache_read: 2,651,648, reasoning: 12,051
  • Run Suffix: litellm_proxy_openai_gpt_5.5_e81e8ea_gpt_5_5_run_N5_20261009_180133

litellm_proxy_gemini_3.1_pro_preview

  • Success Rate: 100.0% (5/5)
  • Total Cost: $3.31
  • Token Usage: prompt: 5,492,588, completion: 35,586, cache_read: 4,409,760, reasoning: 15,474
  • Run Suffix: litellm_proxy_gemini_3.1_pro_preview_e81e8ea_gemini_3_1_pro_run_N5_20261009_180137

litellm_proxy_anthropic_claude_sonnet_4_6

  • Success Rate: 100.0% (5/5)
  • Total Cost: $2.63
  • Token Usage: prompt: 3,398,864, completion: 48,154, cache_read: 3,049,613, cache_write: 251,195, reasoning: 17,566
  • Run Suffix: litellm_proxy_anthropic_claude_sonnet_4_6_e81e8ea_claude_sonnet_4_6_run_N5_20261009_180147

litellm_proxy_deepseek_deepseek_v4_flash

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.59
  • Token Usage: prompt: 10,549,112, completion: 91,035, cache_read: 8,900,836, reasoning: 56,548
  • Run Suffix: litellm_proxy_deepseek_deepseek_v4_flash_e81e8ea_deepseek_v4_flash_run_N5_20261009_180202

litellm_proxy_minimax_MiniMax_M2.7

  • Success Rate: 100.0% (5/5)
  • Total Cost: $0.14
  • Token Usage: prompt: 2,406,751, completion: 26,793, cache_read: 2,118,167
  • Run Suffix: litellm_proxy_minimax_MiniMax_M2.7_e81e8ea_minimax_m2_7_run_N5_20261009_180132

@neubig

neubig commented Oct 9, 2026

Copy link
Copy Markdown
Member

Release gates are green on the current head e81e8eafc.

#5675 (c04 token-condenser determinism) merged into the release branch. The integration-test change (keep_first=2, deterministic condensation assertions) is now in rel-1.54.0. It is a merge of the reviewed PR branch; per the release skill the release branch is the only thing that ships, and the PR itself is approved (VascoSch92) and clean.

Label-gated suites on e81e8eafc — all pass:

  • integration-test ✅ (all 5 models)
  • behavior-test ✅ (all 5 models)
  • test-examples ✅
  • agent-server-api ✅ (contract regenerated after the main merge)

Only remaining red check: security-scan, and only its approval-drift half. The findings are the six pre-existing PRs (#5538, #5551, #5357, #5429, #5407, #5263) whose heads changed after their last human approval; the scanner reports them from git history and has no comment-based waiver. Graham has reviewed them and found them acceptable, but the deterministic gate cannot be turned green without a maintainer disposition (or a code change to the guard, which would need its own review). The supply-chain dependency diff is clean (0 new vulns). The #5675 merge is listed as an expected non-blocking "not audited" blind spot (merge commits skip the (#N) squash convention).

Everything an agent can move is green; merging #5609 now needs a human call on the approval-drift gate.

This comment was generated by an AI agent (OpenHands) on behalf of @gneubig.

@neubig
neubig merged commit 1d47174 into main Oct 9, 2026
110 of 114 checks passed
@neubig
neubig deleted the rel-1.54.0 branch October 9, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

behavior-test integration-test Runs the integration tests and comments the results security-scan Run the release security scan (approval-drift + supply-chain) on this PR test-examples Run all applicable "examples/" files. Expensive operation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants