Skip to content

v1.15.0

Choose a tag to compare

@xingyaoww xingyaoww released this 26 Mar 15:01
3635cda
  • Stronger API stability and upgrade safeguards, with clearer deprecation expectations and better protection against breaking changes.
  • Expanded RemoteRuntime capabilities and reliability, including improved ACP-based workflows and more dependable remote state handling.
  • New developer-facing SDK features, such as parallel tool execution, additional public APIs, richer plugin metadata, and better workspace credential inheritance.
  • Broader model compatibility and better reasoning-model support, including newly verified models and fixes for provider-specific behavior.
  • Faster, more reliable builds and CI, plus a range of bug fixes and dependency updates that improve day-to-day stability.

What's Changed

  • Enable ACPAgent on RemoteRuntime API by @simonrosenberg in #2190
  • Make API breakage workflows fail loudly by @enyst in #2432
  • Clarify REST contract deprecation policy by @enyst in #2433
  • Highlight API breakage check comments more clearly by @enyst in #2434
  • Enforce REST deprecation deadlines by @enyst in #2435
  • Remove stale Python API workflow env by @enyst in #2442
  • Run API breakage checks on push to main by @enyst in #2443
  • Add rich package version 14.3.3 to dependency constraints by @yitao-li in #2414
  • Export TokenUsage, page_iterator, and AsyncRemoteWorkspace as public SDK APIs by @enyst in #2445
  • Fix apptainer workspace cleanup: kill zombie child processes. by @adityasoni9998 in #2450
  • chore(deps): bump pyjwt from 2.11.0 to 2.12.0 by @dependabot[bot] in #2448
  • Add docstring guidelines and fix key docstrings for MDX compatibility by @rbren in #2452
  • ci: guard package version bumps outside release PRs by @enyst in #2457
  • Fix: Add tags to root endpoint for OpenAPI spec by @rbren in #2458
  • Fix Python selection in version-bump PR workflow by @neubig in #2430
  • Revert PR #2190: Enable ACPAgent on RemoteRuntime API by @enyst in #2451
  • test(sdk): reproduce delegate resume compatibility regression by @neubig in #2382
  • Enforce REST API deprecation runway in breakage checks by @enyst in #2464
  • Use version tag for agent server image in version bump prs by @aivong-openhands in #2427
  • Enable ACPAgent on RemoteRuntime API via ACP conversation endpoints by @simonrosenberg in #2465
  • Refine temperature/top_p handling for reasoning models by @mayeco in #2277
  • chore(deps): bump authlib from 1.6.7 to 1.6.9 by @dependabot[bot] in #2475
  • feat(prompt): add AI disclosure policy for external service communications by @xingyaoww in #2476
  • feat(build): add OPENHANDS_BUILDKIT_CACHE_MODE env var to control cache export by @simonrosenberg in #2479
  • fix: preflight check now validates reasoning_content for thinking models by @juanmichelini in #2420
  • Migrate PR review plugin to extensions repository by @juanmichelini in #2324
  • Remove multiswebench from CI eval workflow options by @juanmichelini in #2483
  • chore(deps): bump pyasn1 from 0.6.2 to 0.6.3 by @dependabot[bot] in #2484
  • Add GPT-5.4 to verified models by @juanmichelini in #2487
  • fix: synchronize ACP telemetry and refresh remote final state by @simonrosenberg in #2460
  • refactor(sdk/subagent): showing tools each subagent has by @VascoSch92 in #2480
  • feat: workspace.get_llm() and get_secrets() for OpenHandsCloudWorkspace credential inheritance by @xingyaoww in #2409
  • fix: cherry-pick cache_export_seconds telemetry fix to main by @simonrosenberg in #2493
  • Add MiniMax-M2.7 to resolve_model_config.py by @juanmichelini in #2500
  • chore(deps): bump pypdf from 6.8.0 to 6.9.1 by @dependabot[bot] in #2497
  • fix(workflow): remove unused DATASET/SPLIT env vars from run-eval workflow by @VascoSch92 in #2504
  • fix(ci): ignore Field deprecated metadata in API breakage check by @enyst in #2508
  • chore: add Dependabot configuration for GitHub Actions updates by @aivong-openhands in #2501
  • chore(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #2520
  • chore(deps): bump actions/download-artifact from 6 to 8 by @dependabot[bot] in #2517
  • chore(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in #2519
  • chore(deps): bump actions/github-script from 7 to 8 by @dependabot[bot] in #2521
  • chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #2518
  • fix(examples): make the LLM profile store example directory-based by @enyst in #2507
  • refactor(llm): use litellm params for reasoning support by @enyst in #1990
  • Expose terminalbench in run-eval workflow by @neubig in #2360
  • fix(tools): return browser timeout as observation by @neubig in #2455
  • Add Google Gemini 3.1 verify models by @mayeco in #2276
  • feat(workflow): Expected instance_ids format (no spaces) by @VascoSch92 in #2502
  • feat(sdk/agent): Parallel Tool Call Execution by @VascoSch92 in #2390
  • fix(ci): ignore added Field metadata in SDK API breakage check by @enyst in #2524
  • fix(workflow): Normalize instance_ids by stripping spaces instead of failing by @simonrosenberg in #2529
  • feat(websocket): add after_timestamp filter for bi-directional event loading by @jpshackelford in #1880
  • build: move SDK SHA args after expensive layers for cache reuse by @simonrosenberg in #2522
  • Fix Qwen3.5-Flash low submission rate: improve JSON arg parsing and add corrective feedback by @juanmichelini in #2512
  • feat(docker): make ACP npm package installation optional via build arg by @simonrosenberg in #2535
  • feat(docker): make boto3 installation optional via build arg by @simonrosenberg in #2536
  • feat(docker): add extra_build_args to BuildOptions by @simonrosenberg in #2541
  • feat(plugin): Add entry_command field to PluginManifest by @jpshackelford in #2230
  • Add url field to PluginAuthor to match Claude Code schema by @jpshackelford in #2546
  • feat(sdk): Add browser tool usage guidelines to system prompt by @VascoSch92 in #2547
  • fix: use asyncio.Event() for thread-safe initialization state by @ixchio in #2383
  • fix(sdk): stop sending reasoning_effort to Kimi thinking by @enyst in #2549
  • fix: add diagnostics for preflight proxy failures by @simonrosenberg in #2557
  • Fix run-eval to use locked LiteLLM dependency by @simonrosenberg in #2559
  • fix(sdk): pin LiteLLM version exactly by @rbren in #2558
  • fix(ci): rename PAT secret to PAT_TOKEN by @simonrosenberg in #2561
  • fix(ci): use /v1/models for proxy health check instead of /health by @simonrosenberg in #2563
  • feat: support pre-built base images for faster rebuilds by @simonrosenberg in #2542

New Contributors

Full Changelog: v1.14.0...v1.15.0