deploy(vera): core 0.145.0 → 0.163.0, github-plugin → v0.7.0, pr-reviewer → v0.38.0 - #51
Conversation
…pr-reviewer v0.36.0 → v0.38.0
Core brings the actual fix for the panel's silent fallback gap: protoAgent#2995
("routing.fallback_models never applies to subagents") landed in v0.148.0 — every
panel finder runs as a subagent, so the observable failover from #2956 (0.145.0)
never protected reviews at all, only conversational turns. That's the root cause
behind the 2026-08-23 rate-limit incident where 3 PRs merged with all 8 panel
steps failing and the gateway fallback counter never moved.
pr-reviewer v0.38.0 carries the QA panel check-run gate (v0.36.0, already live —
her GitHub App already has checks:write), replay/promotion safety fixes (v0.36.0),
stricter verification coverage + reaffirm-on-rebase (v0.37.0), and a hung-round
fix (v0.38.0, #114). github-plugin v0.7.0 adds the PM-facing list/search verbs;
no config surface Vera uses changes.
Also: CheckoutCache.prune() (pr-reviewer-plugin#87) has been live since v0.36.0
(confirmed running in-container), so retire the qaEngineer#48 cron stopgap it
was scheduled to obsolete — script, watchdog mode, cron entry, README row.
Follow-up not in this change: pr-reviewer v0.37.0 wants the GitHub App to
subscribe to `pull_request_review_thread` so a resolved thread clears the QA
panel check without a new push — Vera's `protoreview` app isn't subscribed to
it yet. Needs a manual add in the app's webhook settings (no API for it).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M1eVZNokjz3vjPaGqrC3RP
There was a problem hiding this comment.
QA panel review — PASS
code-review-structural · head b2c41541eb2e · formal
Overall risk is low: this PR is a set of version bumps (protoagent core 0.145.0→0.163.0, github-plugin v0.5.0→v0.7.0, pr-reviewer-plugin v0.36.0→v0.38.0), a deletion of scripts/prune_checkout_cache.py, and README updates. No finder produced any findings, and the structural verify pass (code-review-structural:verify) received an empty array and had nothing to annotate. There is no fix-first item and no panel disagreement. Coverage gap: the change touches production code (version manifests, a deleted script, README) yet the entire panel returned zero findings; the structural pass appears to have been skipped or produced no output, so these files went under-read. If the deletion of prune_checkout_cache.py is intentional (e.g., superseded by a new mechanism), that's fine, but no finder confirmed the removal is safe.
No findings — the review came back clean.
findings JSON (machine-readable)
[]1 panel step(s) hit their time budget and were skipped this round: find_crossfile. The verdict stands on the remaining angles; a finding only that step would have caught could be missed — the next push re-runs the full panel.
|
@vera review |
There was a problem hiding this comment.
QA panel review — PASS
code-review-structural · head b2c41541eb2e · formal
PR #51 is clean: all five review finders returned zero findings in full agreement, and the verifier confirmed there is nothing to annotate. No blockers, no majors, no minors. The panel disagreed on nothing. Verification changed nothing — the empty array passed through unchanged. No prior requests to disposition. No gaps to flag; the structural verify pass ran as part of the panel and found no issues.
No findings — the review came back clean.
findings JSON (machine-readable)
[]
Summary
routing.fallback_modelswas only ever wired onto the lead agent; every panel finder runs as a subagent, so a rate-limited primary killed the whole panel instead of failing over. This is the root cause of the 2026-08-23 incident where 3 PRs merged with all 8 panel steps failing and the gateway fallback counter never moved. Reviewed the full changelog for the 18 releases in between — nothing else touches config surfaces Vera uses (model/OAuth/secrets).max_concurrent_panelscap; v0.38.0 fixes a hung round locking a PR out of review (#114).CheckoutCache.prune()(pr-reviewer-plugin#87, shipped v0.36.0) is already running in the live container, so removed the now-redundant script, watchdog mode, and cron entry.Action item not covered by this PR
pr-reviewer v0.37.0 wants the GitHub App subscribed to the
pull_request_review_threadwebhook event so resolving a review thread clears theQA panelcheck run without waiting for a new push. Vera'sprotoreviewGitHub App (checked viagh api /orgs/protoLabsAI/installations) already haschecks: writebut is not subscribed to that event yet — GitHub doesn't expose an API for this, it needs a manual toggle at the app's webhook settings. Not blocking; just means that one convenience doesn't fire yet.Test plan
python3 -m unittest discover tests— 18 passedCheckoutCache.prune()is live in the running container before removing the stopgapprotoreviewGitHub App's current permissions/events via the GitHub APIdocker inspect vera,docker logs vera | grep "app version changed") and smoke-test with a replay on an open PR🤖 Generated with Claude Code
https://claude.ai/code/session_01M1eVZNokjz3vjPaGqrC3RP