Summary
The README's quick-start command for the OpenHands scaffold:
harbor run --path data/opt-3.0.0-roadmap --agent openhands --model ...
fails today because the upstream openhands-ai package (1.x series, the current PyPI latest) no longer exposes the openhands.core.main module that harbor's installed/openhands adapter uses for verification and agent invocation.
Reproduction
Fresh environment, default args from README:
uv tool install harbor # 0.6.1 today
git clone https://github.com/UniPat-AI/RoadmapBench.git
cd RoadmapBench
export OPENAI_API_KEY=...
export OPENAI_BASE_URL=...
harbor run \
--path test-assets/rat-0.21.0-roadmap \
--agent openhands \
--model "openai/your-model" \
--n-attempts 1 --n-concurrent 1 --yes \
--jobs-dir results/
Result (after ~3-5 minutes of cold install):
NonZeroAgentExitCodeError: Command failed (exit 1)
stdout: ... Installed 352 packages in 139ms ...
stderr: /opt/openhands-venv/bin/python: No module named openhands.core.main
Root cause
harbor/agents/installed/openhands.py hardcodes two operations that assume openhands-ai ships an openhands.core.main runpy entry point:
# verification (install step)
"/opt/openhands-venv/bin/python -m openhands.core.main --version"
# runtime (run step)
"/opt/openhands-venv/bin/python -m openhands.core.main"
This was true in openhands-ai 0.x but the package was restructured around 1.x — the SDK and tooling moved into a separate openhands-sdk package, and the monolithic CLI entry was removed. openhands-ai 1.7.0 (today's PyPI latest) contains openhands.agent_server, openhands.sdk, openhands.tools, openhands.server — but no openhands.core.
Confirmed:
- harbor v0.6.1 (RoadmapBench README's expected default install): broken
- harbor v0.6.5 (released same day as RoadmapBench): broken
- harbor main (today): broken — adapter has not been updated since 2026-03-24
Pinning a known-historical version doesn't trivially help: openhands-ai 0.9.x is yanked / has broken transitive deps (e.g. e2b<0.18.0 no longer resolvable on PyPI); 0.10.0+ requires Python ≥ 3.12 but is on the post-restructure side of the boundary.
Impact
OpenHands rows in Table 2 (Resolved %, Completion Score, Avg. Turns, Output Tok.) cannot be reproduced as documented. We verified across several models that the documented command fails identically.
(The --agent terminus-2 scaffold path is unaffected and works correctly.)
Requests
To restore reproducibility, could the maintainers please share:
- The exact
openhands-ai version used to produce the Table 2 OpenHands baselines.
- The harbor version / commit hash used.
- The Python version inside the task containers.
- Model snapshot identifiers (e.g.
claude-opus-4-7-20260420 rather than Claude-Opus-4.7).
Environment
- harbor: 0.6.1 (also tested 0.6.5, 0.8.0, main)
- openhands-ai: 1.7.0 (latest)
- Python: 3.13 (uv-managed inside container)
- Base image:
znpt/roadmapbench-rat-0.21.0-roadmap (DockerHub)
- OS: Linux x86_64
- Date: 2026-05-24
Summary
The README's quick-start command for the OpenHands scaffold:
fails today because the upstream
openhands-aipackage (1.x series, the current PyPI latest) no longer exposes theopenhands.core.mainmodule that harbor'sinstalled/openhandsadapter uses for verification and agent invocation.Reproduction
Fresh environment, default args from README:
Result (after ~3-5 minutes of cold install):
Root cause
harbor/agents/installed/openhands.pyhardcodes two operations that assumeopenhands-aiships anopenhands.core.mainrunpy entry point:This was true in
openhands-ai0.x but the package was restructured around 1.x — the SDK and tooling moved into a separateopenhands-sdkpackage, and the monolithic CLI entry was removed.openhands-ai1.7.0 (today's PyPI latest) containsopenhands.agent_server,openhands.sdk,openhands.tools,openhands.server— but noopenhands.core.Confirmed:
Pinning a known-historical version doesn't trivially help:
openhands-ai0.9.x is yanked / has broken transitive deps (e.g.e2b<0.18.0no longer resolvable on PyPI); 0.10.0+ requires Python ≥ 3.12 but is on the post-restructure side of the boundary.Impact
OpenHands rows in Table 2 (Resolved %, Completion Score, Avg. Turns, Output Tok.) cannot be reproduced as documented. We verified across several models that the documented command fails identically.
(The
--agent terminus-2scaffold path is unaffected and works correctly.)Requests
To restore reproducibility, could the maintainers please share:
openhands-aiversion used to produce the Table 2 OpenHands baselines.claude-opus-4-7-20260420rather thanClaude-Opus-4.7).Environment
znpt/roadmapbench-rat-0.21.0-roadmap(DockerHub)