Conversation
Coverage Report •
|
|||||||||||||||||||||||||
all-hands-bot
left a comment
There was a problem hiding this comment.
🟡 Acceptable - Feature works and solves a real problem (task resumption). Some data structure complexity and naming could be cleaner, but nothing blocking.
Key Insight: The state management spreads task tracking across multiple data structures when TaskState already has status - consolidating this would eliminate special case tracking.
|
@OpenHands Do a /codereview-roasted on this PR. Take a look at some other tool too to see if we follow the patterns in the codebase. Post your review and your answer as a comment to this PR. Note that it will be rendered as markdown. Once you are done, take a step back and look at your review and diff with fresh eyes: section by section, was it more minor or major than it seemed to be? Reanalyze. When you're done, post your reanalysis as a follow-up comment. |
|
I'm on it! enyst can track my progress at all-hands.dev |
This comment was marked as outdated.
This comment was marked as outdated.
Reanalysis (fresh eyes)Stepping back: I probably came in hot on a couple of things that are more “taste” than “stop-ship”. Here’s how I’d re-rank it after a second pass. Still major / correctness
Probably not worth blocking (but worth considering)
Net assessmentThe core idea (ToolSet factory that creates a |
This comment was marked as duplicate.
This comment was marked as duplicate.
8041249 to
10054bc
Compare
API breakage checks (Griffe)Result: Passed |
all-hands-bot
left a comment
There was a problem hiding this comment.
Taste Rating: 🟡 Acceptable - Feature works and solves a real problem (task resumption). Some data structure complexity and naming could be cleaner, but nothing blocking.
[IMPROVEMENT OPPORTUNITIES]
The previous review flagged an unresolved issue that's still present in manager.py (see inline comment).
VERDICT:
✅ Worth merging - Adds useful task resumption capability with comprehensive tests. The defensive programming pattern is minor and doesn't affect correctness.
KEY INSIGHT:
Task resumption via conversation persistence is a solid feature. The state management is straightforward - the only complexity comes from defensive checks against known types.
|
Thank you! LGTM @simonrosenberg I'd love to know your thoughts on this PR |
Co-authored-by: simonrosenberg <157206163+simonrosenberg@users.noreply.github.com>
Co-authored-by: simonrosenberg <157206163+simonrosenberg@users.noreply.github.com>
|
Merging also if This is becausse of another example in the code which has not a documentation now. The example added in the PR has docs. |
Summary
Adding the
TaskToolSettool, but without the run_in_background feature, as discussed in #2100.The arguments currently missing from this API (compared to the Claude Code task tool) are:
run_in_backgroundmodelA difference between this version of
TaskToolSetandDelegateToolis the ability to resume a task. Thetask_tool_setexample demonstrates this mechanism.Note
The tool description has been updated and tailored to reflect the current functionality (since background tasks are not supported).
(ref issue #2057)
Docs
OpenHands/docs#352
Checklist
Agent Server images for this PR
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22golang:1.21-bookwormPull (multi-arch manifest)
# Each variant is a multi-arch manifest supporting both amd64 and arm64 docker pull ghcr.io/openhands/agent-server:a866cf8-pythonRun
All tags pushed for this build
About Multi-Architecture Support
a866cf8-python) is a multi-arch manifest supporting both amd64 and arm64a866cf8-python-amd64) are also available if needed