Skip to content

v1.17.0

Choose a tag to compare

@xingyaoww xingyaoww released this 13 Apr 19:04

What's Changed

  • feat(tools/tom_consult): declare resources for parallel execution by @VascoSch92 in #2663
  • fix(acp): install Node 22 for ACP and defer remote ACP init until run by @simonrosenberg in #2656
  • Release v1.16.1 by @all-hands-bot in #2665
  • chore(deps): bump cryptography from 46.0.5 to 46.0.6 by @dependabot[bot] in #2672
  • chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #2661
  • fix(tools): prevent duplicate WithRisk/WithSummary Action classes in sub-agent conversations by @VascoSch92 in #2649
  • fix: propagate acp_model to metrics for accurate cost attribution by @simonrosenberg in #2677
  • Add dashscope/qwen3.6-plus to resolve_model_config.py by @juanmichelini in #2681
  • fix(sdk): use AI agent in disclosure example by @enyst in #2675
  • Add contributors section to README by @jamiechicago312 in #2658
  • feat: add automation context tags to conversations by @malhotra5 in #2632
  • chore(deps): bump lewagon/wait-on-check-action from 1.5.0 to 1.6.0 by @dependabot[bot] in #2660
  • feat(security): defense-in-depth security analyzers by @Fieldnote-Echo in #2472
  • feat(skills): add shell command execution in frontmatter for dynamic context by @VascoSch92 in #2582
  • Apptainer gpu passthrough by @neubig in #2695
  • fix(acp): add activity heartbeat to prevent idle runtime kill during conn.prompt() by @simonrosenberg in #2698
  • feat(sdk): add redact_url_params() for URL query parameter redaction by @simonrosenberg in #2700
  • fix(agent-server): sanitize 422 error responses to prevent secret leakage by @simonrosenberg in #2679
  • fix(acp): retry transient ACP server errors (JSON-RPC -32603) by @simonrosenberg in #2699
  • Add instruction to verify PR status before pushing by @xingyaoww in #2696
  • Bump pytest to >=9.0.0 to unblock Dependabot by @aivong-openhands in #2705
  • Fix auto-title race condition: extract message before background task by @rbren in #2599
  • docs: add cross-repo testing skill for SDK ↔ OH Cloud e2e workflow by @xingyaoww in #2477
  • Fix _extract_summary popping real tool parameters named "summary" by @xingyaoww in #2633
  • fix(deps): upgrade litellm to fix fastapi import bug in Responses API by @xingyaoww in #2714
  • fix: ERROR when agent finishes on final iteration (#2659) by @trayanmomkov in #2720
  • feat(agent-server): expose settings schema by @neubig in #2651
  • Migrate Claude ACP package name by @simonrosenberg in #2702
  • fix: Incremental view construction by @csmith49 in #2586
  • fix(sdk): recover malformed tool history via condensation by @enyst in #2613
  • chore(deps): bump slackapi/slack-github-action from 2.1.1 to 3.0.1 by @dependabot[bot] in #2578
  • feat(agent-server): register builtin agents on startup by @VascoSch92 in #2710
  • Deprecate DelegateTool in favor of TaskToolSet by @VascoSch92 in #2668
  • chore(deps): bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in #2731
  • chore(deps): bump fastmcp from 3.1.0 to 3.2.0 by @dependabot[bot] in #2643
  • chore(deps): bump aiohttp from 3.13.3 to 3.13.4 by @dependabot[bot] in #2732
  • chore(test): update docstring link to correct PR (#2264) by @kushalsai-01 in #2733
  • refactor(tools): built-in agents by @VascoSch92 in #2511
  • fix(sdk): Use concise error message for tool validation errors by @VascoSch92 in #2748
  • fix(llm): cap auto-detected max_output_tokens when it fills the entire context window by @csmith49 in #2747
  • feat(tools/task): make TaskManager thread-safe for parallel execution by @VascoSch92 in #2719
  • fix: add prompt-level defense against repo context injection attacks by @sumleo in #2543
  • fix(sdk): recover dict/list args with trailing garbage in tool calls by @VascoSch92 in #2753
  • chore(deps): bump litellm from 1.82.6 to 1.83.0 by @dependabot[bot] in #2750
  • feat(tools/gemini): declare file-path resources for parallel execution by @VascoSch92 in #2723
  • Add trinity-large-thinking to resolve_model_config.py by @juanmichelini in #2760
  • Update PR template to match OpenHands/OpenHands repository by @jamiechicago312 in #2730
  • feat(tools/terminal): tmux pane pool for parallel terminal execution by @VascoSch92 in #2669
  • feat: add experimental QA changes workflow by @xingyaoww in #2717
  • feat: Expose agent final response via REST API endpoint by @xingyaoww in #2690
  • chore(deps): bump pypdf from 6.9.1 to 6.9.2 by @dependabot[bot] in #2646
  • Add openrouter/z-ai/glm-5.1 to resolve_model_config (fixes #2768) by @juanmichelini in #2769
  • fix(agent-server): await conversation teardown in EventService.close() by @VascoSch92 in #2734
  • Add support for EXTENSIONS_REF environment variable by @juanmichelini in #2607
  • docs: document gh workflow run for integration tests in ADDINGMODEL.md by @juanmichelini in #2783
  • Unify skills modules: move context/skills to sdk/skills by @csmith49 in #2774
  • Move marketplace definitions to openhands.sdk.marketplace module by @csmith49 in #2786
  • fix(sdk): metrics desync between LLM and Telemetry after restore by @VascoSch92 in #2736
  • fix: restore self-contained /agent-server with uv-managed Python by @simonrosenberg in #2765
  • Skip PyPI publishing for GitHub pre-releases by @xingyaoww in #2800
  • fix: use GITHUB_SHA env var for image tag in server workflow by @simonrosenberg in #2799
  • test: add additional regression tests for restore_metrics telemetry sync (#13843) by @Jinhaooo in #2793
  • fix(ci): keep REST release-based and enforce SDK deprecation runway by @enyst in #2802
  • Fix remaining tmux session leaks in agent-server startup and task cleanup by @rbren in #2805
  • refactor(settings): split agent and conversation settings schemas by @neubig in #2789

New Contributors

Full Changelog: v1.16.1...v1.17.0