mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #367] [MERGED] ci(cursor-review): drive the panel list from a variable so a tier A/B needs no PR #366
Labels
No labels
cursor-review-catalog-drift
groom
groom
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/github-workflows#366
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/github-workflows/pull/367
Author: @mattmillerai
Created: 10/7/2026
Status: ✅ Merged
Merged: 10/7/2026
Merged by: @mattmillerai
Base:
main← Head:matt/cursor-panel-models-var📝 Commits (4)
3a1ca3fci(cursor-review): drive the panel list from a variable so a tier A/B needs no PRcea0ebdci(cursor-review): log which panel list is in effect when none is overriddenbe87a4afix(cursor-review): address the panel findings on the panel_models variable69fcf34fix(cursor-review): hold a panel_models override to exactly one JSON document📊 Changes
3 files changed (+148 additions, -5 deletions)
View changed files
📝
.github/workflows/ci-cursor-review.yml(+44 -0)📝
.github/workflows/cursor-review.yml(+29 -4)📝
docs/callers/cursor-review.md(+75 -1)📄 Description
ELI5
panel_modelshas always been the documented way to A/B reasoning tiers — its own description says "e.g. an A/B of-xhighvs-maxreasoning tiers" — but no caller has ever passed it. So trying one meant editing the shared default and bumping the whole fleet, and reverting meant doing it again.This wires this repo's own caller to a variable:
Set it, watch a few rounds, unset it to revert.
Inert until used
The reusable reads an empty
panel_modelsas "use the built-in list", so an unset variable is exactly today's behaviour. Nothing changes on merge for this repo's caller, which stays pinned to0eac47euntil the next bump.A repo variable overrides an org variable of the same name, so one repo can trial a list the rest of the org isn't on, and an org value can be set later without touching any caller.
The first experiment
The panel's
-max→-xhightier drop. The judge already made that move in #243 on spend grounds, with the rationale recorded: it had run at xhigh with no observed quality gap whilemaxcost ~10% of every run.Two traps, documented
Cursor catalog ids are not API slugs. This is deliberately not pointed at the org's
CLAUDE_MODEL_*variables. Those hold Anthropic API slugs (claude-opus-5); the panel needs catalog ids with a tier suffix (claude-opus-5-thinking-xhigh). Preflight's live-catalog check would reject the former. The two look interchangeable and are not, so the docs say so explicitly.Change one axis at a time. Version and tier are separate variables; moving both leaves the result unattributable. Worth knowing for the obvious follow-up: Opus 5.5 is in the catalog and ZDR-clean, but ships no
-thinking-tier — soclaude-opus-5-5-xhighis not a like-for-like swap fromclaude-opus-5-thinking-max.Reusable-side hardening (
cursor-review.yml)Wiring the input to a variable makes it settable with no PR, so the reusable's override handling is tightened too — this part reaches every caller on its next bump:
["a"] ["b"]no longer passes on its last document);::workflow commands::into a public run log;Why
judge_modelis left aloneIts input carries a real default that
catalog-drift.pyparses out ofcursor-review.yml, and a caller passing an explicitly-empty value gets''rather than that default — so a variable-wired caller would have to restate the default and then drift from it. That change belongs in the reusable, not a caller.Tests
python3 -m unittest discover -s .github/cursor-review/tests -p 'test_*.py'— 1144 passpython3 .github/workflow-pins/check_workflow_pins.py— OKpython3 .github/agents-md-integrity/check_agents_md.py --root .— passedpanel_modelsconfirmed present at this caller's pinned ref (0eac47e), so the input resolves at startup today.Provenance
Authored by: agent-work loop
Verified:
panel_modelsstep script, extracted and run underbash -e -o pipefail: empty → built-in list; a single array → dedupedmodels=; multi-document,null-prefixed, non-string and malformed values → exit 1 with nomodelsoutputpanel_modelsexists at the caller's pinned ref0eac47eDeviations:
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.