fix(cursor): quarantine catalog models whose runs always fail upstream - #2653
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
✅ Deterministic PR hygiene checks passed. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 778766c038
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ): T[] { | ||
| return configured.filter(model => | ||
| isCursorRouterModelId(model.id) || isCursorModelAvailableForAccount(model.id, liveIds), | ||
| !CURSOR_KNOWN_UNCALLABLE_MODEL_IDS.has(model.id) |
There was a problem hiding this comment.
Scope the quarantine to canonical Cursor catalogs
For a custom provider using adapter: "cursor", this helper is still called by src/codex/catalog/provider-fetch.ts; if live discovery confirms claude-opus-5 plus any other configured model, the other model keeps available nonempty and this check silently removes the explicitly configured Opus model, even when the custom endpoint can call it. Apply the quarantine only when the models originate from the canonical Cursor registry/transport, rather than to every provider using this adapter.
AGENTS.md reference: src/AGENTS.md:L10-L10
Useful? React with 👍 / 👎.
리뷰 · 우선순위 57 / 80설명 이 풀 리퀘스트는 고침은 두 겹입니다. 정적 씨드에서 맨 격리 집합이 한 id뿐인 것은 지금 증거에 맞습니다. 집합을 크게 만들면 아직 되는 모델을 숨길 수 있습니다. 다만 필터는 이 PR도 지금 src/adapters/cursor/discovery.ts:248 - 정적 씨드가 맨 메인테이너의 판단이 필요한 지점
너의 추천 #2650-#2652가 먼저 들어간 뒤 이 PR을 마지막에 합치세요. 지금 이 댓글은 grok-bot이 작성했습니다 |
eda8380 to
81628b6
Compare
778766c to
13c838c
Compare
81628b6 to
9de5682
Compare
13c838c to
7f6c4de
Compare
7f6c4de to
6efe59a
Compare
9de5682 to
69a0b71
Compare
Summary
/v1/modelsservedcursor/claude-opus-5while every live Run against it failed upstream withCursor Connect error not_found(probe C2a in devlog/_plan/260826_cursor_responses_gap, 100% failure incl. plain retry) — a picker offering a model that cannot answer.claude-opus-5row fromCURSOR_STATIC_MODELSand adds a narrowCURSOR_KNOWN_UNCALLABLE_MODEL_IDSquarantine applied insidefilterCursorConfiguredModelsByLiveDiscovery, so live, cached, stale, and static serving paths all agree.-fast/-thinkingsiblings (separate wire families with success evidence) are preserved; custom user provider overrides are not routed through this canonical seed and stay untouched.Stacked on #2652. Design: 060_catalog_honesty.md.
Verification
bun test tests/cursor-uncallable-quarantine.test.ts— 5 pass (seed removal, sibling survival, live-list drop, empty-live degradation path, set narrowness).bun test tests/cursor-discovery.test.ts tests/cursor-static-catalog.test.ts tests/cursor-hardening.test.ts tests/cursor-effort-suffix.test.ts— 92 pass 0 fail total.bun x tsc --noEmit— clean.Checklist