v1.12.0
- ACP / Agent Client Protocol landed end-to-end: new
ACPAgent, visualization of ACP tool calls, andask_agentsupport viafork_session. - Agent-server got more capable and safer: new endpoints for LLM models/providers, better WebSocket auth (headers), improved event search behavior, secrets handling fixes, and a Bedrock safety fix (don’t forward
api_key). - Subagents + skills got a big upgrade: file-based agent definitions (Markdown + YAML frontmatter), built-in specialized agent types (Explore/Bash), support for skills/LLM profiles/max-iterations, and new install utilities for AgentSkills.
- CI and quality gates tightened: stronger API breakage detection/reporting (incl. oasdiff + release gating + deprecation policy), PR review agent guardrails, and a code review rule to block version bumps.
- DevEx + platform compatibility improvements: multiple terminal/tmux reliability fixes (incl. macOS heredoc hang + tmux socket isolation), Windows import guards, plus dependency/model config updates (e.g., Qwen, Gemini preview, GPT-* codex/variant detection, security CVE bumps).
What's Changed
- feat: Add ACPAgent for Agent Client Protocol integration by @simonrosenberg in #2133
- chore: add version bump blocking rule to code review guide by @xingyaoww in #2161
- Release v1.11.5 by @all-hands-bot in #2160
- Fix API breakage check robustness and reporting by @enyst in #2098
- ci: skip api breakage check when prev lacks all by @enyst in #2165
- Add ask_agent support to ACPAgent via fork_session by @simonrosenberg in #2145
- feat(sdk): Add TestLLM class for testing without mocking LiteLLM by @VascoSch92 in #2016
- DRAFT: docs(AGENTS): how to reply to GitHub inline review threads via REST API by @enyst in #2090
- fix(terminal): avoid sending C-l in TmuxTerminal.clear_screen() by @rbren in #2166
- fix(terminal): use dedicated tmux socket to isolate from user sessions by @rbren in #2167
- fix(Makefile): help and pre-commit by @VascoSch92 in #2168
- context: load project skills from git root by @enyst in #2164
- fix: preserve conversation updated_at across server restarts by @rbren in #2172
- ci: Gate API breakage failures on release PRs by @enyst in #2173
- Visualize ACP tool calls by @simonrosenberg in #2162
- Fix long heredoc commands hanging in SubprocessTerminal on macOS by @jpshackelford in #2182
- fix: Include boto3 extra in agent-server Docker image by @rbren in #2188
- Add LLM models and providers endpoints to agent-server by @rbren in #2187
- Do not forward api_key to Bedrock calls by @enyst in #2195
- feat(tools): task tool set by @VascoSch92 in #2143
- fix(tools): remove BrowserToolSet from package init to reduce downstream bundle size by @malhotra5 in #2197
- feat(delegate): File-based agent definitions with markdown + YAML frontmatter by @VascoSch92 in #2183
- agent-server: support WebSocket auth via headers by @enyst in #1814
- Add dashscope/qwen3.5-flash-2026-02-23 model configuration by @juanmichelini in #2207
- chore(deps): bump python-multipart from 0.0.20 to 0.0.22 by @dependabot[bot] in #2210
- chore(deps): bump werkzeug from 3.1.1 to 3.1.6 by @dependabot[bot] in #2214
- chore(deps): bump cryptography from 46.0.3 to 46.0.5 by @dependabot[bot] in #2211
- chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 by @dependabot[bot] in #2212
- Filter public skills by default marketplace by @neubig in #2205
- chore(deps): bump pypdf from 6.1.1 to 6.7.2 by @dependabot[bot] in #2213
- nit(tools): small refactoring test files by @VascoSch92 in #2215
- chore(deps): bump authlib from 1.6.5 to 1.6.6 by @dependabot[bot] in #2219
- chore(deps): bump virtualenv from 20.34.0 to 20.36.1 by @dependabot[bot] in #2220
- ci: enforce agent-server REST API deprecation policy by @enyst in #2232
- fix(sdk): handle newlines in JSON-stringified dict arguments by @VascoSch92 in #2217
- fix(tools): merge subagents metrics (TaskToolSet) by @VascoSch92 in #2222
- fix(tools): merge subagents metrics (DelegateTool) by @VascoSch92 in #2221
- fix(tool): race condition in dynamic Action wrapper class creation by @VascoSch92 in #2224
- Fix GLM-5 preflight check by filtering SDK-specific parameters by @juanmichelini in #2194
- docs(subagent): document loader invariants for file-based agents by @enyst in #2231
- refactoring(sdk): Remove hardcoded header from
get_factory_info()by @VascoSch92 in #2234 - fix(sdk): add gpt-5.2-codex, gpt-5.3-codex, and gpt-5.2 to model-variant detection by @enyst in #2238
- ci: use oasdiff for agent-server REST API breakage detection by @enyst in #2240
- fix: override server_image default to None in DockerDevWorkspace by @simonrosenberg in #2243
- PR review agent: avoid approving eval-risk behavior changes by @enyst in #2246
- Add server-base-path support for VSCode in path-based routing by @chuckbutkus in #2241
- feat: autotitle conversations on first user message by @rbren in #2225
- PR review agent: make eval-risk approval policy repo-specific by @enyst in #2254
- fix: Include secrets in system prompt when added via update_secrets() by @rbren in #2171
- Fix LiteLLM cost tracking for provider-prefixed models by @ShreySatapara in #2257
- Set default temperature to None instead of 0.0 by @neubig in #1989
- fix(tools): guard Unix-only imports in terminal package for Windows by @WolffM in #2096
- feat(delegate): Built-in specialized agent types (Explore, Bash) by @VascoSch92 in #2201
- Change eval_limit from choice to free-form string input by @simonrosenberg in #2261
- fix: cap max_output_tokens when using max_tokens fallback by @csmith49 in #2264
- docs: README for
condensermodule by @csmith49 in #2262 - fix: use query parameters for git API endpoints to preserve path slashes by @chuckbutkus in #2249
- chore(deps): bump mcp from 1.17.0 to 1.23.0 by @dependabot[bot] in #2226
- chore(deps): bump pypdf from 6.7.2 to 6.7.4 by @dependabot[bot] in #2265
- chore(deps): bump pypdf from 6.7.4 to 6.7.5 by @dependabot[bot] in #2267
- Add gemini-3.1-pro-preview model to reasoning models #2269 by @mayeco in #2270
- Show full dynamic context in SystemPromptEvent.visualize by @xingyaoww in #2273
- fix(sdk/subagent): fix get_factory_info() by @VascoSch92 in #2271
- Update orjson to 3.11.7 to address CVE-2025-67221 by @aivong-openhands in #2268
- Fix: Security analyzer ignores LLM security_risk when no analyzer is configured by @juanmichelini in #2130
- chore(deps): bump fastmcp from 2.12.4 to 2.14.0 by @dependabot[bot] in #2266
- Add AGENTS.md for model addition guidance in .github/run-eval by @juanmichelini in #2284
- Add explicit rules to prevent modifying existing models in AGENTS.md by @juanmichelini in #2288
- Split AGENTS.md: Move model addition guide to ADDINGMODEL.md by @juanmichelini in #2291
- add ability to run chrome as root by @rbren in #2169
- Add gpt-5-3-codex model to resolve_model_config.py by @juanmichelini in #2292
- Insist on integration tests on the model addition AGENTS.MD by @juanmichelini in #2293
- feat(sdk/subagent): Support skills in file-based Agents by @VascoSch92 in #2260
- feat(sdk/subagent): Support max_iteration_per_run in file-based agent definitions by @VascoSch92 in #2263
- feat(plugin): Add installed plugins management utilities by @xingyaoww in #2031
- Fix duplicate observations for same tool_call_id after crash recovery by @csmith49 in #2300
- Fix API breakage workflow exit codes by @enyst in #2309
- Fix prompt_cache_retention for Azure by @enyst in #2311
- Disable prompt_cache_retention for Azure models by @enyst in #2312
- fix(examples): example no. 41 by @VascoSch92 in #2314
- nit(examples): example no. 40 by @VascoSch92 in #2315
- fix(examples): example no. 25 by @VascoSch92 in #2313
- fix(security): Upgrade fastmcp to v3 to address CVE-2025-69872 by @aivong-openhands in #2294
- Fix: Add 'gpt5' to tool-preset argparse choices by @juanmichelini in #2306
- feat(sdk/subagent): Support LLM profiles in subagents by @VascoSch92 in #2258
- Normalize OpenAPI schema for oasdiff by @enyst in #2318
- chore(deps): bump authlib from 1.6.6 to 1.6.7 by @dependabot[bot] in #2321
- fix: events search API blocks during agent step (FIFOLock contention) by @rbren in #2296
- fix(examples): example no.38 by @VascoSch92 in #2316
- feat: add AgentSkills install utilities by @enyst in #2320
- fix: set delete_on_close default to True by @xingyaoww in #2328
- chore: add design-principles skill linking to SDK arch docs by @xingyaoww in #2329
- Route ACP agents through LiteLLM proxy in CI by @simonrosenberg in #2326
New Contributors
- @chuckbutkus made their first contribution in #2241
- @ShreySatapara made their first contribution in #2257
- @WolffM made their first contribution in #2096
- @mayeco made their first contribution in #2270
- @aivong-openhands made their first contribution in #2268
Full Changelog: v1.11.5...v1.12.0