Skip to content

Streamline harness install spec names#1541

Merged
xeophon merged 2 commits into
xeophon/agent-install-version-specsfrom
xeophon/streamline-harness-install-spec-names
Jun 4, 2026
Merged

Streamline harness install spec names#1541
xeophon merged 2 commits into
xeophon/agent-install-version-specsfrom
xeophon/streamline-harness-install-spec-names

Conversation

@xeophon
Copy link
Copy Markdown
Member

@xeophon xeophon commented Jun 4, 2026

Summary

  • make version a first-class harness config field via base vf.HarnessConfig.version, alongside fields like max_turns
  • add Harness.load_program_config(config) so harnesses can resolve command programs from harness-owned config
  • move agent version wiring out of nested program config for OpenCode, MiniSWEAgent, Pi, and Terminus2; configs now use [eval.harness] version = "..."
  • keep execution/program knobs on the program config while tests/docs read version-sensitive commands from the resolved harness.program_config
  • keep the earlier RLM/composable naming cleanup: shorter shared names like repo_url, ref, tools, exec_timeout, and max_depth

Tests

  • uv run --no-sync ruff format
  • uv run --no-sync ruff check --fix
  • UV_FROZEN=1 uv run --no-sync pre-commit run ty --hook-stage pre-push --all-files
  • uv run --no-sync pytest tests/test_v1_harbor_cli.py tests/test_v1_mini_swe_agent.py tests/test_composable_env.py
  • uv run --no-sync pytest tests/test_opencode_harbor.py tests/test_imports.py tests/test_v1_config_extension.py

Note

Rename harness install spec fields from package/release to version across all harnesses

  • Standardizes version selection across all harnesses (opencode, mini_swe_agent, pi, terminus_2, rlm) by replacing harness-specific field names (package, release, rlm_repo_ref, etc.) with a uniform version field on each harness config.
  • Adds a version: str | None field to the base HarnessConfig dataclass and a load_program_config hook on Harness so subclasses can inject version into program.resolve(version=...).
  • Renames rlm_-prefixed fields on RLMProgramConfig and rlm_harness (e.g. rlm_toolstools, rlm_repo_urlrepo_url) for consistency.
  • Updates all tests and README examples to use the new naming.
  • Behavioral Change: config files and code using old field names (package, release, rlm_tools, rlm_repo_url, etc.) will break; no changes to runtime behavior or installed artifacts.

Macroscope summarized 1c81dc8.


Note

Medium Risk
Renames public harness and RLM config/TOML fields without backward-compatible aliases, so existing eval configs may silently use defaults; rollout behavior otherwise follows the same install/resolve paths covered by updated tests.

Overview
Standardizes harness configuration around a shared version field for agent installs (OpenCode, Pi, mini-SWE-agent, Terminus 2) and drops per-harness names like release, package, and harbor_package. Harness classes now override load_program_config so that top-level version is passed into each program’s resolve(), and tests/docs read resolved setup via harness.program_config instead of nested program config alone.

RLM and composable RLM helpers rename prefixed knobs to shorter names (repo_url / ref / tools / exec_timeout / max_depth, etc.). HarnessConfig also gains an optional version hook for the base loader pattern.

Breaking: configs or code still using the old field names will not populate the new fields (no aliases in the diff).

Reviewed by Cursor Bugbot for commit 1c81dc8. Bugbot is set up for automated code reviews on this repo. Configure here.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jun 4, 2026
@macroscopeapp
Copy link
Copy Markdown

macroscopeapp Bot commented Jun 4, 2026

Approvability

Verdict: Needs human review

1 blocking correctness issue found. While mostly mechanical renames, this PR includes structural changes to how version configuration flows through harness classes. Additionally, an unresolved review comment identifies a bug where user-configured program versions could be silently overwritten by defaults.

You can customize Macroscope's approvability policy. Learn more.

@xeophon xeophon force-pushed the xeophon/streamline-harness-install-spec-names branch from 2fdf0ae to 48ac9e8 Compare June 4, 2026 10:27
@macroscopeapp macroscopeapp Bot dismissed their stale review June 4, 2026 10:27

Dismissing prior approval to re-evaluate 48ac9e8

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jun 4, 2026
@macroscopeapp macroscopeapp Bot dismissed their stale review June 4, 2026 10:43

Dismissing prior approval to re-evaluate 4027dce

@xeophon xeophon force-pushed the xeophon/streamline-harness-install-spec-names branch from 4027dce to 2a8e281 Compare June 4, 2026 10:53
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 2a8e281. Configure here.

Comment thread packages/harnesses/harnesses/mini_swe_agent.py Outdated
Comment thread packages/harnesses/harnesses/terminus_2.py
@xeophon xeophon force-pushed the xeophon/streamline-harness-install-spec-names branch from 2a8e281 to 1c81dc8 Compare June 4, 2026 12:09
@xeophon xeophon merged commit 15f216b into xeophon/agent-install-version-specs Jun 4, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants