Перейти к содержанию

Панель изменений

v1.3.0

Панель изменений показывает, что именно поменялось в проекте, не открывая отдельный git-клиент. Она открывается как вкладка в панели вкладок справа от чата и полезна, когда нужно проверить правки агента перед коммитом, приложить дифф к следующему запросу или откатить неудачные изменения.

Как открыть

Нажмите кнопку Изменения git на панели инструментов чата или откройте вкладку Изменения в панели справа от чата. Панель откроется справа, а чат останется слева.

Панель изменений git с разбором диффа Панель изменений git с разбором диффа

Панель изменений git с разбором диффа

Кнопка доступна, когда у чата есть проект. Если проект не является git-репозиторием, панель сообщит об этом.

Что показывать

В заголовке панели есть список области:

  • Эта сессия — все файлы, которые агент создал или изменил в текущем чате;
  • Последний ход — файлы, изменённые агентом во время выполнения последнего запроса;
  • Все незакоммиченные — рабочее дерево репозитория целиком, включая правки вне чата (доступно, если проект версионируется Git).

По умолчанию открывается Эта сессия.

Рядом видно текущую ветку и её отслеживаемую удалённую ветку, а также сколько коммитов впереди или позади. Счётчик +N −M в заголовке суммирует добавленные и удалённые строки по всем файлам.

Откат изменений агента

v1.3.1

Если предложенные агентом правки не подошли, их можно отменить в один клик. Для областей «Эта сессия» и «Последний ход» в шапке панели доступна кнопка отката с иконкой .

При нажатии открывается диалог предварительного просмотра отката:

  • Откатятся сразу — файлы, которые менялись только агентом через инструменты правки. Изменённые файлы вернутся к исходному тексту до начала правок, а новые файлы, созданные агентом, будут безопасно удалены;
  • Менялись вне записанных правок — файлы, которые после правок агента изменялись вами вручную, сторонней программой или командой терминала. Чтобы избежать случайной потери ваших изменений, такие файлы требуют явного выбора флажком перед перезаписью;
  • Вне проекта — файлы за пределами каталога проекта в целях безопасности не откатываются.

После подтверждения Koda Desktop восстанавливает файлы на диске. В следующем сообщении агент получает уведомление об откате и перечитывает актуальные файлы заново, не полагаясь на устаревшие данные из своей памяти.

Список файлов и дифф

  • буква статуса: M — изменён, A — добавлен, D — удалён, R — переименован, U — новый и не отслеживается, ! — конфликт слияния;
  • имя файла и папка;
  • число добавленных и удалённых строк;
  • развёрнутый дифф с номерами строк.

Кнопка в заголовке блока сворачивает и разворачивает дифф. Если строк много, сначала показывается часть, а остальное раскрывается кнопкой Показать ещё N строк. Бинарные файлы и слишком большие диффы помечаются отдельной плашкой.

Кнопка Список файлов открывает боковую колонку с фильтром: удобно, когда изменений много. Кнопка разворота растягивает панель на всё окно.

Действия с файлами

У каждого файла есть две кнопки:

  • Упомянуть файл в сообщении — вставляет @путь в поле запроса;
  • Приложить diff к сообщению — добавляет дифф текстовым вложением.

В заголовке панели кнопка Упомянуть все изменённые файлы добавляет в запрос сразу весь список путей. Это удобно перед просьбой «проверь эти изменения» или «напиши сообщение коммита».

Ограничения

Снимок сессии не безграничен:

  • служебные папки и файлы — .git, node_modules, .env и .env.*, dist, build, .next, coverage — не учитываются;
  • бинарные файлы в него не попадают;
  • файлы больше 1 МБ пропускаются, а общий объём снимка ограничен 20 МБ;
  • при очень большом числе изменений список обрезается.

Полный список незакоммиченных файлов всегда доступен в области Все незакоммиченные. В этих случаях панель показывает предупреждение.

О ветках, коммитах и получении изменений — на странице функций git.