Отдельная вкладка ревью, связанная с агентом в Herdr

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

Чтобы не переносить замечания между окнами вручную, я сделал Herdr Native Review. Плагин открывает для ревью отдельную вкладку, получает изменения из Git и помнит, с каким агентом и репозиторием она связана.

Во время работы с кодинговым агентом достаточно нажать F6: Herdr откроет отдельную вкладку ревью и сразу переключится на неё. F6 из ревью возвращает во вкладку исходного агента, а повторное нажатие из агента — в то же живое ревью с прежней позицией и заметками. После ревью F7 собирает сохранённые комментарии в редактируемый черновик и вставляет его в поле ввода того же агента.

Так ревью целиком проходит внутри Herdr. Дальше расскажу, как оно устроено.

Что я хотел убрать из процесса Link to heading

Для работы с агентами я уже использовал Herdr. Он знает, в какой панели и рабочем каталоге запущен каждый агент. Но проверять изменения и оставлять комментарии приходилось отдельно.

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

Нужно было связать три вещи:

панель агента в Herdr <-> репозиторий Git <-> состояние ревью

Зачем понадобилась отдельная вкладка Link to heading

Herdr — терминальный мультиплексор, который умеет распознавать кодинг-агентов. Codex, Claude Code, OpenCode и другие консольные агенты продолжают работать как обычные процессы. Herdr группирует их по рабочим пространствам и вкладкам, позволяет делить экран и показывает состояние каждого агента.

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

Панель обновляет diff примерно раз в секунду и сохраняет выбранный файл и текущую строку. Если код изменился, комментарий снова привязывается к прежнему месту, когда его можно определить однозначно. Иначе он помечается устаревшим: плагин не угадывает новую строку.

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

Что показывает ревью Link to heading

Доступны три режима:

  • Рабочая копия — изменения в индексе и рабочем дереве, а также новые файлы относительно HEAD.
  • Ветка — вся работа с момента расхождения с локально доступной основной веткой, включая текущие незакоммиченные и новые файлы.
  • Последний замеченный ход агента — изменения за текущий или последний завершённый цикл работы связанного агента, которые успел зафиксировать плагин.

Между режимами можно переключаться клавишами 1, 2 и 3. Переходить между файлами, блоками изменений и строками можно с клавиатуры или мышью; при необходимости можно выбрать диапазон строк. На узкой панели список файлов автоматически скрывается, но его можно вернуть. Для распространённых языков, включая JavaScript, TypeScript, Python, Kotlin, Java, Go и Rust, работает подсветка синтаксиса.

Переименованные и удалённые файлы отображаются вместе с остальными. Для бинарных и слишком больших файлов панель показывает сведения об изменении вместо diff.

Как замечания попадают к агенту Link to heading

Комментарий можно привязать к одной строке или выбранному диапазону. Плагин сохраняет только непустой комментарий после нажатия Ctrl+S. Незавершённый текст остаётся в редакторе, а отменённый отбрасывается; ни тот ни другой не попадает в сообщение агенту. Сохранённые комментарии видны прямо под соответствующим фрагментом diff и отдельно в общем списке.

F7 собирает только сохранённые пользовательские комментарии из текущего режима ревью. Плагин находит связанную панель агента, не стирает уже набранный там текст и вставляет черновик с путями к файлам, диапазонами строк, фрагментами кода и пометкой, к какой версии строки относится комментарий — старой или новой. Устаревшие позиции помечаются отдельно. Enter плагин не нажимает, поэтому перед отправкой текст можно проверить и отредактировать.

Встроенный шаблон просит агента сначала сверить каждое замечание с текущим кодом. Если оно устарело или расходится с задачей, агент должен объяснить это, а не менять код вслепую. После исправлений шаблон предлагает запустить подходящие проверки и кратко перечислить изменения. Формулировки можно настроить под себя.

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

Как установить Link to heading

Плагину нужны Herdr 0.7.0 или новее, Bun 1.3.14, Node.js 18+ и Git. Сейчас поддерживаются Linux и macOS на x64 и arm64.

Если всё необходимое уже установлено, сам плагин добавляется одной командой:

herdr plugin install quantk/herdr-review

Действия можно назначить на любые свободные сочетания клавиш; я использую F6 для переключения между агентом и ревью и F7 для вставки замечаний в поле ввода агента. Точные команды настройки и проверки приведены в README плагина.

Ограничения Link to heading

Ревью можно открыть только из панели агента, которого распознал Herdr, и только внутри Git-репозитория. Панель не делает git fetch: режим ветки выбирает базу из доступных локальных ссылок.

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

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

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

Исходный код и инструкция по установке: github.com/quantk/herdr-review.