Skip to content

ci: upgrade pr-reviewer-action to v1.2.0 (routing + escalation)#344

Merged
joryirving merged 2 commits into
mainfrom
chore/ai-review-v1.2.0
Jun 10, 2026
Merged

ci: upgrade pr-reviewer-action to v1.2.0 (routing + escalation)#344
joryirving merged 2 commits into
mainfrom
chore/ai-review-v1.2.0

Conversation

@joryirving

Copy link
Copy Markdown
Contributor

Upgrades the AI PR review workflow to pr-reviewer-action v1.2.0 and adopts the new routing/reliability features.

Repo character: application code — routing sends routine changes to the fast model; auth/route/secret-touching changes go to the smart model.

What changed and why

  • Pin bumped to the v1.2.0 release SHA (ff03870). Feature-heavy release: model routing + escalation, structured findings, required-check validation, incremental-review and CI-wait fixes, large context/perf work. All backward-compatible.
  • review_routing_mode: auto — PRs are classified deterministically; low-risk ones (e.g. routine dependency bumps) go to the fast model, risk-flagged ones (auth, secrets, migrations, public routes, linked security issues) go straight to the smart model. Fast stays your current PRIMARY_MODEL. Smart is wired as vars.SMART_MODEL || vars.FALLBACK_MODELno new vars are required; it uses your fallback model until you optionally add a SMART_MODEL (and SMART_FORMAT if it differs) repo variable pointing at a bigger model.
  • Escalation (on by default with routing) — if the fast review looks insufficient (request_changes, unaddressed required checks, suspiciously short/unsure review, blocker signals), the review automatically re-runs on the smart model and only that result is published.
  • on_model_failure: notice + retries 8 → 3 — when the homelab endpoint is down, instead of hammering it (~8 attempts with backoff) and leaving a red check with no explanation, the action now tries 3 times, then posts a visible "review could not run" notice as request_changes. Faster feedback, never silently approves.
  • inline_findings: "true" — findings that anchor to a diff line are posted as native line-anchored review comments (capped at 20) instead of only prose in the review body.
  • verdict_policy: findings_severity_gated — the approve/request-changes verdict is now derived deterministically from the structured findings (request_changes iff any blocker-severity finding) instead of trusting the model's mood, since this repo publishes native review verdicts. Falls back to the model verdict when no findings are returned.

Now-active defaults worth knowing (no config needed)

  • review_scope: auto — full review first, then incremental reviews of just the new commits on later pushes. Significant token savings on long-lived PRs.
  • validate_required_checks: auto (mode warn) — risky PRs get classifier-derived required checks; reviews that never address them get a visible "Unaddressed required checks" section.

Choices for you (left out on purpose — flag if you want any)

  1. SMART_MODEL repo variable — add it to route risky PRs/escalations to a stronger model than your current fallback. Without it, smart = FALLBACK_MODEL.
  2. model_context_tokens — if the models behind your LiteLLM endpoint have small context windows (8k–32k local models), set this to the real window and the action right-sizes the corpus instead of using the coarse context_limit_mode: normal (~55–70k tokens). I don't know your per-model windows, so I didn't guess.
  3. ai_response_format: json_object — helps small local models emit parseable JSON, but errors on backends that don't support it; only enable if you know the models behind LiteLLM accept it.
  4. ci_status_check: "true" — waits (up to 5 min) for CI before reviewing so the review can see CI state. Adds latency to every review; worth it only if you want the reviewer gating on test results.
  5. required_check_validation_mode: fail — make unaddressed required checks block instead of warn.

🤖 Generated with Claude Code

its-saffron[bot]

This comment was marked as outdated.

@joryirving

Copy link
Copy Markdown
Contributor Author

Follow-up grounded in the actual LiteLLM config (home-ops litellm-configmap):

  • Added ai_response_format: json_object in the latest commit. Safe because LiteLLM runs drop_params: true (backends that don't support it just don't see the param), and the review llama.cpp servers support grammar-constrained JSON — this directly reduces parse failures/retries.
  • model_context_tokens: intentionally still unset. The review alias has a 200k input window, so the default context_limit_mode: normal (~55–70k tokens) fits with lots of headroom. Setting it to 200000 would ~3x the corpus and slow llama.cpp prompt eval for little gain. (Only needed if a repo ever points at ryzen — 8k ctx.)
  • SMART_MODEL recommendation: smart currently resolves to FALLBACK_MODEL (MiniMax-M2.7, anthropic format) — already a reasonable smart tier. If you want a stronger escalation model, reasoning-coder (glm-5.1 with thinking, openai format) or opencode-go-deepseek-v4-pro are the best candidates in the proxy; set repo vars SMART_MODEL + SMART_FORMAT=openai. Note the chatgpt/* entries won't work for this action — they're mode: responses, not chat completions.

its-saffron[bot]

This comment was marked as outdated.

Rebuilt on current main (renovate pin bump landed underneath).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@joryirving joryirving force-pushed the chore/ai-review-v1.2.0 branch from b46a721 to 30196bd Compare June 10, 2026 17:54
@its-saffron its-saffron Bot dismissed stale reviews from themself June 10, 2026 17:56

Superseded by a newer automated review for this pull request.

its-saffron[bot]

This comment was marked as outdated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@its-saffron its-saffron Bot dismissed their stale review June 10, 2026 18:10

Superseded by a newer automated review for this pull request.

@its-saffron its-saffron Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Automated Review

Incremental review: reviewed changes since the last managed review. This is not a full re-review of the entire PR.

Analysis engine: review@https://litellm.jory.dev/v1 (openai) (incremental delta review)

Recommendation

Approved. This PR performs a minor version bump of the pr-reviewer-action from v1.2.1 to v1.2.2. Based on the provided release notes for v1.2.0 and the incremental diff, this is a routine dependency update to a newer patch/minor version within the same feature set.

Change-by-change findings

.github/workflows/ai-pr-review.yaml

  • Updated uses: misospace/pr-reviewer-action@... from v1.2.1 SHA to v1.2.2 SHA (e891235e8e3e75824b88fb696b1f7b4816122737).

Standards Compliance

  • Dependency Updates: The update follows the repository's semver-based release process. The PR description notes that v1.2.0 was feature-heavy and backward-compatible, and this bump to v1.2.2 is a subsequent minor update.
  • CI/Lint: No changes to the build or linting logic were detected; only the action version was updated.

Linked Issue Fit

  • The PR title and body indicate this is a CI maintenance task to adopt the latest features and reliability improvements from the pr-reviewer-action release. It aligns with the goal of maintaining the AI PR review workflow.

@joryirving joryirving merged commit ba3ca65 into main Jun 10, 2026
3 checks passed
@joryirving joryirving deleted the chore/ai-review-v1.2.0 branch June 10, 2026 18:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant