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

Полосы под лентой

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

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

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

Полоска очереди

Полоска очереди появляется только тогда, когда есть сообщения, отправленные вами во время работы агента. Сообщение из очереди не показывается в ленте: оно появится там само, когда агент возьмёт его в работу. Каждое сообщение в очереди занимает отдельную строку с иконкой таймера, текстом сообщения и двумя кнопками: Cancel убирает сообщение из очереди, а Send now отправляет его первым.

  • У первого сообщения в очереди стоит метка next, если сообщений больше одного, чтобы было видно, что уйдёт следующим.
  • Сообщение, которое ещё не дошло до агента, помечено not sent. Для такого сообщения кнопка Send now не показывается, потому что отправлять нечего: оно уйдёт само, как только появится связь.
  • Прикреплённые к сообщению скиллы пишутся мелкой строкой над текстом с символом доллара, поэтому видно, что сообщение уйдёт не голым текстом.
  • Тап по тексту сообщения открывает правку. В окне правки поле сообщения и две кнопки: Save сохраняет, Cancel закрывает без изменений. Для сообщения, которое уже стоит в очереди агента, правка уходит на сервер, а для ещё не отправленного меняется только текст в буфере.
  • Кнопка Send now прерывает текущий ход агента и отправляет выбранное сообщение вместо него. Выбранное сообщение сразу встаёт в полоске первым, чтобы было видно, что уйдёт следующим.
  • Полоска показывает только текущий открытый тред. Очередь другого диалога подтянется сама, когда вы его откроете.

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

Полоска плана

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

  • План ждёт вашего решения — в полоске две кнопки Reject и Start. Кнопка Start основная и мягко пульсирует, пока ждёт нажатия.
  • Reject отклоняет план и оставляет агента в режиме планирования. В поле ввода при этом ничего не пропадает: если там был ваш текст, он останется.
  • Start одобряет план и переводит агента в обычный режим работы. Всё, что было в поле ввода, при этом не отправляется: агент получает только подтверждение и выполняет план.
  • Кружок слева показывает номер текущего шага, а когда все шаги закрыты — галочку. Пока шагов в плане нет, вместо номера рисуется значок плана.
  • Счётчик справа обновляется на каждом шаге агента и показывает вид «сделано из всего», например 2/5.
  • Когда все шаги закрыты, полоска две с половиной секунды показывает, что всё выполнено, а потом исчезает, не дожидаясь конца хода.
  • Если ход закончился, а часть шагов осталась неотмеченной, полоска остаётся и показывает текущий шаг. Полоска уходит, как только начнётся новый ход или все шаги закроются.
  • Полоска не показывается для плана, который отклонили, для плана прошлого хода во время нового хода в режиме планирования и для активного хода в другом треде.

Раскрытая панель плана

Тап по строке полоски раскрывает план целиком, и он растёт вверх поверх ленты: лента и поле ввода остаются на своих местах, а список шагов прокручивается сам. Кнопка «Назад» на устройстве сворачивает панель, как и повторный тап по строке. В шапке панели слева написан счётчик выполненных шагов, а после завершения хода с неотмеченными шагами вместо счётчика пишется, сколько шагов осталось без отметки. Справа в шапке есть кнопка копирования: она копирует план целиком, и в свёрнутой строке такой кнопки нет, чтобы строка не резервировала под неё место.

Полоска статуса хода

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

