# ✨ Считать только те уровни текста, что включены у владельца записи

- **Тип:** feature
- **Категория:** Очередь — Выключать нечего, пока уровней нет; настройка ставится сразу за ними, чтобы платная модель не считала лишнее.
- **Зачем:** Дом настроек есть, а конвейер их не читает: выключенный уровень всё равно уходит платной модели, и настройка ничего не экономит.

Выключенный уровень не запрашивается у языковой модели вовсе, а запись
обрабатывается по той настройке, которая действовала на приёме.

Берётся после `settings-screen` (настройки негде хранить) и после
`llm-insights-adapter` (нечего выключать).

Настройка снимается **на приёме** и едет с задачей: правка настроек посреди
обработки не меняет того, что уже считается, и не оставляет запись наполовину
обработанной.

## Затрагивает

- колонка снимка настроек у задачи и её шаг схемы;
- заведение задачи обоими входами: бот и приём по HTTP;
- шаг конвейера, обращающийся к языковой модели, — выбор уровней перед вызовом;
- `internal/contract` — интерфейс расчёта выводов: состав запрошенных уровней;
- `docs/database.md` — колонка снимка и её значение по умолчанию.

## Критерии приёмки

- Выключенный уровень не запрашивается у модели ни одним обращением. Оракул —
  тест с подставным адаптером: у пользователя выключены пересказ и темы, адаптер
  получает запрос без них и не вызывается второй раз.
- Запись обрабатывается по настройке, действовавшей на приёме. Оракул — тест:
  завести задачу, сменить настройки владельца, прогнать шаг — считается прежний
  состав уровней.
- У пользователя без настроек берутся значения по умолчанию, а задача не падает.
  Оракул — тест на приёме от пользователя, у которого строки настроек нет.

## Рамки

Экран настроек и таблицу заводит `settings-screen` — здесь только чтение
настройки конвейером. Уже обработанные записи задним числом не пересчитываются.
