v0.9.2 — OpenCode G2 empty-loop: response via 'message' preview key
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/responsekeys of
theEVENT_TURN_COMPLETEDpayload — keys_preview_from_payloadnever reads — so
current_turn_messagestayed 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).