Документация

Документация/Рабочее место

Дифф «Код / Поведение»

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

Любое изменение в DevMachine ADE можно читать двумя способами. «Код» — привычный построчный дифф. «Поведение» — сводка, которую приложение строит само: анализирует патч по правилам, без модели. Она показывает, что изменение делает: правки разложены по смысловым группам, у каждой свой уровень риска, а изменённые контракты перечислены отдельно. Контракт — то, на что опираются другой код или люди, например схема базы данных или API. «Поведение» пригодится, когда агент поменял десятки файлов и нужно понять, с чего начать проверку.

Где найти

Переключатель «Код» / «Поведение» и шкала «Риск всего изменения» стоят в шапке диффа:

  • в виде Git — у коммита, сравнения веток и рабочих изменений;
  • в полосе над «Изменениями сессии» — на экране со всеми правками агента в текущем чате (см. Изменения сессии).

Сессия здесь и есть чат. Экран открывает кнопка «Изменения сессии» в верхней панели окна или команда /diff. Если кнопки в панели нет, она в меню «Другие инструменты».

Приложение запоминает выбор, и он общий для обоих мест: включили «Поведение» в Git — оно же откроется и в «Изменениях сессии».

«Код»

Построчный дифф с подсветкой синтаксиса. Изменённые слова внутри строки выделены отдельно. В виде Git раскладку меняет переключатель «Рядом» / «Единый» в шапке диффа файла. В «Изменениях сессии» его нет: там дифф идёт одной колонкой.

«Поведение»

Под заголовком «Что делает это изменение» правки собраны в группы по смыслу:

ГруппаЧто в ней
«Изменение контракта»Схема базы данных, API, публичные интерфейсы, переменные окружения, конфигурация и зависимости
«Новая возможность»Новый код: новые файлы или новые публичные имена
«Исправление»Только если заголовок коммита сам называет изменение исправлением (fix: …, «Исправлен …») — анализ этого не угадывает
«Рефакторинг без изменения поведения»Код перенесён или переименован, строки те же
«Изменение поведения»Остальные правки существующего кода, если заголовок коммита не объявил их исправлением, новой возможностью или рефакторингом
«Сопровождение»Тесты, документы, сгенерированные файлы

Уровней три: «Высокий риск», «Средний риск» и «Низкий риск». Различить их можно и без цвета: по фигуре, по ширине полосы и по надписи. Шкала «Риск всего изменения» в шапке — это три счётчика: сколько групп высокого, среднего и низкого риска. Щёлкните по счётчику, и вид перейдёт к первой группе этого уровня.

Ещё есть блок «Контракты»: в нём перечислено, что поменялось в схеме базы данных, API, публичных интерфейсах, переменных окружения, конфигурации и зависимостях. Если таких правок нет, в блоке будет «Контракты не менялись».

Что поднимает риск

Анализ отдельно отмечает места, которые стоит прочитать внимательнее:

  • удалённые или отключённые тесты;
  • удаление данных и миграции данных;
  • доступ и авторизация;
  • платежи;
  • изменения CI;
  • крупное изменение — «Крупное изменение — прочитайте его целиком»;
  • перенесённый код — «Код перенесён, строки те же».

Если ничего такого нет, сводка так и пишет: «Предупреждать не о чем».

Строки одной группы

Кнопка «Показать строки» у группы открывает построчный дифф только этой группы. «Все строки» возвращает к изменению целиком.

Пометка «заявлено»

Если заголовок коммита сам говорит, что это за изменение (feat:, fix:, refactor: или «Исправлен…», «Рефакторинг…»), группа получает пометку «заявлено». Пометка означает, что так изменение описывает себя само, а анализ этого не проверял.

Когда это помогает

  • Большая правка агента. Сначала смотрите «Контракты» и группы с высоким риском, потом остальное.
  • Перед коммитом или слиянием. Быстро проверьте, что агент не удалил и не отключил тесты, не тронул миграции, авторизацию или платежи.
  • Чужая ветка. В виде Git сравните её со своей и прочитайте разницу по смыслу.

Ограничения

  • Сводку строят по патчу статические правила, без модели. Об этом напоминает подпись «формулировки — не модели». Правила могут что-то пропустить, поэтому «Низкий риск» не значит «можно не читать».
  • Объявления и сигнатуры правила узнают в TypeScript и JavaScript, Go, Python, Rust, Java, Kotlin, C#, BSL (1С), SQL, Ruby и PHP. В файлах на других языках анализ замечает меньше.
  • Если сводку построить не удалось, вид покажет: «Сводку для этого изменения построить не удалось». Тогда читайте изменение в «Коде». Пока сводка считается, «Код» уже доступен.
  • Ничего не уходит с компьютера: запросов к модели нет, токены не тратятся.

Что дальше

Обновлено · Нашли неточность? Напишите на support@devmachine.ai или в Telegram.