diff --git a/.github/workflows/opencode-review.yml b/.github/workflows/opencode-review.yml index 92c5bcc55..1e17bb067 100644 --- a/.github/workflows/opencode-review.yml +++ b/.github/workflows/opencode-review.yml @@ -2848,7 +2848,6 @@ jobs: "mode": "primary", "prompt": "{file:./ci-review-prompt.md}", "steps": 100, - "reasoningEffort": "high", "permission": { "edit": "deny", "bash": "allow", @@ -2868,7 +2867,6 @@ jobs: "mode": "primary", "prompt": "{file:./ci-review-prompt.md}", "steps": 150, - "reasoningEffort": "high", "permission": { "edit": "deny", "bash": "allow", @@ -2889,7 +2887,6 @@ jobs: "prompt": "{file:./code-reviewer-prompt.md}", "steps": 100, "color": "#7c3aed", - "reasoningEffort": "high", "permission": { "edit": "deny", "read": "allow", diff --git a/opencode.jsonc b/opencode.jsonc index 57362d048..13238d02f 100644 --- a/opencode.jsonc +++ b/opencode.jsonc @@ -56,7 +56,6 @@ "mode": "primary", "prompt": "{file:./ci-review-prompt.md}", "steps": 4, - "reasoningEffort": "high", "permission": { "edit": "deny", "bash": "allow", @@ -76,7 +75,6 @@ "mode": "primary", "prompt": "{file:./ci-review-prompt.md}", "steps": 12, - "reasoningEffort": "high", "permission": { "edit": "deny", "bash": "allow", @@ -97,7 +95,6 @@ "prompt": "{file:./code-reviewer-prompt.md}", "steps": 16, "color": "#7c3aed", - "reasoningEffort": "high", "permission": { "edit": "deny", "read": "allow", diff --git a/tests/test_opencode_agent_contract.py b/tests/test_opencode_agent_contract.py index ce07fefc4..b259188b0 100644 --- a/tests/test_opencode_agent_contract.py +++ b/tests/test_opencode_agent_contract.py @@ -19,7 +19,12 @@ def test_code_reviewer_subagent_contract_is_configured(): assert reviewer["prompt"] == "{file:./code-reviewer-prompt.md}" assert reviewer["steps"] == 16 assert reviewer["color"] == "#7c3aed" - assert reviewer["reasoningEffort"] == "high" + # Reasoning effort is model-level only (see the model configs below and the + # ci-autofix agent). An agent-level reasoningEffort is applied to every + # candidate the agent runs, including non-reasoning models like + # github-models/openai/gpt-4.1, whose OpenAI backend rejects the + # reasoning_effort request argument outright. + assert "reasoningEffort" not in reviewer assert "model" not in reviewer assert "Reviews only; never edits code" in reviewer["description"] @@ -36,7 +41,10 @@ def test_code_reviewer_subagent_contract_is_configured(): assert permission["lsp"] == "deny" for primary_agent in ("ci-review", "ci-review-fallback"): - assert agents[primary_agent]["reasoningEffort"] == "high" + # Reasoning effort must NOT be set at the agent level: it would be sent + # to every pool candidate, and non-reasoning models (gpt-4.1) reject the + # reasoning_effort argument. Reasoning models carry it per-model instead. + assert "reasoningEffort" not in agents[primary_agent] permission = agents[primary_agent]["permission"] assert permission["bash"] == "allow" assert permission["task"] == "allow"