---
name: codex-omniroute-provider
description: Codex.app GUI vs OmniRoute provider-mode (chats hide); codex pool pruned to 2 alive
metadata: 
  node_type: memory
  type: project
  originSessionId: 01999674-fe2d-44aa-bc1c-f41702e0a118
---

Codex (`~/.codex/config.toml` + `auth.json`) и OmniRoute-пул codex-аккаунтов. См. скилл [[codex-acct]] и [[omniroute-cloud-bus]].

**Главный не-очевидный урок (2026-06-09):** в **GUI Codex.app** переключение на `model_provider = "omniroute"` (codex/gpt-5.5 → `127.0.0.1:20128/v1`, wire_api=responses) **скрывает весь список чатов** — приложение группирует чаты по контексту аккаунта/провайдера, и кастомный провайдер показывает пустой контекст. Чаты НЕ удаляются (живут в `~/.codex/state_5.sqlite` table `threads` + `sessions/` + `~/Library/Application Support/Codex/Default`), возвращаются откатом в `chatgpt`-режим. **Поэтому:** GUI держим в `chatgpt`-режиме; если нужны модели OmniRoute — только через **codex CLI** (`/Applications/Codex.app/Contents/Resources/codex`, делит config, но на GUI-чаты не влияет — проверено, `provider: omniroute` генерит корректно).

**Why:** дважды наступили — provider-режим убирали 2026-04-13 и снова в эту сессию (чаты «пропали» → паника). **How to apply:** не предлагать provider-режим для Codex.app GUI; для OmniRoute-инференса — CLI или отдельный конфиг.

**Модель Codex для ChatGPT-аккаунта = `gpt-5.5`** (2026-06-10). `gpt-5.4`/`*-codex`/`gpt-5.1*` → «model not supported when using Codex with a ChatGPT account» (API-only) → Codex не генерит вообще, маскируется под «аккаунт не работает». Free-аккаунты Codex УМЕЮТ (cebersdev free + gpt-5.5 = OK), просто одно окно квоты ~30д. `codex-acct rotate` чинён: брал только group team-pool/preserved-personal → отсекал group=null (free cebersdev) → «не переключает»; теперь берёт любой аккаунт пула. Десктоп-скрипт `~/Desktop/Codex — переключить аккаунт.command` после фикса переключает на аккаунт с квотой.

**Экспортные codex-токены хрупкие (2026-06-10):** GUI-ошибка «access token could not be refreshed, please log out and sign in again» = access_token жив (usage 200), но refresh_token потрачен (one-time rotating — исходную сессию прокрутили после экспорта). Нативный Codex GUI рефрешит при старте → падает. ХУЖЕ: сама попытка refresh потраченным токеном отзывает всё семейство → access из 200 превращается в 401 token_revoked (проверено на tatyana 2026-06-10: была alive, после переключения GUI+refresh стала revoked). Т.е. использование экспортного токена в GUI его убивает. Лечится ТОЛЬКО свежим `codex login` на самой машине (не экспортом). Экспортный токен годится для OmniRoute /v1 (access напрямую, без refresh) до exp, но не для GUI. `codex-acct capture <dir>` импортит из папки (live-check access 200 + дедуп по account_id), вшит в десктоп-скрипт `~/Desktop/Codex — переключить аккаунт.command` (папка `~/Мои аккаунты codex`). tatyana.yakovleva21@gmail.com (free) импортирована, но в GUI даёт refresh-ошибку (экспорт). free-аккаунты Codex умеют, но окно квоты маленькое (несколько генераций по 20k токенов выбивают его).

**Завис codex на шине при живом пуле (2026-07-07):** codex/gpt-5.5-low таймаутил 150с+, хотя в БД OmniRoute mini 9 живых connection'ов obostrajgorin@gmail.com с квотой 88-99% — провайдер завис ВНУТРИ демона (после протухания старых токенов). Лечение: `sudo launchctl kickstart -k system/com.cebers.omniroute` — мгновенно ожил. Диагноз-грабля: `codex-acct scan/list` читают pool.json — он бывает СИЛЬНО устаревшим (показывал 226 team-трупов, которых в БД давно нет); истина = `prune` dry-run (читает БД, нужен sudo) или `refresh`+scan.

**Состояние пула (2026-06-09):** team-пул dronix.site сгорел (one-time refresh-токены + бан воркспейсов). Из ~230/машину живы **2**: `cebersdev@gmail.com` (200/usable), `nusurafaxolo34@gmail.com` (weekly-выжат). Мёртвые удалены новой командой `codex-acct prune --apply` (MacBook 233→2, mini 228→2; DB-бэкапы `storage.sqlite.bak-prune-20260609-*`). На mini `cebersdev` активирован — codex отдаётся. Детали и команда — в `SKILL.md` скилла codex-acct. mini sudo для prune/refresh нужен tty.
