Skip to content

Releases: OpenHands/software-agent-sdk

v1.8.2

14 Jan 14:59

Choose a tag to compare

What's Changed

  • Release v1.8.1 by @all-hands-bot in #1670
  • feat: auto-trigger PR review on new ready-for-review PRs + fix duplicate comments by @xingyaoww in #1669
  • Add --no-pager instruction for git commands in system prompt by @xingyaoww in #1673
  • fix: mask LLM_API_KEY and GITHUB_TOKEN secrets in PR review agent by @xingyaoww in #1675
  • Add per-test timeout to prevent hanging example scripts by @xingyaoww in #1666
  • Fix PR review agent multi-line suggestion alignment by @xingyaoww in #1677
  • Add visualize() for ConversationErrorEvent by @enyst in #1686
  • Fix useless logging in sockets.py by @neubig in #1679
  • Fix conversation restore failing due to secret serialization/deserialization mismatch by @tofarr in #1672
  • fix(critic): Accept MessageEvent as valid finish signal in AgentFinishedCritic by @neubig in #1695
  • fix: add file-based locking to EventLog.append() by @ixchio in #1614
  • feat(pr-review): Add priority labels to review comments by @xingyaoww in #1696
  • feat: support custom volumes mounting for DockerWorkspace by @Co1lin in #1618
  • Add AGENTS.md and link repo.md by @enyst in #1690
  • Condenser integration tests by @csmith49 in #1652
  • Fix: Disable streaming for sub-agents in delegate tool by @malhotra5 in #1705
  • Fix deepseek-v3.2-reasoner model name to use valid API identifier by @neubig in #1707
  • fix(condenser): Forgetting range calculation interprets keep_first correctly by @csmith49 in #1708
  • llm: log failed Responses calls with request context by @enyst in #1684
  • Fix verify method to include builtin tools in event check by @malhotra5 in #1710
  • Optimize docker-like behaviour in apptainer with better code quality by @adityasoni9998 in #1711
  • Remove .openhands/skills/repo.md symlink by @enyst in #1709
  • Add crash diagnostics logging to agent server by @neubig in #1689
  • Fix PR review bot to diff against current base commit by @enyst in #1685
  • Add ARG USERNAME to base-image stage for podman by @cbagwell in #1691
  • Revert "fix(critic): Accept MessageEvent as valid finish signal in AgentFinishedCritic" by @xingyaoww in #1715
  • Add configurable startup wait for APIRemoteWorkspace by @simonrosenberg in #1713
  • Add user tracking to evaluation workflow by @juanmichelini in #1716
  • fix: route qwen-3-coder through Fireworks provider by @neubig in #1720

New Contributors

Full Changelog: v1.8.1...v1.8.2

v1.8.1

09 Jan 16:55

Choose a tag to compare

Fix the failed PyPI release on v1.8.0

What's Changed

Full Changelog: v1.8.0...v1.8.1

v1.8.0

09 Jan 15:58

Choose a tag to compare

Major Feature

