Skip to content

v1.13.0 — harness quality

Latest

Choose a tag to compare

@erain erain released this 09 Jun 23:17
· 9 commits to main since this release

The complete harness-quality queue from docs/coding-harness-roadmap.md — eight improvements distilled from source-verified analysis of pi, Cline, Codex CLI, and Gemini CLI, targeting Gemini 3.x first and open-weight OpenRouter/NVIDIA models second.

P0 — wasted-turn killers

  • edit_file repair ladder (#338): exact → whitespace → indentation (re-indented replacement) → punctuation-folding → block-anchor matching, over-escape repair, BOM/CRLF preservation, updated-lines echo, instructive errors, lazy-placeholder guard.
  • Structured output truncation (#339): head+tail shell capture with omitted counts and a named full-output spool file; read_file offset/max_lines paging with "Use offset=N to continue".
  • History hardening (#340): loop.HardenHistory synthesizes results for dangling tool calls, drops orphans/empty turns, normalizes call IDs, strips foreign-model artifacts — before every request.

P1 — reliability and cost

  • Retry/overflow recovery (#341, ADR-0017): classified loop-level retries with backoff and server retry hints; typed OverflowError → compact-once-and-retry in sessions.
  • Compaction upgrade (#342): structured state snapshot with injection firewall, handoff framing, cumulative file ledger, tool-pair-safe splits, inflation guard.
  • Capability registry + tool-owned prompts (#345): providers.Capabilities per provider; coding.SystemPrompt assembled from the active toolset (the --coding agent previously ran with no system prompt at all).

P2 — polish

  • Next-speaker stall recovery (#343): bounded "Please continue." nudges for Gemini's narrate-then-stop stall, auto-enabled per the registry.
  • Loop guardrails (#344): graduated identical-call and consecutive-mistake detectors with typed halt errors.

Default-behavior notes: loop-level retries and guardrails are on by default with opt-outs (RetryPolicy.Disabled, GuardrailPolicy.Disabled); a 429 now retries up to 3× before failing. All changes additive otherwise; full changelog in CHANGELOG.md.