Eval harness
The Harbor harness runs Roder against Terminal-Bench tasks with a prebuilt Linux binary, isolated config/auth directories, JSON event capture, and structured run summaries. It is a first-class consumer of the runtime, not a separate benchmark-only agent. Current pass/fail results live on the eval scoreboard.
Run shape
- Harbor launches
roder exec --json --profile evalinside each task container. - The adapter records
roder-events.jsonl, final assistant text, stderr diagnostics, androder-run-summary.json. - Smoke and full-run configs preserve Docker task images by default so offline image preflight and targeted reruns can reuse them.
- Minimal parity configs can pin
[tools].allowlistto the native coding surface, includingunified_exec, freeformapply_patch, andview_image. - Analyzer scripts separate harness/setup/provider failures from ordinary reward-0 scored failures.
Deadline finalization
Eval runs can set a turn deadline. Roder reserves a finalization window, prompts the model to stop opening new work, and disables tools for the final answer pass. When a task ledger is required, the runtime asks for scoreable output checkpoints and ledger completion before finalizing.
Command behavior
exec_command and shell use the turn deadline to cap effective process timeouts. Command output is formatted consistently, UTF-8 truncation is safe, and timeout metadata is returned with the tool result so eval analysis can classify the failure.
The eval profile also enables loop-persistence defaults that keep a task moving after recoverable tool-failure loops or empty no-tool finalization. The safeguards remain bounded by per-turn tool-failure, model-call, and tool-round caps.
Plan-first reruns
The Harbor adapter can run a planning turn first, store roder-plan.md and its event/stderr artifacts, then resume the same thread for the implementation turn. This mode is targeted at tasks where planning, artifact hygiene, or policy framing is likely to matter; it is not the default for every full run because it adds wall time.
Current benchmark signal
The latest documented full run is a non-submittable Terminal-Bench 2.1 local development pass with codex/gpt-5.5 at xhigh reasoning. Harbor reported 53 reward-1 tasks and 36 reward-0 scored failures across all 89 tasks, with 0 Harbor exceptions. The local analyzer marked the run clean with no harness error classes. It used an access-token-only auth file and an agent timeout multiplier to keep Roder finalization inside Harbor's outer timeout, so it is trajectory evidence rather than a leaderboard-valid submission.
The newest targeted parity slice covers four tasks that Codex passed while the previous minimal Roder setup failed. With the native Codex-parity tool surface and eval-loop persistence enabled, all four scored reward 1.0; two still reported Harbor AgentTimeoutError exceptions, so the result is published as targeted trajectory evidence rather than a clean full-suite result.