y83 code / справочник

Полный диф хода

Когда агент меняет файлы, в ленте появляется карточка с итогом хода и списком файлов. Эта карточка — короткий пересказ: первые файлы и кусок первого дифа. Полный диф хода живёт в отдельном полноэкранном окне, и открыть его нужно одним нажатием.

раздел
Чат с агентом (Codex)
пунктов возможностей
34
источник
docs/codex/turn-diff.md

Как попасть в окно

  • Кнопка Open full diff в раскрытой карточке дифа открывает окно целиком, без выбранного файла.
  • Тап по строке файла в той же карточке открывает окно сразу с этим файлом.
  • Стрелка назад в шапке возвращает в чат, а из просмотра файла — сначала обратно к списку файлов.

Окно перекрывает чат целиком, поэтому ответ агента под ним не видно: чтобы вернуться к переписке, нужно выйти из окна.

Что показывает шапка

Шапка окна сделана в том же консольном виде, что и остальные экраны: имя окна и подпись справа.

  • Имя окна — y83@diff. Такой же, как у экрана изменений в Git, потому что просмотрщик файла общий.
  • Счётчик файлов: один файл показан как 1 file, несколько — как N files.
  • Счётчик добавленных строк: знак + и число. Число появляется, только когда строки действительно добавлялись.
  • Счётчик удалённых строк: знак − и число. Число появляется, только когда строки действительно удалялись.
  • Пометка cache truncated в шапке появляется, когда диф пришёл из хранилища усечённым.

Копирование дифа целиком

Кнопка копирования в шапке кладёт в буфер обмена весь диф хода разом, а не только видимую часть экрана. После копирования внизу показывается короткая подтверждающая плашка copied · diff.

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

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

Если в ходе разбираются файлы, под шапкой появляется заголовок // files и список строк. Если разобрать нечего, вместо списка показывается одна надпись // no changes.

  • У каждой строки значок документа и путь: каталог приглушён, имя файла яркое.
  • Счётчики строк у файла показываются только когда они есть: плюс зелёным, минус красным.
  • Стрелка в конце строки означает, что файл можно открыть.
  • Путь обрезается по длине в одну строку, длинные пути не переносятся.
  • Порядок файлов тот же, что пришёл от агента: приложение его не переставляет и не сортирует.

Просмотр одного файла

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

  • Добавленные строки подсвечены зелёным фоном, удалённые — красным, границы фрагментов — приглушённой заливкой.
  • Номера строк показаны с двух сторон: слева старый, справа новый. Ширина колонок одинаковая и не прыгает при прокрутке.
  • Длинные строки не переносятся, вместо этого окно прокручивается вбок.
  • Табуляция разворачивается в четыре позиции при разборе, поэтому отступы в коде видны.
  • Служебные пометки вроде new file или mode change видны в шапке и в теле просмотра.
  • Кнопка копирования в шапке кладёт в буфер диф только этого файла.

Отдельные состояния просмотра выглядят по-разному и не путаются между собой:

  • Бинарный файл — приложение честно пишет, что содержимое бинарных файлов Git не показывает.
  • Конфликт слияния — показывается только итоговое состояние, а сам конфликт нужно разрешить в терминале.
  • Пустой новый файл — отдельная надпись о том, что в файле нет ни одной строки.
  • Без изменений — надпись о том, что diff не содержит строк, иногда вместе с режимом файла.
  • Просмотр недоступен — когда разобрать диф не удалось совсем.

Про метку cache truncated

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

Обе пометки означают одно и то же: часть строк дифа потерялась, и показано не всё. Копирование дифа тоже скопирует только то, что сохранилось, поэтому восстанавливать потерянное нужно из Git, а не из этого окна.

Технические данные

ПараметрЗначение
Имя окна в шапкеy83@diff
Максимум файлов в списке200
Максимум строк дифа на файл при разборе4000
Показывается ли префикс файловнет, префикс снимается
Подпись подсказки о копированииcopied · diff
Разделитель колонок номеров строквертикальная линия в один пиксель
Ширина таба при разборе дифа4 позиции
Метка об усеченииcache truncated в шапке и текстовая пометка под списком

Что агент умеет

Агент видит диф хода у себя и может получить его разными способами: командой Git в терминале, разбором файлов и проверкой изменений перед тем, как сказать «готово».

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

Агент не открывает это окно прямой командой моста: окно живёт внутри чата и открывается только нажатием по карточке дифа или по строке файла.

Агент может сам получить полный диф без приложения — например, командой Git с путём до файла и номерами строк, — и этого часто достаточно, чтобы разобраться в правке.

Ограничения

  • Список файлов ограничен 200 файлами: если агент поменял больше, остальные в окно не попадут, хотя в шапке счётчик покажет только то, что показано.
  • Диф приходит целиком от агента и показывается как есть: приложение не пересчитывает его и не применяет правки само.
  • Часть строк может потеряться при сохранении в память телефона. Метка cache truncated об этом честно предупреждает, но восстановить потерянное можно только через Git.
  • Содержимое бинарных файлов не показывается никогда: приложение рисует только факт изменения.
  • Конфликт слияния показывается в итоговом виде, разрешить его из этого окна нельзя.
  • Разбор дифа берёт первые 4000 строк на файл, поэтому очень большой файл показывается не целиком.
  • Диф без служебных заголовков разбирается как один файл с именем diff, и в списке он будет выглядеть именно так.
  • Длинные пути обрезаются в одну строку, полный путь виден только в шапке открытого файла.
  • Копирование кладёт в буфер обмена технический текст дифа, а не список файлов и не краткое описание правки.
  • Шапка, счётчики и кнопки на этом экране английские.

Источник: docs/codex/turn-diff.md. Страница собрана из документации проекта при сборке сайта — без пересказа.