Skip to content

fix(agentic): verdict extractor records NONE when the token is a markdown heading #1563

Description

@rickylabs

Summary

The OpenHands verdict extractor records verdict: NONE when the agent's summary emits its verdict token as a markdown heading (## OPENHANDS_VERDICT: PASS) rather than a bare line. The evaluation is complete and unambiguous; only the machine-readable marker is wrong.

Reproduction

PLAN-EVAL rerun on PR #1558 (issue #1459), run 31593309658, model openrouter/minimax/minimax-m3.

The posted summary contains, as its final line:

## OPENHANDS_VERDICT: PASS

and its own body states Verdict: **PASS**. The comment's machine marker nevertheless reads:

<!-- openhands-run: {"run_id":31593309658,...,"verdict":"NONE","verdict_source":"none"} -->

and the rendered header prints OPENHANDS_VERDICT: NONE.

Why it matters

verdict is what automation and a supervisor key off. A PASS recorded as NONE:

  • makes a completed evaluation look like it produced nothing, which is indistinguishable from a failed or hung run;
  • pressures the supervisor into re-running an evaluator purely to obtain a parseable token, which is duplicate spend the phase-eval policy explicitly forbids;
  • would, in an automated gate, block a PR whose evaluation actually passed.

The same class as #1561: the tooling's failure mode is to report nothing useful rather than to report the problem.

Acceptance criteria

  • A verdict token is extracted whether it appears as a bare line or with leading markdown heading markers / emphasis
  • When extraction genuinely finds no token, the summary says so explicitly and distinguishes "agent emitted no verdict" from "verdict could not be parsed"
  • A test covers the heading-prefixed form, since that is how at least one approved evaluator model formats it

Provenance

0.0.6 runtime lane reopen, 2026-08-12. PR #1558 run 31593309658. The supervisor accepted the body verdict rather than re-running, and recorded the discrepancy instead.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions