Skip to content

v0.9.2 — OpenCode G2 empty-loop: response via 'message' preview key

Choose a tag to compare

@cskwork cskwork released this 04 Jul 02:35

Fix — OpenCode G2 empty-response-loop (part 1 of 2)

Healthy OpenCode tickets were moved to Blocked with
empty_response_loop budget exceeded (consecutive_empty_turns=3, threshold=3)
despite producing real output every turn.

  • OpenCode delivered its turn response only under the result / response keys of
    the EVENT_TURN_COMPLETED payload — keys _preview_from_payload never reads — so
    current_turn_message stayed blank and the G2 guard counted every turn empty.
  • Fix: the turn-completed payload now also carries message, so a productive turn
    populates the preview and resets the empty-turn counter. A genuinely empty turn
    still counts, so real empty-loop detection is preserved. EMPTY_TURN_LOOP_THRESHOLD
    unchanged at 3. Backend-local; no shared-code change.

Necessary but not sufficient on its own for OpenCode >= 1.x — the response text
itself wasn't being parsed. See v0.9.3.

Full test suite green (1058 passed).