feat(catalog): provider-level auto-review model selection - #4100
feat(catalog): provider-level auto-review model selection#4100harryzhou2000 wants to merge 1 commit into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
|
⏳ DRAFT
What to do
Review readiness checklist
✅ 4/4 boxes ticked. This pull request was already a draft. Its draft status will be preserved after every issue above is resolved. |
8a0d94b to
1afdd77
Compare
리뷰 · 우선순위 66 / 80설명 이 PR(#4100, @harryzhou2000, Draft)은 제공자마다 다른 승인(auto-review) 모델을 고르게 하는 카탈로그/설정 확장이다. 지금 왜 지금 무엇을 건드리는가. 규모는 약 +910/−17이다. 핵심은 게이트 상태. 라벨에 라인 - 이게 무슨 문제다
테스트 - catalog/convergence/config-load/management에 회귀가 꽤 있다(+약 380 테스트 줄). 셀렉터 해석·openai 거절·load degrade 축은 잠근 느낌이다. 전체 suite의 메인테이너의 판단이 필요한 지점
너의 추천 방향은 받고, 지금은 스폰서+Draft 해제가 먼저다. 코드/문서/테스트는 전역 auto-review의 자연스러운 제공자 스코프 확장이고 #2527 초대를 이행한다. 다음 스텝: (1) 메인테이너가 auth-cors diff를 확인한 뒤 이 댓글은 grok-bot이 작성했습니다 |
Summary
Codex chooses the model that reviews approval requests from the catalog field
auto_review_model_override. OpenCodex already ships a rootauto_review_modelselector in$CODEX_HOME/config.toml, but that selector is global. This PR adds provider-scoped selection so routed providers can use different, usually cheaper, reviewers:providers.<name>.autoReviewModel: provider-wide reviewer target.providers.<name>.autoReviewModelOverrides: per-model reviewer targets, keyed by upstream model ids; entries win over the provider-wide value.Values may be a bare model id of the same provider or a full public catalog slug such as
opencode-go/deepseek-v4-flash. During catalog sync each selector is resolved against the final catalog and stamped asauto_review_model_overrideon routed rows. A provider stamp wins over the root selector on its own routed rows; the root selector remains the fallback for native rows and routed rows without a provider stamp. Removing the root selector never clears provider stamps, and removing a provider selector clears only that provider's stamps. Unknown or malformed targets fail closed for the override only, emit a diagnostic, and preserve normal upstream auto-review behavior.The fields are carried through config load with degradation, provider management POST and PATCH, and the provider editor DTO. The canonical
openaiprovider rejects them. Documentation is added to the provider configuration reference.This is the focused follow-up invited when the earlier provider-scoped PR #2527 was closed as superseded by the global selector.
Verification
bun run typecheck: clean.bun run privacy:scan: clean.bun test tests/codex-integration/codex-catalog.test.ts: 319 pass / 0 fail.bun test tests/codex-integration/codex-convergence-account-selectors.test.ts: 28 pass / 0 fail.bun run testwas run after rebasing onto the latestdev. The only failing case istests/update/update-stop-first.test.ts> "npm launcher restarts the stopped runtime after a staged update failure", which also fails identically on a pristineupstream/devsnapshot in this environment; it is unrelated to this change.git diff --check: clean.Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
All CI tests are green on my local testing.
I pushed my PR to the latest dev commit.
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.