Review adapter falls back when a provider rejects response_format - #11
Conversation
Some OpenAI-compatible providers return HTTP 500 on response_format:
{type: json_object} (seen with a GLM reasoning model on Runware), so the
model review lenses produced no output and the review failed closed even
though the connection was fine. The adapter now sends response_format on the
first attempt and drops it on retry, leaning on the system prompt and the
extractor; it also logs the raw error body on a persistent failure so the
cause is named. Test: a provider that 500s on response_format still yields a
review via the retry.
Signed-off-by: Christoph <awchristoph@gmail.com>
|
ASDD review - advisory (recommendation:
The review runtime returned invalid output; a human should review manually. Security scan (deterministic + SAST): 2 finding(s). Impact scan: 1 finding(s), 0 block. SECURITY - concerns
IMPACT - concerns
Generated by the ASDD advisory review. Mode: |
A reasoning model reasons at length and can exceed a hosted inference window on a real code diff, so the review times out and posts no lenses while trivial diffs pass and look fine (observed live: a GLM reviewer 500s on a real diff). doctor and setup now flag a reasoning reviewer by name and point to a faster one. It is a property of the model, not the host, so it warns regardless of provider. WARN, never a block. Signed-off-by: Christoph <awchristoph@gmail.com>
The model call had a hardcoded 180s timeout, so a reasoning reviewer that hangs burned the full server timeout on every retry before failing closed. Add a configurable per-call timeout (review.timeout_seconds / ASDD_MODEL_TIMEOUT, default 45s) above a fast reviewer's real-diff time and below a reasoning model's server-side hang, and on a timeout emit an actionable message naming the cause. run-review maps review.timeout_seconds to the adapter. Signed-off-by: Christoph <awchristoph@gmail.com>
|
ASDD review - advisory (recommendation:
The review runtime returned invalid output; a human should review manually. Security scan (deterministic + SAST): 2 finding(s). Impact scan: 1 finding(s), 0 block. SECURITY - concerns
IMPACT - concerns
Generated by the ASDD advisory review. Mode: |
Summary
Some OpenAI-compatible providers return HTTP 500 on
response_format: {type: json_object}(seen with a GLM reasoning model on Runware). The review adapter sent that parameter on every attempt, so the model lenses produced no output and the review failed closed even though the connection, model, and key were fine. The adapter now asks forresponse_formaton the first attempt and drops it on retry, leaning on the system prompt (which already demands JSON only) and the tolerant extractor; a provider that accepts the parameter still gets it on the first, cheapest try. It also logs the raw error body on a persistent failure so the cause is named rather than blind.Disclosure (required - ASDD)
Agent identity:
asdd-agentInstructed by (human handle):
welsbachChecklist
git commit -s)