Claude Code 2.1.260 показывает диффы рядом с чатом

Claude Code 2.1.260 вышел 3 сентября. В нём появилась панель /diff: в полноэкранном режиме она открывается сбоку от разговора и показывает незакоммиченные изменения прямо по ходу того, как Claude правит файлы. Кроме панели, в релизных заметках на Github длинная серия исправлений в правилах разрешений и откат изменения, которое вышло в предыдущей версии всего днём раньше.
Панель /diff
Панель открывается и закрывается одной и той же командой /diff. Показывает она только незакоммиченное, то, что уже ушло в коммит, в неё не попадает. Раньше посмотреть правки по ходу работы можно было тремя способами: запустить git diff в соседнем терминале, дождаться сводки в конце хода или переключиться на вкладку source control в редакторе.
Полноэкранный режим получил ещё пару изменений. ctrl+l и cmd+k очищают вид транскрипта так же, как clear в терминале, а более ранние сообщения остаются доступны, если прокрутить вверх. Ctrl+Z раньше оставлял оболочку на альтернативном экране (туда полноэкранные терминальные программы выводят свой интерфейс), и она рисовалась поверх приостановленного Claude Code. Это исправили. Заодно починили перенос строк: флаги, составные эмодзи и буквы с диакритикой больше не разрываются между строками. Если такой символ попадает в две последние колонки терминала, вместо него выводится многоточие, и старый текст на экране не остаётся.
Откат через сутки
В 2.1.259, вышедшей 2 сентября, правила запрета Read() распространили на Bash. Они стали срабатывать на файлы, переданные как значения опций (--ignore-revs-file=.env, -f.env, @file), на файловые аргументы git diff и git grep и на составные команды вида cd DIR && cat FILE. Судя по этому списку, задача была в том, чтобы файл с запретом на чтение нельзя было прочитать через shell.
Изменение прожило всего сутки. При правиле Read(./**/build/**) запрещалась команда npm run build, причём в любом режиме, а cd … && grep требовал подтверждения даже в auto mode. В 2.1.260 изменение откатили. В той же 2.1.259 добавили флаг --permission-prompts none для headless-хостов, которые работают без присмотра: всё, что потребовало бы подтверждения, на них отклоняется автоматически. Так что для таких хостов лишний запрос на cd … && grep, вероятно, оборачивался обычным отказом.
Что починили в правилах разрешений
Самая неприятная ошибка касалась скобок в пути. Правила Edit, Write и Read, в пути которых встречались скобки, отбрасывались как невалидные, и песочница Bash их не учитывала. В итоге папки, помеченные «только для чтения», оставались доступными для записи. Для Windows-путей вроде Edit(C:\dir\(name)\**), где \( читается как экранированная скобка, а не как разделитель пути, сообщение об ошибке в настройках теперь подсказывает однозначное написание.
Одно файловое правило с шаблоном, который не компилируется (например, с незакрытой [), ломало вообще все правки файлов с ошибкой Invalid regular expression. Теперь запрещающее правило с таким шаблоном защищает путь буквально в том виде, в каком он записан. Правила с текстом после закрывающей скобки, например Bash(ls) x, никогда ничего не матчили, но молча игнорировались. Теперь их помечают как невалидные настройки.
Ещё одна дыра была в проверке Bash для zsh. Команды, которые прятали подстановку команды (вызов вида $(...), выполняющий код) в присваивании REPORTTIME, REPORTMEMORY или DIRSTACKSIZE, одобрялись автоматически. Теперь на них появляется запрос подтверждения.
Остальное по разрешениям:
permissions.blockReadsOutsideWorkingDirectoriesна macOS скрывал git config пользователя от git в песочнице и скрывал от субагента в изолированном worktree его собственный checkout. Исправлено.- Glob и Grep проверяли путь на диске раньше, чем проверку разрешений. Теперь об отсутствующем пути сообщают уже после решения о доступе, как это делает Read.
- Команды, набранные в режиме
!, выполняются вне песочницы даже при строгом режимеsandbox.allowUnsandboxedCommands: false, как если бы вы набрали их в своём терминале. - Управляемый CLAUDE.md (
claudeMd) в серверных настройках больше не вызывает диалог одобрения безопасности. Хуки, shell-команды, настройки песочницы и небезопасные переменные окружения по-прежнему требуют одобрения. - Запрет
Skill(name)теперь распространяется на вложенный навык, записанный как<dir>:name, аskillOverridesработают с алиасами встроенных навыков (например,checkupдля/doctor).
Кэш промпта и Fable 5.1
При промахе кэша промпта /cost и поле prompt_cache в строке состояния теперь называют вероятную причину: изменились описания инструментов или системный промпт либо сессия простаивала дольше TTL.
У Claude Fable 5.1 кэш промпта не покрывал контекст, который добавлялся после результатов инструментов, поэтому на каждом ходу с вызовом инструмента этот контекст заново уходил как некэшированный ввод. Это исправили. Смена уровня усилий через /effort посреди сессии на Fable 5.1 больше не сбрасывает кэш. В /model модель Fable 5.1 раньше не показывалась даже организациям, у которых к ней есть доступ, и выбрать её можно было только командой /model claude-fable-5-1. Агенты с model: fable игнорировали тег [1m] в закреплённой ANTHROPIC_DEFAULT_FABLE_MODEL и без предупреждения работали с окном в 200K.
Автокомпакция у моделей с контекстом в 1M изменилась: сессии на Opus и Fable теперь сжимаются незадолго до лимита в 1M токенов, а восстановительная компакция на очень больших контекстах больше не обрывается по таймауту в 10 минут. Субагенты Workflow во время долгой компакции больше не перезапускаются как зависшие.
Headless, агенты и администраторы
/reload-plugins теперь доступен в headless-сессиях и поэтому появился в списках команд Claude Code Desktop и SDK. У /advisor появилась текстовая форма (/advisor, /advisor <model>, /advisor off) для десктопного приложения, Remote Control и других headless-сессий (-p и Agent SDK). Такие сессии к тому же меньше нагружают процессор, когда простаивают.
Фоновые команды, которые запускают субагенты, больше не ограничены одним часом и работают до завершения или остановки, так же как в основной сессии. Флаг --kill-session-after-min у self-hosted runner больше не убивает сессию, которая просто ждёт пользователя: такая сессия ставится на паузу и продолжится со следующим сообщением, а не завершается с ошибкой. /rewind и --rewind-files раньше сообщали об успехе, даже когда резервных копий чекпоинта не было и ничего не восстанавливалось. Это тоже исправлено.
Для Bedrock в Claude apps gateway токены ввода прерванного запроса теперь считаются через бесплатный CountTokens API от AWS (нужно право bedrock:CountTokens), а не отдельным запросом на один токен. Обнаружение моделей Bedrock и вызовы AWS SSO/STS падали с ошибкой unable to get local issuer certificate, если корпоративный корневой сертификат лежал только в хранилище ОС. Исправлено и это.
Classmethod в своём разборе насчитал в 2.1.259 и 2.1.260 вместе 103 изменения: 13 новых функций, 20 улучшений, 58 исправлений, 7 изменений безопасности, 4 ломающих изменения и одно в документации.
Claude in Chrome теперь подчиняется настройке, которую задаёт администратор организации. Если её выключить, --chrome, /chrome и браузерные инструменты становятся недоступны.
Дальше
Флот агентов для Claude Code собирает один HTML-файл
Оркестратор, который сам пишет код вместо раздачи задач, обходится в три-четыре раза дороже. Такой замер приводит автор генератора флотов агентов для Claude Code: у раздающих около 64% токенов уходит в субагентов.
Читайте также
- Claude Code 2.1.261 показывает, какие навыки не нужны
- Claude Code 2.1.259 раздаёт MCP-серверы всей организации
- Claude Code 2.1.312 перестал затирать большие CLAUDE.md
- Claude Code 2.1.311: сжатие вместо остановки и ultrathink
- Claude Code 2.1.310 открыл Monitor для Bedrock и Vertex
- Claude Code 2.1.307 переводит код на API 2026-10-21
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

