Документация/Рабочее место
Дифф «Код / Поведение»
Изменение можно читать построчно или по смыслу, группами с уровнем риска. Второй способ помогает быстро понять, куда в большой правке агента смотреть первым делом.
Любое изменение в 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.
