diff --git a/.github/aicodingflow-tests/test_review_workflow_dispatch.py b/.github/aicodingflow-tests/test_review_workflow_dispatch.py index bbaa019..ecf4330 100644 --- a/.github/aicodingflow-tests/test_review_workflow_dispatch.py +++ b/.github/aicodingflow-tests/test_review_workflow_dispatch.py @@ -306,7 +306,7 @@ def test_review_workflow_resolves_pr_before_checkout_and_uses_normalized_event(s ai_step["uses"], "openai/codex-action@52fe01ec70a42f454c9d2ebd47598f9fd6893d56", ) - self.assertEqual(ai_step["timeout-minutes"], 20) + self.assertEqual(ai_step["timeout-minutes"], 60) self.assertIs(ai_step["with"]["allow-bots"], True) self.assertIn("Inspect files under pr-worktree", ai_step["with"]["prompt"]) self.assertIn("Read .agents/contracts/review.md", ai_step["with"]["prompt"]) @@ -317,6 +317,9 @@ def test_review_workflow_resolves_pr_before_checkout_and_uses_normalized_event(s self.assertIn("review_discussion_context.json", ai_step["with"]["prompt"]) self.assertIn("duplicate suppression only", ai_step["with"]["prompt"]) + claude_step = next(step for step in review_steps if step.get("name") == "run-ai-review-claude") + self.assertEqual(claude_step["timeout-minutes"], 60) + normalize_step = next(step for step in review_steps if step.get("name") == "normalize-review-output-path") self.assertIn("[ ! -f pr-worktree/review.json ] && [ -f review.json ]", normalize_step["run"]) self.assertIn("mv review.json pr-worktree/review.json", normalize_step["run"]) diff --git a/.github/workflows/review-pr.yml b/.github/workflows/review-pr.yml index 5ae2f03..f413143 100644 --- a/.github/workflows/review-pr.yml +++ b/.github/workflows/review-pr.yml @@ -292,7 +292,7 @@ jobs: - name: run-ai-review if: vars.AI_PROVIDER == '' || vars.AI_PROVIDER == 'codex' uses: openai/codex-action@52fe01ec70a42f454c9d2ebd47598f9fd6893d56 # v1.11 - timeout-minutes: 20 + timeout-minutes: 60 with: openai-api-key: ${{ secrets.CODEX_API_KEY }} model: ${{ vars.CODEX_MODEL }} @@ -330,7 +330,7 @@ jobs: - name: run-ai-review-claude if: vars.AI_PROVIDER == 'claude' uses: anthropics/claude-code-action@c0949c50a78c1ec8ce2647db36629b870e715d0c # v1 (2026-11-04) - timeout-minutes: 20 + timeout-minutes: 60 with: github_token: ${{ github.token }} anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}