Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions docs-site/src/content/docs/guides/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -1417,8 +1417,17 @@ dashboard or `custom` in `ocx init` and enter the base URL. See the

Codex asks a second model to review approval requests, and takes that reviewer from
`auto_review_model_override` on the catalog row of the current turn's model. The root
`auto_review_model` in `$CODEX_HOME/config.toml` applies one reviewer to every row. To give a
routed provider its own — usually cheaper — reviewer, set the selector on that provider row in
`auto_review_model` in `$CODEX_HOME/config.toml` is Codex's fallback. The dashboard's global
**Auto-review override** in Model settings applies one reviewer to all catalog rows that do not
have a provider-scoped reviewer. It stores `autoReviewOverride` in `~/.opencodex/config.json`; the
setting must be enabled and name a model. An enabled setting with no model stays unapplied and
leaves the Codex fallback in effect. A catalog refresh is a separate state: after a save it can
stay pending, and the Models page reports it so you can retry with `ocx sync`. From the CLI, read
the setting with `ocx models auto-review status` or
change it with `ocx models auto-review set <model|-> [--enabled <on|off>]`; use `-` to clear the
model. CLI output recommends `ocx sync` when a refresh can be retried. If a refresh fails, the
setting remains saved and the command exits 1. Resolve the failure before syncing. To give a routed
provider its own — usually cheaper — reviewer, set the selector on that provider row in
`~/.opencodex/config.json`:

