Расход и лимиты
Два места: дашборд на главной и отдельный экран.

Дашборд на главной
Столбики расхода по часам и наполнение 5-часового окна. Этого обычно хватает, чтобы понять: начинать сейчас большую задачу или подождать.
Экран расхода
- три окна одинаковыми карточками — пятичасовое, неделя всеми моделями и неделя Fable: остаток крупно, полоса с засечкой темпа, «израсходовано X из ≈Y». Если план не отдал процент пятичасового окна, он считается из расхода и потолка по тарифу и подписан
≈. Отдельного окна Fable план отдаёт не всегда — тогда карточка Fable показывает его долю в общем недельном окне, тоже с≈и пояснением. Пока план не ответил, на недельных карточках крупно стоит израсходованное за неделю; - лимиты плана — тариф и прочие окна, которые план отдал (Opus, Sonnet, сторонние приложения);
- расход за неделю — столбики по дням, слоями по моделям (Fable, Opus, Sonnet, Haiku). Неделя отсчитывается от сброса недельного окна плана, а если он неизвестен — последние 7 дней. Когда план отдал процент недели, рядом с суммой стоит оценка «≈ столько на всю неделю» — общая и по модели;
- разбивка по дням, моделям и проектам;
- график сетевого трафика самого api, с разбивкой по клиентам.
Засечка темпа на полосках лимита — сколько времени окна уже прошло. Расход левее засечки — впишетесь, правее — жжёте быстрее, чем идут часы. Это полезнее голого процента: 60% за первый час пятичасового окна и 60% за четвёртый — разные новости.
Доля окна вместо суммы
На подписке доллары ничего не списывают, и «≈ $2.40 за чат» не отвечает на единственный настоящий вопрос: начинать ли здесь следующую задачу. Поэтому в общем ряду бейджей стоит чип ≈ 12% — съеденная доля пятичасового окна. Он есть у чата, у агента и в строках панели приложения; оценка по прайсу API и токены никуда не делись — они в подсказке чипа и в строке листа расхода.
У проекта — та же мера, сложенная по всем его чатам, и потолка в 100% у неё намеренно нет: проект копит годами и правда съедает десятки окон, так что ≈ 2100% — не ошибка. Если лимит плана неизвестен, чип показывает прежнюю сумму в долларах.
Откуда берётся потолок окна
Сколько токенов вмещает пятичасовое окно, план не говорит — он отдаёт только процент. Потолок считает сервер по вашему тарифу: копит честные замеры (окно заполнено хотя бы на 3%, и это то же окно, что у плана), приводит их к единице Pro и берёт медиану, а потом умножает на тариф — Pro, Max 5× или Max 20×. Сменили ступень Max на экране расхода — цифры пересчитались сразу. Пока своих замеров нет, берётся типовой замер для тарифа, так что доля у чатов видна с первой минуты.
Тариф сервер запоминает, поэтому после перезапуска и обновления потолок не пропадает; выбранная ступень Max сама означает подписку Max. Если тариф ещё не определён (или у Max не выбрана ступень), у чатов вместо выдуманного процента стоит сумма.
Вводить лимит руками больше не нужно. Карточка «Лимит 5-часового окна» в группе настроек «Вид» показывает потолок по тарифу и откуда он взят; поле «Своё значение» осталось на случай, если ваше число точнее, — тогда оно главнее. От того же потолка считает и счётчик окна под лентой чата.
Потолок расхода
Поставили задачу с телефона и ушли — полезно знать, что за сутки агент не съест лишнего. В группе «Агент» настроек два порога в долларах за последние сутки (скользящие 24 часа, а не календарный день), оба необязательные:
- предупреждение — над полем нового чата встаёт плашка с суммой;
- стоп — сервер не заводит новый чат, в том числе из бота Telegram. Начатые чаты работают дальше и продолжаются: оборвать работу посреди ответа из-за суммы хуже, чем доплатить за её хвост.
Сумма считается из тех же транскриптов по ценам API. На подписке это оценка, на API-ключе — настоящий счёт; свои серверы моделей не стоят ничего. Пороги ставит только хозяин. Ключу с областью по проектам сумма не показывается: это деньги всей машины, а не его проектов.
В чате
Строка токенов под композером по нажатию показывает скорость расхода. Под сообщением об упёршемся лимите идёт обратный отсчёт до сброса — 5 часов, неделя и недельные окна по моделям.
Там же рядом — окно контекста, но это про другое: контекст — это сколько влезает в один разговор, лимит — сколько вам осталось по плану.
Откуда берутся цифры
Из тех же транскриптов: api разбирает записи и держит индекс в SQLite (clauder.db) рядом с каталогом сессий.
Отсюда две особенности, о которых стоит знать:
- Первый заход после большого перерыва может отставать. Индекс догоняется сканированием и упирается в бюджет; повторный запрос доберёт остаток.
- Сломанный индекс лечится удалением файла.
clauder.dbможно удалить — он пересоберётся. Вместе с ним, правда, уедут избранное, свои названия и отметки «прочитано»: они лежат там же.
Предупреждение о лимитах
Отдельным тумблером в уведомлениях приходит предупреждение при 95% — и о 5-часовом окне, и о недельных. Приходит оно обо всей машине, а не только о ваших чатах в Clauder.