Все процессы в списке принадлежат тому диалогу, из которого экран открыт.
Вход в экран
Пункт Background terminals стоит в меню треда, рядом с пунктами про ревью и инструменты.
- Пункт открывает полноэкранный список процессов, запущенных агентом в фоне именно в этом диалоге.
- Подпись пункта подсказывает, что именно вы увидите: процессы, которые запустил агент.
- Справа от пункта может стоять число — сколько фоновых процессов приложение уже знает.
- Пустое число ничего не значит: оно бывает и когда процессов действительно нет, и когда список ещё ни разу не читался.
- Список запрашивается каждый раз при открытии экрана, поэтому увидеть можно и те процессы, которые агент запустил минуту назад.
Шапка
Шапка сделана так же, как у остальных служебных экранов агента.
- Слева в шапке стоит стрелка назад, которая просто закрывает экран.
- В первой строке шапки написано codex@terminals и дальше мигает курсор, как в командной строке.
- Во второй строке шапки написано, сколько процессов сейчас работает: например, 3 running. Если список пуст, стоит none running.
Что показывает строка процесса
Каждый процесс занимает одну строку с командой и кнопкой остановки справа.
- Сверху в строке написана команда, которой запущен процесс. Например, запуск локального сервера или просмотр файлов.
- Если команда неизвестна, вместо неё показывается служебный идентификатор процесса.
- Длинная команда обрезается многоточием и занимает не больше двух строк, полный текст приложение не показывает.
- Под командой идёт строка метрик, а части в ней разделяются точкой с пробелом.
- Метрика pid — это номер процесса в системе агента, по нему процесс можно найти и в обычном терминале.
- Метрика cpu показывает, сколько процентов процессора занимает процесс, округлённых до целого.
- Метрика rss показывает, сколько мегабайт памяти процесс занимает.
- После метрик показывается рабочая папка, в которой процесс запущен.
- Какая-то из метрик может отсутствовать, если агент не смог её определить: например, у процесса может не быть загрузки процессора.
Остановка одного процесса
Кнопка Stop справа в строке останавливает только этот процесс и больше ничего не трогает.
- Кнопка Stop стоит у каждого процесса и подписана одинаково, поэтому понять, к кому она относится, можно только по строке напротив.
- Подтверждения приложение не спрашивает, остановка происходит сразу после нажатия.
- Строка убирается из списка после того, как запрос ушёл агенту, и это происходит даже если агент не подтвердил остановку: приложение всё равно считает процесс снятым.
- После остановки в переписке появляется уведомление Background process stopped.
- Остальные процессы продолжают работать и остаются в списке.
Остановка всех процессов
Внизу экрана, в подвале, есть кнопка Stop all, которая снимает разом всё.
- Кнопка Stop all появляется только когда список не пуст. При пустом списке в подвале остаётся одна кнопка закрытия.
- Нажатие открывает окно подтверждения с вопросом, остановить ли вообще все фоновые процессы.
- В окне написано, сколько именно процессов будет остановлено, чтобы вы понимали масштаб.
- В окне есть две кнопки: Stop all подтверждает и останавливает всё, Cancel отменяет и ничего не трогает.
- После подтверждения список очищается целиком, и в переписке появляется уведомление Background terminals cleared.
Пока процессов нет
Пустой список — это не ошибка, а обычное состояние, и оно выглядит спокойно.
- Пока список читается и ещё ничего не пришло, вместо списка показано слово Loading.
- Когда выясняется, что процессов нет, показывается короткая надпись о том, что в этом диалоге фоновых процессов не запущено.
- Счётчик в шапке в этом состоянии показывает none running, а в меню треда у пункта число пропадает.
Технические данные
| Параметр | Значение |
|---|---|
| Сколько процессов читается за один запрос | 50 |
| Сколько страниц читается подряд | до 4 |
| Сколько процессов экран увидит в лучшем случае | 200 |
| Разделов на экране | один, список процессов |
| Подпись в шапке при непустом списке | число и слово running |
| Подпись в шапке при пустом списке | none running |
| Подпись экрана в шапке | codex@terminals |
| Показываемые метрики процесса | pid, загрузка процессора, память, рабочая папка |
| Единица памяти в списке | мегабайты |
| Подтверждение при остановке | только на остановку всех сразу |
| Уведомление об остановке одного процесса | Background process stopped |
| Уведомление после остановки всех | Background terminals cleared |
Что агент умеет
- Агент может запустить в фоне локальный сервер или вотчер, не занимая переписку, и такой процесс будет виден на этом экране.
- Агент может держать в фоне долгую команду вроде сборки или тестов, а вы увидите, сколько она ест памяти и процессора.
- Агент может забыть погасить процесс и уйти дальше по задаче, и вы заметите это по списку и остановите процесс вручную.
- Агент может по вашей просьбе снять ровно один процесс, не трогая остальные фоновые задачи.
- Агент может держать в фоне сразу несколько процессов, и вы увидите каждый из них отдельной строкой.
Ограничения
- Экран только показывает список и останавливает: зайти внутрь процесса и работать в нём, как в терминале, нельзя, вывода команды он тоже не показывает.
- Список сам не обновляется: пока экран открыт, новые фоновые процессы в нём не появятся, нужно закрыть экран и открыть заново.
- Число рядом с пунктом меню и чип terminals появляются только после того, как список прочитали хотя бы один раз, поэтому сначала они могут показывать пустоту при живых процессах.
- Подтверждение спрашивается только при остановке всех сразу: отдельно выбранный процесс останавливается без вопроса, и это необратимо, заново его запустит только агент.
- Остановка происходит на хосте агента: у удалённого агента процесс умирает на сервере, а не на телефоне.
- Длинная команда обрезается многоточием, поэтому прочитать её целиком на этом экране нельзя.
- Если процессов больше двухсот, экран покажет только первые страницы списка и молча покажет меньше, чем есть на самом деле.