```json
Expand Down Expand Up @@ -1450,9 +1459,10 @@ no per-model override, leaving a valid provider-wide target as fallback. Whateve
keep the root selector, or upstream behavior when that is unset. Removing the root selector leaves
provider stamps alone, and removing a provider selector clears only that provider's stamps.

These fields are available through configuration, `PATCH /api/providers?name=<provider>`, and
the dashboard raw JSON provider editor; dedicated form controls are not present. The canonical `openai` provider
rejects them. Field-by-field rules live in the
Provider fields are available through configuration, `PATCH /api/providers?name=<provider>`, and
the dashboard raw JSON provider editor; dedicated provider form controls are not present. The
global override is available in Model settings. The canonical `openai` provider rejects provider
reviewer fields. Field-by-field rules live in the
[provider configuration reference](/reference/configuration/providers/#auto-review-approval-model-selection).

## Rate limits in the providers overview
Expand Down
14 changes: 11 additions & 3 deletions docs-site/src/content/docs/reference/configuration/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -511,9 +511,17 @@ optional pin in a hand-edited file is ignored on load without discarding the res

Codex reads `auto_review_model_override` from the catalog row of the current turn's model to
choose the model that reviews approval requests. The root `auto_review_model` setting in
`$CODEX_HOME/config.toml` applies one reviewer to task catalog rows; the provider-scoped fields
below override it per provider. The [provider guide](/guides/providers/#approval-reviewer-per-provider)
has the operator workflow and a worked example.
`$CODEX_HOME/config.toml` supplies Codex's fallback. The dashboard's global **Auto-review override**
in Model settings stores `autoReviewOverride` in `~/.opencodex/config.json` and takes precedence
over that fallback; the provider-scoped fields below still win on their own rows. The global setting
must be enabled and name a model. An enabled setting with no model stays unapplied and leaves the
Codex fallback in effect. A catalog refresh is a separate state: after a save it can stay pending,
and the Models page reports it so you can retry with `ocx sync`. CLI users can read the setting with
`ocx models auto-review status` or change it with
`ocx models auto-review set <model|-> [--enabled <on|off>]`; use `-` to clear the model. CLI output
recommends `ocx sync` when a refresh can be retried. If a refresh fails, the setting remains saved
and the command exits 1. Resolve the failure before syncing. The [provider
guide](/guides/providers/#approval-reviewer-per-provider) has the operator workflow and a worked example.

When native OpenAI rows are included and the final catalog has an ordinary bare native row
other than Reserve (hidden rows count), OpenCodex keeps the hidden `codex-auto-review` row so
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,9 @@ export const de: Record<TKey, string> = {
"dash.shadowCallTooltip": "Die Codex-App ruft im Hintergrund ein Hilfsmodell für Titelgenerierung, Commit-Nachrichten und Skill-Orchestrierung auf. Das Modell wechselt zwischen Client-Versionen, daher fängt opencodex diesen Satz ab: {models}.",
"models.shadowCallIntercept": "Shadow-Call-Abfangen",
"models.shadowCallInterceptHint": "Fängt die Hintergrund-Hilfsaufrufe der Codex-App ({models}) ab und leitet sie an das gewählte Modell um.",
"models.autoReviewOverride": "Auto-Review-Überschreibung",
"models.autoReviewOverrideHint": "Legt fest, welches Modell Codex für die automatische Prüfung (Approval-Reviewer) verwendet. Wird beim Katalog-Abgleich auf alle Zeilen angewendet; ein autoReviewModel auf Anbieterebene hat weiterhin Vorrang.",
"models.autoReviewPending": "Ausstehend",
"dash.sidecarBackend": "Backend",
"dash.sidecarModel": "Modell",
"dash.backendAuto": "Automatisch",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,9 @@ export const en = {
"dash.shadowCallTooltip": "Codex App makes background helper calls for thread title generation, commit message generation, and skill orchestration. The helper model changed across client versions, so opencodex intercepts every model in this set: {models}. Enable this to redirect those calls to your chosen model.",
"models.shadowCallIntercept": "Shadow Call Intercept",
"models.shadowCallInterceptHint": "Intercepts Codex App's background helper calls ({models}) for titles and commit messages and redirects them to your chosen model.",
"models.autoReviewOverride": "Auto-review override",
"models.autoReviewOverrideHint": "Chooses the model Codex uses for auto-review (the approval reviewer). Applied to every catalog row at sync; a provider-scoped autoReviewModel still takes precedence on its own rows.",
"models.autoReviewPending": "Pending",
"dash.sidecarBackend": "Backend",
"dash.sidecarModel": "Model",
"dash.backendAuto": "Auto",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -488,6 +488,9 @@ export const fr: Record<TKey, string> = {
"dash.shadowCallTooltip": "L’application Codex effectue des appels auxiliaires en arrière-plan pour générer les titres de fils, les messages de commit et orchestrer les compétences. Le modèle auxiliaire ayant changé selon les versions du client, opencodex intercepte tous les modèles de cet ensemble : {models}. Activez cette option pour rediriger ces appels vers le modèle choisi.",
"models.shadowCallIntercept": "Interception des appels fantômes",
"models.shadowCallInterceptHint": "Intercepte les appels auxiliaires en arrière-plan de l’application Codex ({models}) pour les titres et les messages de commit, puis les redirige vers le modèle choisi.",
"models.autoReviewOverride": "Remplacement de la revue automatique",
"models.autoReviewOverrideHint": "Choisit le modèle que Codex utilise pour la revue automatique (le modèle de revue des demandes d'approbation). Appliqué à chaque ligne du catalogue à la synchronisation ; un autoReviewModel défini au niveau du fournisseur reste prioritaire sur ses lignes.",
"models.autoReviewPending": "En attente",
"dash.sidecarBackend": "Moteur",
"dash.sidecarModel": "Modèle",
"dash.backendAuto": "Auto",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,9 @@ export const ja: Record<TKey, string> = {
"dash.shadowCallTooltip": "Codex App はスレッドタイトル生成、コミットメッセージ生成、スキルオーケストレーションをバックグラウンドで呼び出します。使われるモデルはクライアントのバージョンによって変わるため、opencodex は {models} をまとめて傍受します。これをオンにすると、それらの呼び出しを選択したモデルにリダイレクトします。",
"models.shadowCallIntercept": "シャドウコール傍受",
"models.shadowCallInterceptHint": "Codex App のバックグラウンドヘルパー呼び出し({models}: タイトル、コミットメッセージ)を傍受し、選択したモデルにリダイレクトします。",
"models.autoReviewOverride": "自動レビューの上書き",
"models.autoReviewOverrideHint": "Codex の自動レビュー(承認レビュアー)が使うモデルを指定します。カタログ同期時にすべての行へ適用され、プロバイダー固有の autoReviewModel がその行では引き続き優先されます。",
"models.autoReviewPending": "保留中",
"dash.sidecarBackend": "バックエンド",
"dash.sidecarModel": "モデル",
"dash.backendAuto": "自動",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,9 @@ export const ko: Record<TKey, string> = {
"dash.shadowCallTooltip": "Codex 앱은 스레드 제목 자동 생성, 커밋 메시지 생성, 스킬 오케스트레이션 같은 내부 작업을 백그라운드로 호출합니다. 이때 쓰는 모델은 클라이언트 버전마다 달라서 opencodex는 {models}를 모두 가로챕니다. 이 설정을 켜면 해당 호출이 선택한 모델로 넘어갑니다.",
"models.shadowCallIntercept": "쉐도우 호출 가로채기",
"models.shadowCallInterceptHint": "Codex 앱의 백그라운드 호출({models}, 제목·커밋 메시지)을 가로채 선택한 모델로 바꿉니다.",
"models.autoReviewOverride": "자동 검토 재정의",
"models.autoReviewOverrideHint": "Codex의 자동 검토(승인 검토자)에 사용할 모델을 지정합니다. 카탈로그 동기화 시 모든 행에 적용되며, 공급자별 autoReviewModel이 해당 행에서 계속 우선합니다.",
"models.autoReviewPending": "보류 중",
"dash.sidecarBackend": "백엔드",
"dash.sidecarModel": "모델",
"dash.backendAuto": "자동",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/pt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,9 @@ export const pt: Record<TKey, string> = {
"dash.shadowCallTooltip": "O Codex App faz chamadas auxiliares em segundo plano para geração de título de thread, geração de mensagem de commit e orquestração de skills. O modelo auxiliar mudou entre versões do cliente, então o opencodex intercepta todos os modelos deste conjunto: {models}. Ative para redirecionar essas chamadas ao modelo escolhido.",
"models.shadowCallIntercept": "Shadow Call Intercept",
"models.shadowCallInterceptHint": "Intercepta as chamadas auxiliares em segundo plano do Codex App ({models}) para títulos e mensagens de commit e as redireciona ao modelo escolhido.",
"models.autoReviewOverride": "Substituição da revisão automática",
"models.autoReviewOverrideHint": "Define o modelo que o Codex usa na revisão automática (revisor de aprovação). Aplicado a todas as linhas do catálogo na sincronização; um autoReviewModel no provedor continua tendo prioridade nas próprias linhas.",
"models.autoReviewPending": "Pendente",
"dash.sidecarBackend": "Backend",
"dash.sidecarModel": "Modelo",
"dash.backendAuto": "Automático",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,9 @@ export const ru: Record<TKey, string> = {
"dash.shadowCallTooltip": "Codex App в фоновом режиме вызывает служебную модель для генерации заголовков тредов, сообщений коммитов и оркестрации навыков. Эта модель менялась между версиями клиента, поэтому opencodex перехватывает весь набор: {models}. Включите функцию, чтобы перенаправлять такие вызовы на выбранную вами модель.",
"models.shadowCallIntercept": "Перехват теневых вызовов",
"models.shadowCallInterceptHint": "Перехватывает фоновые служебные вызовы Codex App ({models}: заголовки, сообщения коммитов) и перенаправляет их на выбранную вами модель.",
"models.autoReviewOverride": "Переопределение авто-проверки",
"models.autoReviewOverrideHint": "Задаёт модель, которую Codex использует для автоматической проверки (ревьюера подтверждений). Применяется ко всем строкам каталога при синхронизации; autoReviewModel на уровне провайдера по-прежнему имеет приоритет.",
"models.autoReviewPending": "Ожидание",
"dash.sidecarBackend": "Бэкенд",
"dash.sidecarModel": "Модель",
"dash.backendAuto": "Авто",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/tr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,9 @@ export const tr: Record<TKey, string> = {
"dash.shadowCallTooltip": "Codex App arka planda başlık ve commit mesajı oluşturmak için yardımcı çağrılar yapar (orijinal {models}). Etkinleştirerek bunları seçtiğiniz modele yönlendirebilirsiniz.",
"models.shadowCallIntercept": "Gölge Çağrı Yakalama",
"models.shadowCallInterceptHint": "Codex App'in başlıklar ve commit mesajları için yaptığı arka plan çağrılarını ({models}) yakalar ve seçtiğiniz modele yönlendirir.",
"models.autoReviewOverride": "Otomatik inceleme geçersiz kılma",
"models.autoReviewOverrideHint": "Codex’in otomatik incelemesi (onay gözden geçiren) için kullanılacak modeli seçer. Katalog eşitlemesinde tüm satırlara uygulanır; sağlayıcıya özel autoReviewModel kendi satırlarında yine önceliklidir.",
"models.autoReviewPending": "Beklemede",
"dash.sidecarBackend": "Arka uç",
"dash.sidecarModel": "Model",
"dash.backendAuto": "Otomatik",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/vi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -488,6 +488,9 @@ export const vi: Record<TKey, string> = {
"dash.shadowCallTooltip": "Ứng dụng Codex thực hiện các lệnh gọi helper ngầm để tạo tiêu đề chuỗi, tạo commit message và điều phối các kĩ năng. Helper model có thể thay đổi giữa các phiên bản client, do đó opencodex chặn mọi model trong tập hợp này: {models}. Hãy bật tính năng này để chuyển hướng các lệnh gọi đó đến model bạn chọn.",
"models.shadowCallIntercept": "Shadow Call Intercept",
"models.shadowCallInterceptHint": "Chặn các lệnh gọi helper nền ({models}) của ứng dụng Codex để tạo tiêu đề và commit messages, và chuyển hướng chúng đến model bạn chọn.",
"models.autoReviewOverride": "Ghi đè duyệt tự động",
"models.autoReviewOverrideHint": "Chọn model Codex dùng cho việc duyệt tự động (mô hình đánh giá phê duyệt). Áp dụng cho mọi hàng trong catalog khi đồng bộ; autoReviewModel ở cấp nhà cung cấp vẫn được ưu tiên trên các hàng đó.",
"models.autoReviewPending": "Đang chờ",
"dash.sidecarBackend": "Backend",
"dash.sidecarModel": "Model",
"dash.backendAuto": "Tự động",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/zh-TW.ts
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,9 @@ export const zhTW: Record<TKey, string> = {
"dash.shadowCallTooltip": "Codex 應用會為執行緒標題生成、提交訊息生成與技能編排發出背景 helper 呼叫。helper 模型因客戶端版本而異,因此 opencodex 攔截此集合中的每個模型:{models}。啟用此選項可將這些呼叫重定向到您選擇的模型。",
"models.shadowCallIntercept": "影子呼叫攔截",
"models.shadowCallInterceptHint": "攔截 Codex 應用的背景 helper 呼叫({models})以生成標題與提交訊息,並將它們重定向到您選擇的模型。",
"models.autoReviewOverride": "自動審查覆寫",
"models.autoReviewOverrideHint": "指定 Codex 自動審查(核准審查模型)所使用的模型。同步型錄時套用到所有資料列;提供者層級的 autoReviewModel 在這些資料列上仍具優先權。",
"models.autoReviewPending": "待定",
"dash.sidecarBackend": "後端",
"dash.sidecarModel": "模型",
"dash.backendAuto": "自動",
Expand Down
3 changes: 3 additions & 0 deletions gui/src/i18n/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,9 @@ export const zh: Record<TKey, string> = {
"dash.shadowCallTooltip": "Codex 应用会在后台调用辅助模型来生成线程标题、提交消息以及进行技能编排。该模型随客户端版本变化,因此 opencodex 会同时拦截这些模型:{models}。启用此选项可将这些调用重定向到您选择的模型。",
"models.shadowCallIntercept": "影子调用拦截",
"models.shadowCallInterceptHint": "拦截 Codex 应用的后台辅助调用({models})并重定向到所选模型。",
"models.autoReviewOverride": "自动审查覆盖",
"models.autoReviewOverrideHint": "指定 Codex 自动审查(审批审查模型)使用的模型。同步目录时应用于所有行;提供方级的 autoReviewModel 在这些行上仍然优先。",
"models.autoReviewPending": "待定",
"dash.sidecarBackend": "后端",
"dash.sidecarModel": "模型",
"dash.backendAuto": "自动",
Expand Down
Loading
Loading