What's Changed

  • Add push_to_index dispatch flag by @simonrosenberg in #1588
  • feat: support .mcp.json for MCP server configuration by @neubig in #1481
  • Release v1.7.4 by @all-hands-bot in #1595
  • feat: support resource directories (scripts/, references/, assets/) by @neubig in #1482
  • Fix stats being reset when resuming a conversation by @xingyaoww in #1591
  • Add dynamic run name title to Run Eval workflow by @juanmichelini in #1612
  • refactor: remove reconciliation methods, use runtime agent directly by @enyst in #1542
  • fix(git): skip remote check for repos with no commits by @neubig in #1606
  • Add code review microagent based on xingyaoww's review history by @xingyaoww in #1150
  • feat(sdk): complete hooks implementation with additional context and stop hook by @ak684 in #1547
  • feat: Add Plugin data model and basic loading from directories by @neubig in #1611
  • feat: Add plugin loading example demonstrating skills, hooks, and MCP by @neubig in #1616
  • Expose runtime_resource_factor in run-eval by @simonrosenberg in #1605
  • feat: add skill validation improvements by @neubig in #1597
  • Add skills support to PR review example with /codereview and /codereview-roasted by @xingyaoww in #1617
  • feat: add to_prompt() for XML skill prompt generation by @neubig in #1483
  • Fix poetry lock command for Poetry 2.x compatibility by @xingyaoww in #1622
  • feat: Add skills example and include skill location in agent prompt by @neubig in #1599
  • Multi-step integration tests by @csmith49 in #1613
  • Add action summary feature for tool calls by @xingyaoww in #1339
  • Add expected index models to resolve_model_config.py by @juanmichelini in #1497
  • Revert "Expose runtime_resource_factor in run-eval" by @simonrosenberg in #1627
  • fix: resolve UnsupportedFieldAttributeWarning for secret_registry field by @neubig in #1625
  • Fix context window displaying as 0 when resuming conversation by @xingyaoww in #1590
  • fix: Update PR review workflow to use correct repository name by @xingyaoww in #1623
  • Fix AGENTS.md not being loaded when skills directories don't exist by @xingyaoww in #1624
  • fix: Pass agent_context at Agent initialization in PR review script by @xingyaoww in #1632
  • Allow over-riding system-level configurations from apptainer.conf in apptainer workspace by @adityasoni9998 in #1628
  • feat(llm): Set default LLM timeout to 5 minutes (300s) by @neubig in #1638
  • feat(pr_review): send complete git diff to agent in first message by @xingyaoww in #1639
  • fix: Auto-add skills to_prompt() output to system prompt by @neubig in #1642
  • feat: Add include_default_tools option to control built-in tools by @xingyaoww in #1594
  • fix: remove duplicate example numbers in 02_remote_agent_server by @xingyaoww in #1637
  • Use AGENTS.md instead of repo.md in SDK examples/system prompt by @enyst in #1648
  • feat: Add public sandbox_id field to OpenHandsCloudWorkspace for resuming existing sandboxes by @malhotra5 in #1603
  • docs: Update environment configuration for secret encryption in Agent Server by @jagzmz in #1465
  • feat: add utility to convert legacy OpenHands skills to AgentSkills format by @xingyaoww in #1643
  • feat: Implement AgentSkills progressive disclosure for SKILL.md files by @xingyaoww in #1644
  • Add alive property to RemoteWorkspace by @malhotra5 in #1655
  • Expose max_retries input and dispatch to eval by @simonrosenberg in #1641

New Contributors

Full Changelog: v1.7.4...v1.8.0

v1.7.4

05 Jan 20:13
2cbe607

Choose a tag to compare

