Claude Code 2.1.223: исправлен баг обнаружения моделей в gateway, закрыты четыре обхода разрешений
Claude Code 2.1.223 исправляет баг, из-за которого Claude-модели с префиксными ID не отображались в кастомных API-шлюзах, закрывает четыре пути обхода разрешений и меняет поведение auto-compaction для моделей с окном 1М токенов.

Если ваша команда маршрутизирует запросы Claude Code через кастомный API-шлюз — HTTPS-прокси, self-hosted router или облачный провайдер, регистрирующий модели под пространством имён — в 2.1.223 есть исправление, которое нужно развернуть сегодня. В релизе также закрыты четыре пути обхода разрешений, затрагивающие headless- и managed-развёртывания.
Баг обнаружения моделей в gateway
Claude Code обнаруживает доступные модели, опрашивая API-эндпоинт, указанный в ANTHROPIC_BASE_URL. До версии 2.1.223 пикер моделей молча отбрасывал любой model ID, соответствующий паттерну с provider-префиксом: vertex_ai/claude-*, bedrock/anthropic.claude-* и аналогичные namespaced-ID, которые шлюзы используют для различения апстримных провайдеров.
Практическое последствие: если ваш gateway регистрировал модели под provider-namespaced ID (распространённая практика в multi-provider роутерах, перенаправляющих трафик на Bedrock, Vertex AI или кастомные inference-бэкенды), эти модели были невидимы для пикера Claude Code. Пользователи не получали никакого уведомления — пикер просто показывал укороченный список. По логам проблему обнаружить было невозможно.
Исправление в 2.1.223 делает процедуру обнаружения моделей валидной для любого зарегистрированного model ID вне зависимости от префикса, а canonical model для отслеживания сессии разрешается отдельно. Если ваш gateway регистрирует vertex_ai/claude-sonnet-5 или bedrock/anthropic.claude-opus-5 и пользователи жаловались на отсутствие модели в списке — это именно то исправление.
Четыре обхода разрешений закрыты
1. Bash-обход через невидимые символы. Специально сформированная shell-команда могла вставлять табуляции или невидимые Unicode-символы между токенами, скрывая часть команды от диалога подтверждения разрешений, пока шелл исполнял её целиком. Операторы, запускающие Claude Code в headless-режиме — CI-пайплайны, автоматизированные coding-агенты, фоновые воркеры — были уязвимы: вредоносный prompt мог добавить невидимые символы вокруг деструктивной операции и провести её через auto-режим без обнаружения.
2. Побег из sandbox через dynamic import() в workflow-скриптах. Workflow-скрипты, выполняемые внутри sandbox, могли использовать dynamic import() для загрузки произвольных Node.js-модулей извне границы sandbox. Это позволяло импортировать child_process или fs и выполнять операции, которые sandbox должен был запрещать. Исправление блокирует dynamic import в sandbox-контексте.
3. bypassPermissions в определении агента игнорировал политику организации. Когда определение агента устанавливало bypassPermissions: true, оно обходило политику уровня организации, явно запрещающую режим bypass-permissions. Это был вектор повышения привилегий: marketplace-скилл или общее определение из .claude/agents/ могло декларировать повышенные разрешения, которые org-admin явно отозвал. Исправление: политика организации теперь имеет приоритет над объявлением на уровне агента.
4. Обход через [[ ]] regex-условие в zsh. В zsh команды, встроенные в [[ ]] regex-условные выражения, могли исполнять скрытые операции, которые Bash tool permission checker не проверял. Это позволяло специально сформированной команде пройти проверку разрешений, одновременно выполняя незаявленный код в условном ветвлении.
Изменение обработки ключей modelOverrides
До 2.1.223 запись в modelOverrides с ключом, не являющимся известным Anthropic model ID, молча использовалась как canonical model ID сессии, что могло приводить к некорректному распространению gateway-настроенного override через routing-метаданные. Исправление: неизвестные ключи modelOverrides теперь игнорируются, как и указано в документации, но реализация прежде этого не гарантировала.
Если вы настроили modelOverrides в managed settings с нестандартными ключами — проверьте их: они больше не будут применяться.
Изменение поведения auto-compaction для моделей с окном 1М токенов
CLAUDE_CODE_DISABLE_1M_CONTEXT ранее действовал только на фиксированный список model ID с нативным окном 1М токенов. В 2.1.223 переменная окружения теперь ограничивает каждую модель с нативным окном 1М до 200К через auto-compaction. При запуске появляется предупреждение, если сессия не удерживается в пределах 200К.
Параллельное изменение: сессии с нераспознанными model ID (например, кастомные ID, зарегистрированные в gateway) теперь также ограничиваются auto-compaction в пределах предполагаемого контекстного окна модели вместо бесконтрольного роста. Для отката используйте CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1.
Для операторов, маршрутизирующих Claude Code через прокси с внутренними model ID: auto-compaction теперь срабатывает на эти ID, что может изменить паттерны потребления токенов и расходы в длинных сессиях.
Исправление слияния managed-settings
Обновление managed settings, доставленное с сервера, ранее могло отключать блок env в локальном managed-settings.json или MDM-профиле. Исправление: серверные настройки теперь сливаются покилючно, а не перезаписывают локальную конфигурацию env. Если ваше развёртывание использует и организационные настройки, и локальные managed settings с кастомными env-переменными, убедитесь, что они сохраняются после обновления до 2.1.223.
Что нужно проверить операторам
- Список моделей: если пользователи вашего gateway-маршрутизированного Claude Code жаловались на отсутствующие модели, обновитесь до 2.1.223 и убедитесь, что зарегистрированные в gateway model ID появились в пикере.
modelOverrides: проверьте наличие ключей, не являющихся Anthropic model ID — они теперь игнорируются.CLAUDE_CODE_DISABLE_1M_CONTEXT: если вы используете этот флаг для контроля затрат, убедитесь, что он теперь применяется ко всем моделям с окном 1М, обслуживаемым вашим gateway.- Headless security posture: четыре исправления обхода разрешений в этом релизе свидетельствуют об активном усилении модели разрешений. Если вы запускаете Claude Code в auto/headless-режиме — обновитесь незамедлительно.
- Слияние env в managed settings: протестируйте, что локальные env-переменные в
managed-settings.jsonсохраняются после серверного push настроек.
Похожие материалы
Новости AI-роутинга и провайдеров →
Claude Code 2.1.269: три оператор-уровневых изменения в релизе с 60+ исправлениями
Claude Code 2.1.269 добавляет настраиваемый таймаут обнаружения gateway, жёсткий лимит параллельных workflow-агентов и исправляет утечку deny-правил за границу их config-источника. Каждое из них меняет то, как операторы управляют Claude Code в масштабе.

Claude Code 2.1.267: Ограничение уровня Effort для операторов, стабилизация кэша промптов и исправление обхода контейнера маркетплейса
В 2.1.267: новый maxEffortLevel для Bedrock, Vertex и Foundry; флаг отключения снапшота промпта; исправление обхода контейнера маркетплейса. Плюс двенадцать исправлений кэша промптов, напрямую влияющих на стоимость токенов.

Claude Code 2.1.229: SSE keepalive для Vertex и Bedrock устраняет тихие обрывы потока и ужесточает права на git push
Claude Code 2.1.229 добавляет SSE keepalive ping в gateway streaming-ответы во время долгих thinking-пауз, устраняя тихие idle-timeout разрывы на Vertex AI и Bedrock. /commit-push-pr теперь блокирует опасные git-флаги, sandbox — некорректные IPv6.