fix(cli): respect explicit provider pins and hint --force in CI approval errors#335
Conversation
…val errors Two CLI UX findings from the 2026-06-12 live build: 1. Smart routing silently discarded AGENT_PROVIDER_CODER=openai and re-routed the session to claude. Per ADR-006 precedence an explicit per-agent provider pin is the strongest operator intent, so the complexity router now stands down when AGENT_PROVIDER_<TYPE> is set (with an info line explaining why). The global AI_ENGINE_PROVIDER keeps today's behavior: cost-based routing may still pick the tier. 2. In CI/JSON mode an unapproved spec failed with only "review_required: This spec requires human approval before building." The error now tells the operator what to do: approve in the UI or pass --force for headless runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>
|
Warning Review limit reached
More reviews will be available in 8 minutes and 13 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
…wn model (#337) Live-build finding (2026-06-12, run 7): with AGENT_PROVIDER_CODER=openai and no explicit model anywhere, the coder session was created with the phase-model DEFAULT — which phase_config resolves to a claude-* id — and the OpenAI provider 404'd on claude-sonnet-4-5-20250929. The smart router used to mask this by replacing the model on its own; once an explicit provider pin makes the router stand down (#335), the claude-centric default leaks straight into the direct provider session. After provider/runtime resolution (and only when nothing pinned a model: no --model, no smart route, no runner route, no task_metadata phase model), a claude-family phase model headed to a non-Claude provider is now replaced with that provider's configured model (AGENT_MODEL_<TYPE> / <PROVIDER>_MODEL / provider default), with an info line stating the substitution. Signed-off-by: Oleg Miagkov <mrobenner@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>



Находки живой сборки №2 и №3 (CLI UX)
№3 — Smart routing молча перебивал
AGENT_PROVIDER_CODER=openaiи уводил сессию на claude. По precedence ADR-006 явный per-agent пин — сильнейшее намерение оператора: роутер теперь отступает при заданномAGENT_PROVIDER_<TYPE>(с info-строкой «Smart routing skipped: … pins the provider»). ГлобальныйAI_ENGINE_PROVIDERсохраняет текущее поведение — кост-роутинг по сложности остаётся фичей, когда оператор не пиновал роль.№2 —
review_requiredв CI давал только «This spec requires human approval before building» без выхода. Теперь сообщение подсказывает: одобрить в UI или--forceдля headless-прогонов.Tests: 268 passed по затронутой поверхности; ruff clean. Поведенческая пара к #333/#334 — вместе они доводят прод-конвейер до состояния «
AUTO_CODE_AUTONOMY=safe+AGENT_PROVIDER_CODER=openaiработает из коробки».🤖 Generated with Claude Code