What's Changed

  • Release v1.7.3 by @all-hands-bot in #1551
  • Update OpenHands version bump workflow to include all required steps by @malhotra5 in #1553
  • fix: Wait for PyPI propagation and add Slack notification to release workflow by @xingyaoww in #1552
  • feat: support SKILL.md file convention and name validation by @neubig in #1480
  • feat: add pause() and resume() methods to workspace classes by @ixchio in #1539
  • build(deps): Bump libtmux to >=0.53.0 for v0.51.0 hard deprecations by @tony in #1561
  • feat: add DeepSeek v3.2 model support by @ixchio in #1564
  • refactor: consolidate duplicated blocking wait logic in RemoteConversation.run() + remove defensive if else by @simonrosenberg in #1569
  • Fix DiscriminatedUnionMixin issues with Pydantic C bindings by @tofarr in #1555
  • Add test to verify working_dir standardization (closes #211) by @xingyaoww in #1576
  • Re-add discriminator field to discriminated union JSON schema by @tofarr in #1578
  • fix: Cap thinking budget below max_tokens by @csmith49 in #1580
  • Relax needs-triage duration by @enyst in #1567
  • Fix RemoteConversation polling on terminal errors by @simonrosenberg in #1572
  • More test fixes by @tofarr in #1581
  • remove custom_llm_provider from LLM config by @enyst in #1583
  • Update cryptography to 46.0.3 by @enyst in #1585
  • feat: relax tool matching on resume by @ixchio in #1538
  • Set initial execution status to error if it was running by @tofarr in #1554
  • More efficient websocket based implementation for async bash execution by @tofarr in #1587
  • feat: Create conversation when provided ID doesn't exist by @malhotra5 in #1579
  • fix(condenser): Retry on empty condensation by @csmith49 in #1577
  • Bump pydantic by @tofarr in #1593

New Contributors

Full Changelog: v1.7.3...v1.7.4

v1.7.3

30 Dec 17:48

Choose a tag to compare

What's Changed

Full Changelog: v1.7.2...v1.7.3

v1.7.2

29 Dec 17:46

Choose a tag to compare

What's Changed

  • Release v1.7.1 by @all-hands-bot in #1513
  • Load model-specific repo instructions (CLAUDE.md for Claude only, GEMINI.md for Gemini only) by @enyst in #1328
  • Fix max iterations reached: Set ERROR status with clear message by @simonrosenberg in #1511
  • Save screenshots from browser tool by @hamiltop in #1443
  • Use ALLHANDS_BOT_GITHUB_PAT for bot-like workflows by @xingyaoww in #1519
  • Fix TmuxTerminal.close() to handle dead session exceptions by @xingyaoww in #1517
  • ci(integration): update integration LLM matrix to gpt-5.2-codex by @enyst in #1503
  • Add automated version bump PRs for downstream repos by @xingyaoww in #1520
  • feat: add early stopping/pruner for behavior tests cost optimization by @ixchio in #1433
  • Fix condensation for 0 events by adjusting default parameters by @xingyaoww in #1523
  • Add pull request template by @neubig in #1528
  • Revert "ci(integration): update integration LLM matrix to gpt-5.2-codex" by @xingyaoww in #1524

New Contributors

Full Changelog: v1.7.1...v1.7.2

v1.7.1

25 Dec 22:05
0b7ccc9

Choose a tag to compare

What's Changed

  • feat: add AgentSkills standard fields to Skill model by @neubig in #1479
  • Release v1.7.0 by @xingyaoww in #1486
  • Fix SDK_SHA reference in run-eval.yml Comment on PR step by @simonrosenberg in #1498
  • Add optional parallelization parameters to run-eval workflow by @simonrosenberg in #1499
  • Add compatibility fixes for Nemotron and similar models by @pankajarm in #1470
  • feat(condenser): Token-aware condensation in LLMSummarizingCondenser by @csmith49 in #1380
  • fix(condenser): Tool-call aware condensation by @csmith49 in #1412
  • feat(localFileStore): Add Cache Layer to LocalFileStore to Avoid I/O Overhead from Read Operations by @CLFutureX in #1274
  • feat: Add hooks system for event interception by @ak684 in #1467
  • fix: handle union types in py_type for mcp schema conversion by @hieptl in #1509
  • Remove tool preambles from gpt-5-codex by @enyst in #1512
  • fix(condenser): Tool-loop aware condensation by @csmith49 in #1508

New Contributors

Full Changelog: v1.7.0...v1.7.1

v1.7.0

23 Dec 15:08

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.6.0...v1.7.0

v1.6.0

16 Dec 18:42
c3a31ac

Choose a tag to compare

What's Changed

  • Release 1.5.2 by @xingyaoww in #1382
  • feat: allow xhigh reasoning_effort by @enyst in #1388
  • Add page_iterator utility and refactor resend_all functionality by @tofarr in #1386
  • ALL-4485 Added deleting state for conversations for use in webhook. by @tofarr in #1391
  • fix: use simple delay for shell init instead of PTY-based detection by @ak684 in #1387
  • Add instance id input to run-eval dispatch by @simonrosenberg in #1389
  • Update lmnr from 0.7.20 to 0.7.24 by @xingyaoww in #1398
  • Add self-documentation lookup capability to system prompt by @xingyaoww in #1396
  • ALL-4516 Fix selfish coroutines in event service state lock operations by @tofarr in #1400
  • docs(readme): update Slack link to openhands.dev domain by @enyst in #1397
  • ALL-4518 Fix agent deep copy to preserve secrets using expose_secrets by @tofarr in #1403
  • Add MEMORY section to system prompt for skills by @xingyaoww in #600
  • Support model-family and model-variant system prompts by @ryanhoangt in #1348
  • Add automated release workflows by @xingyaoww in #1405

Full Changelog: v1.5.2...v1.6.0

v1.5.2

11 Dec 15:13

Choose a tag to compare

What's Changed

  • Release 1.5.1 by @xingyaoww in #1379
  • ALL-4426 Optimize agent tool initialization with parallel execution by @tofarr in #1374
  • ALL-4426 Parallelize service startup and shutdown in api_lifespan by @tofarr in #1375
  • ALL-4426 Fix: Run conversation webhook notifications in background with error logging by @tofarr in #1373
  • fix: update respond_to_confirmation API to Invoke reject_pending_actions on rejection by @hieptl in #1377

Full Changelog: v1.5.1...v1.5.2