Расследование и исправление

Прогоны исправления

Один агент на проблему выносит вердикт, отслеживает причину и открывает pull request в одном треде, который вы читаете от начала до конца.

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

Что это даёт

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

Как это работает

  1. Прогон начинается, когда проверка или подключённый алерт даёт находку, когда агент в чат-треде открывает проблему из обсуждаемой вами неполадки или когда вы выбираете Investigate на проблеме.
  2. Агент читает доказательства и выносит один из двух вердиктов: confirmed или dismissed. Находка, совпадающая с существующей проблемой, присоединяется к ней вместо запуска второго прогона.
  3. Если неполадка подтверждена, тот же агент отслеживает причину и записывает причинно-следственную цепочку.
  4. Когда причину в подключённом репозитории исправляет изменение кода, прогон открывает pull request через автофикс. Когда никакой pull request не может её исправить, прогон поднимает эскалацию, которая называет, что должен сделать человек.
  5. Каждый шаг попадает на таймлайн активности проблемы рядом с обнаружениями, повторными обнаружениями и вашими собственными заметками.

Исходы

После каждого хода агента Polylane классифицирует прогон.

ИсходОписание
resolvedПервопричина найдена, и неполадка исправлена или прошла сама.
diagnosedПервопричина найдена, но исправление ещё не выкачено.
inconclusiveАгент не смог определиться с причиной.
false_positiveНаходка не указывала на реальную неполадку.
failedПрогон завершился ошибкой.

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

Отложенное состояниеОписание
needs_human_actionИсправление требует того, что можете сделать только вы.
needs_decisionАгенту нужно ваше решение, прежде чем продолжить.
awaiting_changeАгент ждёт выкатки исправления, например pull request, ожидающего ревью. Это состояние откладывается тихо.
failedПрогон столкнулся с ошибкой, которую не смог обойти.

Три состояния, требующие человека, записываются как эскалации, показываются на карточке исхода в треде и перечисляются в пресете Needs you, так что один и тот же запрос никогда не уведомляет вас дважды.

Где это найти

Прогоны исправления появляются в разделе Threads рядом с чат-тредами, а пресет Needs you перечисляет те, что ждут человека. Lineage в боковой панели треда хранит запись, стоящую за прогоном: Issue открывает доказательства и таймлайн проблемы, Escalation открывает то, о чём агент вас попросил, с кнопкой Mark as handled, а Check открывает оценку, которая обнаружила неполадку. Меню проблемы содержит Investigate, Investigate again, View investigation и View triggering check.

Настройка

В разделе Settings > Workspace карточка Investigations задаёт Investigate automatically from: минимальную серьёзность, с которой прогон исправления запускается сам. Проблемы ниже неё сохраняют вердикт и удерживаются, а их тред предлагает Start investigation, чтобы кто-то из вашей команды мог их подхватить. Вердикты никогда не удерживаются: каждая подтверждённая проблема видимо подтверждена, а порог лишь откладывает последующую работу.

См. также

  • Проблемы: запись, которую ведёт каждый прогон исправления.
  • Threads: чтение, остановка и совместный доступ к прогону.
  • Escalations: запросы, которые поднимает отложенный прогон.
  • Autofix: pull request, который открывает прогон.