Claude Code 2.1.286 считает стопку запросов на разрешение

Счётчик расходов шлюза Claude apps занижал цифры сразу двумя способами. Часовую запись в кэш промптов он считал по цене пятиминутной, а на потоковых ходах с серверным инструментом вроде веб-поиска учитывал входные токены только первого вызова модели.
Исправление стоит в середине длинного списка в заметках к релизу Claude Code 2.1.286 на GitHub. Самая заметная новинка там совсем мелкая: когда запросы на разрешение копятся стопкой, на них появляется счётчик вроде «2 of 5».
Коротко
- Команды claude --resume и --continue иногда теряли все ходы после пачки параллельных вызовов инструментов, если прошлая сессия упала или её убили; в 2.1.286 эту ошибку закрыли вместе с ошибками API 400.
- Повторы сбойных запросов к API считаются по-новому: один лимит покрывает весь вызов модели, поэтому с настройками по умолчанию такой вызов отправит не больше 14 запросов.
- В заметках к релизу не сказано, насколько сильно счётчик расходов шлюза занижал цифры, как долго жила ошибка и пересчитают ли уже показанные суммы.
Claude Code обновляется почти без пауз, и этот релиз почти целиком состоит из исправлений. По данным Claudeupdates, в версию 2.1.286 входит 88 изменений, а всего трекер насчитывает 408+ релизов начиная с бета-версии v0.2.21. В официальном журнале изменений на Claude Code Docs заметки к этой версии датированы 30 сентября 2026 года.
После падения сессии --resume и --continue сохраняют ходы с параллельными вызовами
Одна из исправленных ошибок касалась восстановления сессий. Если прошлая сессия падала или её убивали, claude --resume и --continue иногда теряли все ходы после пачки параллельных вызовов инструментов. Рядом закрыли ошибку API 400: она возникала, когда инструмент или хук возвращал объект, число или boolean вместо текста, в том числе в восстановленных сессиях.
Изменилась и реакция на отказы. Раньше, если API отказывался принимать модель, в которую разрешается ваш вариант по умолчанию или алиас, падал каждый ход; в 2.1.286 Claude Code один раз повторяет запрос на предыдущей модели того же уровня. Повторы при отказе и через --fallback-model, если запасная модель не умеет работать в быстром режиме, идут на стандартной скорости, а в интерактивных сессиях об этом один раз предупреждают.
Уведомление о переходе на запасную модель и ошибка о зацикленном автосжатии контекста сообщают, если контекстное окно упало с 1M до 200K токенов. Облачные сессии с очень длинной историей раньше так и не просыпались: контейнер останавливали, пока транскрипт ещё загружался. Эту ошибку тоже исправили.
Маскировка секретов перестала пропускать пароли в URL и токены Bearer
Вторая большая группа правок касается того, что попадает в логи. Сообщения об ошибках MCP показывали значение учётных данных, если перед именем ключа стояло «Bearer» или «Basic». Токены Bearer в процентной кодировке маскировались лишь частично. В отредактированных логах и транскриптах оставался виден секрет, если в имени ключа прятался невидимый символ вроде пробела нулевой ширины.
Пароли в URL утекали кусками, когда в них была пунктуация: скобка, кавычки, квадратная скобка, амперсанд или второй @, либо когда пароль тянулся за / до хоста в квадратных скобках вроде [::1] в ssh-адресе. Архив, который /feedback сохраняет на диск, после маскировки содержал строки транскрипта с невалидным JSON.
Со входом тоже навели порядок. Когда истекали учётные данные gcpAuthRefresh или awsAuthRefresh, каждый процесс Claude Code и каждое расширение IDE открывали свой браузер для входа. На macOS сессии продолжали показывать «Not logged in» или «Login expired» после успешного /login в другом окне, если на диске оставался старый файл ~/.claude/.credentials.json.
Запросы на разрешение получили счётчик «2 of 5» и единый вид
Когда запросы на разрешение копятся, Claude Code подписывает их счётчиком вроде «2 of 5», так что видно, сколько решений ещё ждёт. Запросы Bash, PowerShell и Monitor показывают команду между пунктирными линиями, как в запросах на правку файлов, и под тот же вид подогнали запросы для fetch, навыков, чтения файлов и ещё нескольких инструментов.
В полноэкранном режиме строки «N more» реагируют на мышь: клик переносит в соответствующий конец списка. Сами строки читаются как «↑ N more» и «↓ N more», а у полосы прокрутки появились стрелки. /hooks открывается одним списком хуков, сгруппированных по событиям, поэтому до нужного хука одно нажатие Enter вместо трёх.
Режим --bare подключает только MCP-серверы, названные в командной строке, не шлёт модели системных напоминаний и не запускает фоновых задач. Плагины отказываются ставиться из npm-источников, которые на деле оказываются git-репозиториями или папками, а зависимости берут только из пакетов реестра. В VS Code Stop и Escape завершают лишь текущий ход, фоновые агенты продолжают работать.
Почему часовую запись в кэш нельзя считать по пятиминутной цене
У кэша промптов две ступени записи, и стоят они по-разному. Как пишет Romain Lespinasse в своём блоге, пятиминутная запись обходится в 1,25 базовой цены ввода, часовая в 2 базовые цены, а чтение из кэша в 0,1 базовой цены, какая бы ступень его ни записала. На Opus 4.7, по его подсчётам, получается 6,25 и 10 долларов за миллион токенов при базовых 5 долларах.
Представьте камеру хранения на вокзале: ячейка на час дороже ячейки на пять минут, а забрать вещи стоит одинаково. Если кассир пробивает часовую ячейку по пятиминутному тарифу, сумма в чеке выходит меньше реальной. Счётчик шлюза ошибался именно так, а на потоковых ходах с веб-поиском или другим серверным инструментом вдобавок брал входные токены только первого вызова модели.
В Respan отмечают, что проверить фактическую запись и чтение можно по полям cache_creation_input_tokens и cache_read_input_tokens в ответе API. Там же напоминают, что запись в кэш привязана к точной последовательности токенов до точки разметки, и любое изменение префикса, даже в пробелах, её сбрасывает.
В заметках к релизу не сказано, сколько денег не попало в счётчик, как давно жила ошибка и затронула ли она что-то кроме отображения. Судя по формулировке, речь о метре расходов шлюза, а не о самом выставлении счетов, но в тексте это прямо не уточнено. На наш взгляд, для правки, которая касается денег, одной строки среди десятков исправлений интерфейса маловато.
Пересчитают ли прошлые расходы
Пересчитают ли суммы, которые счётчик шлюза уже показал, в заметках к 2.1.286 не говорится, и сроков на этот счёт тоже нет. Если вы сверяете бюджеты по этому счётчику, имеет смысл сравнить цифры до и после обновления, особенно на сессиях с часовым кэшем и веб-поиском. Страница /protocol шлюза уже описывает то, что Claude Code отправляет сегодня, и просит не отвергать незнакомый ввод.
Читайте также
- Claude Code 2.1.285 даёт админам выбрать провайдеров API
- Claude Code научился собирать тесты для ваших приложений
- В проекте без CLAUDE.md Claude Code 2.1.277 читает AGENTS.md
- Шлюз узнает, какой агент Claude Code прислал запрос
- Плагины Claude Code теперь можно прогнать через тесты
- Claude Code 2.1.268 синхронизирует тарифы шлюза
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.
