y83 code / инструмент

Пульт запусков

До пульта вопрос «что сейчас идёт» приходилось собирать по трём экранам: треды Codex, активные сессии opencode и задачи планировщика. Пульт отвечает на один вопрос — что выполняется, что ждёт меня и что упало — без перехода по чатам.

раздел реестра
Стоимость и запуски
код
790 строк в 3 файлах
документ
42-runs.md
Раздел: AI & Agents
Идентификатор: runs · Экран: ui/runs/RunsScreen.kt
Снимок: 2026-10-27

1. Зачем и что это

Агрегат собирается на бэкенде (internal/runs), а не в приложении: источники и их секреты живут там, и экран, виджет и уведомление должны видеть одинаковые строки без гонки трёх опросов.

2. Как попасть

Хаб инструментов → секция AI & Agents → карточка «Пульт запусков» (hub_runs_title, подпись «Что идёт сейчас, что упало и что недавно закончилось — Codex, opencode, задачи и сервисы»).

Откуда ещёПуть
Мостapp_navigate с screen: "runs"
Уведомлениетап по сводке runs_summary

3. Источники

ИсточникЧто даёт
Codex локальныйактивные треды, turnId, очередь
Codex удалённыйто же через готовый туннель; нет туннеля — tunnel unavailable
opencodeактивные сессии, формы, permissions, inbox
Планировщикзапущенные и упавшие задачи
Сервисы (svreg)автостарт-сервисы, которые не работают

Соединение с app-server короткоживущее: один опрос — один WS-цикл initialize → запросы → close. Держать третье долгоживущее соединение после приложения и чата незачем.

4. Экран и уведомление

БлокЧто показывает
«Сейчас»running и waiting; ожидание — не сбой
«Требует внимания»failed и degraded
«Недавно»до 50 строк, пропавших из «Сейчас»
StopCodex — turn/interrupt, opencode — interrupt, планировщик — CancelTask

degraded — отдельные строки для источников, которые не опрошены: «пусто» не должно читаться как «всё хорошо». Уведомление RunsWatchService опрашивает пульт раз в 15 секунд, показывает «N выполняется» / «N сбоев · M выполняется» и даёт Stop по каждой рабочей строке. По умолчанию уведомление выключено.

5. API и границы

МетодПутьЧто делает
POST/api/v1/runs/queryснимок: items, recent, degraded, fetchedAt, cached
POST/api/v1/runs/stopостановка Codex/opencode/задачи
GET/api/v1/runs?recent=&refresh=то же для скриптов и моста

Границы v1: сборки APK/бэкенда, image-jobs, медиа и Qwen в пульт не входят; «недавно» не переживает рестарт бэкенда — источник правды по истории остаётся в тредах и логах. Сервисы из пульта не останавливаются: ответ ok=false с подсказкой открыть «Сервисы».

Источник: docs/project/hub/42-runs.md · Стоимость и запуски · 790 строк в 3 файлах. Страница собирается из документации проекта при сборке сайта.