Observed while dogfooding conclave to audit mcp-warden #15: in --mode adversarial, when the single proposer model returned a malformed response (gemini: missing candidates[0].content.parts (KeyError)), the proposal failed and the ENTIRE run aborted with "no verdict produced" — the critics/judge never ran. Re-running with --proposer claude worked, but the run should not be a single point of failure.
Desired behavior (pick one, configurable):
- Fall back to the next council member as proposer when the chosen proposer fails, OR
- Degrade gracefully to
synthesize over the surviving members with a clear warning, OR
- At minimum, surface a non-zero/actionable result instead of silently producing no verdict.
Where: conclave's adversarial mode orchestration (the propose→refute→judge pipeline) + the gemini adapter's malformed-response handling (a missing candidates[0].content.parts should raise a typed, retryable error, consistent with the partial-failure resilience the council already has for missing keys).
Repro: conclave ask <prompt> -c grok,gemini,claude,perplexity,openai --mode adversarial --proposer gemini when gemini returns an empty/blocked response.
Observed while dogfooding conclave to audit mcp-warden #15: in
--mode adversarial, when the single proposer model returned a malformed response (gemini:missing candidates[0].content.parts (KeyError)), the proposal failed and the ENTIRE run aborted with "no verdict produced" — the critics/judge never ran. Re-running with--proposer claudeworked, but the run should not be a single point of failure.Desired behavior (pick one, configurable):
synthesizeover the surviving members with a clear warning, ORWhere:
conclave's adversarial mode orchestration (the propose→refute→judge pipeline) + the gemini adapter's malformed-response handling (a missingcandidates[0].content.partsshould raise a typed, retryable error, consistent with the partial-failure resilience the council already has for missing keys).Repro:
conclave ask <prompt> -c grok,gemini,claude,perplexity,openai --mode adversarial --proposer geminiwhen gemini returns an empty/blocked response.