Claude Code 2.1.128 загружает плагины из .zip-архивов и больше не теряет неотправленные коммиты
Claude Code v2.1.128 (4 мая 2026) добавляет поддержку --plugin-dir для .zip-архивов, заставляет EnterWorktree создавать ветку от локального HEAD и не позволяет CLI просачивать собственный OTLP endpoint в подпроцессы Bash.
Claude Code v2.1.128 вышел 4 мая 2026 года с тремя изменениями, которые тихо устраняют проблемы рабочего процесса, с которыми многие из нас сталкивались, не осознавая этого: плагины теперь можно загружать прямо из .zip, EnterWorktree наконец создаёт ветку от локального HEAD вместо origin/<default>, а подпроцессы больше не наследуют переменные окружения OTEL_* самого CLI. Ничего эффектного, но все вместе убирают целый класс ситуаций “стоп, а почему так получилось?”.
--plugin-dir теперь принимает запакованные архивы плагинов
До v2.1.128 --plugin-dir принимал только директорию. Если вы хотели поделиться внутренним плагином с коллегой или зафиксировать версию, приходилось либо публиковать его в маркетплейс, либо коммитить распакованное дерево в репозиторий, либо писать скрипт-обёртку, которая распаковывает перед запуском. Ничто из этого не масштабировалось дальше одного-двух плагинов.
Новое поведение именно такое, какое вы ожидаете:
# Old: had to point at an unpacked directory
claude --plugin-dir ./plugins/my-team-tooling
# New in v2.1.128: zip works directly
claude --plugin-dir ./plugins/my-team-tooling-1.4.0.zip
# Mix and match in the same launch
claude \
--plugin-dir ./plugins/local-dev \
--plugin-dir ./dist/release-bundle.zip
В этом релизе есть и сопутствующее исправление. Панель /plugin Components раньше показывала “Marketplace ‘inline’ not found” для плагинов, загруженных через --plugin-dir. v2.1.128 это прекращает. А JSON init.plugin_errors в headless-режиме теперь сообщает об ошибках загрузки --plugin-dir (повреждённый zip, отсутствующий манифест) наряду с уже существующими ошибками понижения зависимостей, так что CI-скрипты могут громко падать вместо того, чтобы тихо отгружать сломанный набор плагинов.
EnterWorktree больше не теряет ваши неотправленные коммиты
Это настоящее исправление бага, замаскированное под изменение поведения. EnterWorktree это инструмент, которым Claude Code разворачивает изолированный worktree для задачи агента. До этого релиза новая ветка создавалась от origin/<default-branch>, что звучит разумно, пока вы не осознаёте, что это значит: любой коммит, который у вас был локально на main, но ещё не был отправлен, просто не попадал в worktree, который видел агент.
В v2.1.128 EnterWorktree создаёт ветку от локального HEAD, как и утверждала документация. Конкретно:
# You're on main with a local-only commit
git log --oneline -2
# a1b2c3d feat: WIP rate limiter (NOT pushed)
# 9876543 chore: bump deps (origin/main)
# Agent calls EnterWorktree
# v2.1.126 and earlier: branch starts at 9876543, your WIP commit is GONE
# v2.1.128: branch starts at a1b2c3d, the agent sees your WIP
Если у вас когда-нибудь долгая задача агента тихо пропускала изменение, которое вы сделали пять минут назад, вероятно, причина именно в этом.
Переменные окружения OTEL больше не утекают в подпроцессы
Сам Claude Code инструментирован OpenTelemetry и читает OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_SERVICE_NAME и компанию из окружения. До v2.1.128 эти переменные наследовались каждым подпроцессом, который запускал CLI: вызовы инструмента Bash, hooks, MCP-серверы, LSP-процессы. Если вы запускали через инструмент Bash приложение .NET, которое тоже было инструментировано OTel, оно бодро отправляло свои трассировки в коллектор CLI.
Исправление в v2.1.128 удаляет OTEL_* из окружения перед exec. Ваши приложения теперь используют тот OTLP endpoint, с которым их настроили, а не тот, в который случайно отчитывается ваш редактор. Если вы действительно хотите, чтобы дочерний процесс делил коллектор CLI, задайте переменную явно в своём скрипте запуска.
Несколько других заметных пунктов: голый /color теперь выбирает случайный цвет сессии, /mcp показывает количество инструментов на сервер и помечает те, что подключились с нулём инструментов, параллельные вызовы shell-инструментов больше не отменяют соседние вызовы, когда падает команда только для чтения (grep, git diff), а сводки прогресса субагентов наконец попадают в кеш промптов, что даёт примерно трёхкратное снижение стоимости cache_creation на нагруженных мультиагентных запусках. Vim-режим тоже получил небольшое, но правильное исправление: Space в NORMAL-режиме двигает курсор вправо, как и в настоящем vi.
Это продолжает тренд, начатый релизом v2.1.126 с project purge: небольшие, точечные изменения CLI, которые забирают тупые инструменты из рук пользователя. Полные заметки на странице релиза v2.1.128.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.