---
name: delor-chat-only-mode
description: "Делор в chat-only (экономия квоты): health-монитор + Финансы/1С/KB/кэшбэк off, но Спорт возвращён точечно"
metadata: 
  node_type: memory
  type: project
  originSessionId: 6620ea3d-79ed-46e4-b5ea-65828f0cc0b8
---

**2026-07-12 (commit ebaf11c → уточнено ceb4eb9): Делор в chat-only, но Спорт возвращён точечно.**

**Флаг:** `settings.delor_chat_only=True` (config.py). При нём:
- **health-монитор выключен** (`llm_health_loop` не стартует) — был единственный фоновый расход квоты (~97% вызовов = health-пинги раз в 6ч). ⚠️ Авто-heal слотов не работает — чат/спорт опираются на runtime-фолбэк.
- **kb-роутер (/kb_*) и cashback (ChekPilot) не регистрируются вовсе.**
- **advisor-роутер (`_build_advisor_router`) РЕГИСТРИРУЕТСЯ ВСЕГДА** (commit ceb4eb9 фикс) — внутри него живёт `/sport`. 13 не-спорт команд (today/idea/crypto/screen/perspective/upcoming/watch/unwatch/alerts/clear/portfolio/moex/calc/earn) + `/grow` + `adv:`-callback catch-all + reply-keyboard text-dispatcher гейтятся ПОШТУЧНО `if settings.delor_chat_only: return` внутри каждого хендлера. `register_onec_handlers` пропускается целиком (1С полностью off).
- **⚠️ ГРАБЛЯ (была, исправлена):** первая версия патча (ebaf11c) оборачивала регистрацию ВСЕГО advisor-роутера в `if not chat_only` → `/sport` был бы мёртв вместе с остальным. Если в будущем встретишь похожий паттерн («выключить роутер флагом») — гейтить нужно ВНУТРИ хендлеров, а не на уровне `include_router`, если хоть одна команда роутера должна остаться живой.
- **нижняя клавиатура** = `⚽ Спорт` (если доступен) + `📝 Ассистент` + `⚙️ Настройки`. `/start`: супер-админ получает `sport=True` явно; обычным юзерам грант-текст «открыт раздел Спорт» больше НЕ гейтится (грант-текст 1С — по-прежнему гейтится).
- Чат (`_main_router`/агент), /start, Ассистент, Настройки, /admin, **Спорт (backend + UI)** — работают.

**Спорт (commit ceb4eb9) включён обратно вместе с DashScope-обучением** (см. [[delor-sport-dashscope-lessons]]) — `sport_collector_enabled=True`, `launchctl enable`+`bootstrap` delor-sport. Крипто-сканер по-прежнему off (`crypto_scanner_enabled=False`).

**Вернуть Финансы/1С/KB/кэшбэк:** `delor_chat_only=False` в config.py + рестарт `launchctl kickstart -k gui/$(id -u)/com.cebers.delor`. Выключить спорт обратно отдельно: `sport_collector_enabled=False` + `launchctl disable` delor-sport.

**Правки:** config.py (флаг), main.py (гейт health + advisor-роутер всегда/kb-cashback условно), advisor/telegram/handlers.py (13 гейтов + onec-skip + RKB-dispatcher гейт), advisor/telegram/grow_handlers.py (/grow + adv:-callback гейт), advisor/telegram/menu.py (`build_main_reply_keyboard` учитывает `sport=`), telegram/handlers.py (/start).

**Наблюдение (устарело к 12.07 вечеру):** на шине OmniRoute флапали L1 `groq`/chat-primary `cerebras` в момент первой правки — к моменту спорт-коммита шина была стабильна (живой DashScope + консенсус-голоса работали без проблем).