Что может быть написано в строке статуса:

  • ready — хода нет, агент готов к работе.
  • working… — ход идёт, но этап не распознан.
  • running… — агент выполняет команду в терминале.
  • mcp: сервер·инструмент — агент вызывает инструмент через MCP.
  • reading: путь — агент читает или ищет по файлу.
  • writing response… — агент пишет ответ.
  • thinking… — агент размышляет.
  • changing files… — агент вносит правки в файлы.
  • Compacting context — агент сжимает переписку, чтобы влезть в окно контекста.
  • opening thread… — открывается тред и читается его история.
  • waiting for approval — агент ждёт вашего одобрения действия.
  • waiting for your answer — агент задал вопрос или ждёт ввода в форму.
  • thread blocked — ход потерялся, и тред ждёт разблокировки.
  • suspected hang · silence Nм — ход молчит дольше обычного, и приложение отметило это как подозрение на зависание.
  • no connection · reconnecting… — связь с агентом потеряна, идёт переподключение.
  • Disconnected — у удалённого агента связь оборвана.
  • connected · remote — у удалённого агента связь жива.
  • Значок слева соответствует этапу: терминал для команды, карандаш для правки файла, голова для размышлений, гаечный ключ для MCP, документ для чтения файлов и круговые стрелки для смены файлов.
  • Таймер идёт на живой ход и тикает раз в секунду. Он показывает минуты и секунды, а когда ход длится больше часа — ещё и часы.
  • Пока идёт сжатие контекста, таймер показывает время сжатия, а не время хода.
  • Счётчик очереди в строке статуса появляется, только когда в очереди есть сообщения и ход идёт.
  • Цвет строки зависит от состояния. Блокировка треда и подозрение на зависание рисуются цветом ошибки, ожидание вашего ответа, одобрения и открытие треда — акцентным цветом, всё остальное — обычным цветом текста.
  • Тонкая полоска под строкой идёт во время хода и во время открытия треда. Она показывает, что процесс идёт, но не показывает точный процент: задачи у неё нет.
  • Если ход молчит, а вопросов и команд в ленте нет, приложение через четыре минуты тишины проверяет, жив ли ход на сервере. Проверка идёт не чаще раза в две минуты, и если сервер отвечает, что ход идёт, приложение продолжает показывать статус молчания, а не обрывает ход.
  • Если сервер отвечает, что ход уже закончен, приложение закрывает ход у себя и отправляет накопленную очередь.
  • Пока ждёт вашего ответа, одобрения плана или идёт сжатие контекста, проверка молчания не запускается: в этих случаях тишина ожидаема.
  • Пока агент выполняет команду, которая ещё не закончилась, приложение не считает ход зависшим и не прерывает его по таймеру.
  • Разблокировка треда снимает подозрение на зависание, пишет уведомление об успехе и отправляет очередь.

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

ПараметрЗначение
Порядок полос снизу вверхстатус хода, план, очередь
Точки и значок в строке статусаточки 4dp, значок 16dp
Отступы в строке полоски16dp по горизонтали, 6dp по вертикали
Отступы в строке плана и очереди16dp по горизонтали, 8dp по вертикали
Кнопки в строке12dp по горизонтали, 4dp по вертикали
Пульсация кнопки Start800 мс, туда-обратно
Высота кружка шага в плане20dp
Минимальная высота строки плана36dp
Высота полоски прогресса2dp, отступ по краям 16dp
Разделитель под планом0.5dp
Высота поля правки сообщения в очередиот 96dp
Сколько строк занимает текст сообщения в очередидо двух, лишнее обрезается
Формат таймера ходаmm:ss, а дольше часа h:mm:ss
Вспышка выполненного плана2,5 с
Формат счётчика шаговсделано/всего
Пауза перед повтором неудачной отправки очереди1500 мс
Задержка перечитывания очереди по уведомлению агента150 мс
Порог тишины для проверки хода4 минуты
Минимальный интервал между проверками2 минуты
Тайм-аут сжатия контекста10 минут
Когда приложение запускает очередь самотред простаивает, очередь непуста, запрос уже не летит

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

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

Ограничения

  • Тонкая полоска под строкой статуса показывает сам факт работы, а не точный процент: точной задачи у неё нет, поэтому считать нечего.
  • Сообщение в очереди остаётся в очереди, пока агент его не начал: отправить его раньше времени без прерывания хода нельзя, поэтому Send now останавливает текущий ход.
  • Сообщения, помеченные not sent, нельзя отправить первым: они ещё не дошли до агента и ждут связи.
  • Полоска плана показывает только последний план: если планов было несколько, в ленте остаются они, а в полоске видно только текущий.
  • Раскрытая панель плана занимает всю рабочую область и прокручивается сама, поэтому длинный план не выталкивает поле ввода, а шапка с кнопкой копирования остаётся на виду.
  • Заблокированный тред не отправляет очередь автоматически: пока вы не разблокируете его кнопкой на плашке, сообщения остаются в очереди.
  • Проверка молчания не прерывает ход сама: она только показывает подозрение и сверяется с сервером, а решение остаётся за вами.

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

Полосы под лентой Вернуться к справочнику