# live-terminal

Статус: отключен по умолчанию. Старый lifecycle observer удален, потому что ожидаемая product surface должна показывать stdout/stderr/logs процесса, который запустила LLM.

## Назначение

`live-terminal` должен стать read-only view над живыми process logs: stdout, stderr, tail output, terminal id, background job state, cancel/completion state и progress updates для команд, которые запускает агент.

## Почему он есть в проекте

Это важная пользовательская поверхность для долгих процессов: когда LLM запускает build, test, server или training job, пользователь должен видеть живой вывод этого процесса. Hook tracing не решает эту задачу, поэтому локальная lifecycle-based реализация выключена и заменена report-only командой до порта OMP bash/job/PTY behavior.

## Пользовательская поверхность

- Пользователь может вызвать `/live`, чтобы увидеть fail-closed статус.
- Extension больше не подписывается на `turn_start`, `tool_call`, `tool_execution_start`, `tool_result`, `turn_end`, `agent_start`, `agent_end` или `stop`.
- Виджет прямо говорит, что нужен порт OMP bash/job/PTY streaming, а не lifecycle event log.

## Как работает по коду

Entrypoint `extensions/live-terminal/index.ts` регистрирует только command `live`. Команда вызывает `setTextWidget(ctx, "live", ...)` и показывает report-only текст. Новые lifecycle events не читаются и не записываются.

- Entrypoint: `./extensions/live-terminal/index.ts`
- Manifest: `extensions/live-terminal/manifest.json`
- Commands: `live`
- Tools: none
- Hooks: none
- Permissions: fs.read=none, fs.write=none, subprocess=none, network=none, browser=false, models=false, ui=`setWidget`
- State: none
- Review: status=reviewed, source=wrapper-first, reviewedBy=miloc-pi, reviewedAt=2026-06-01, risk=medium

## Ограничения и риски

Этот extension пока не видит stdout/stderr chunks, не знает `terminalId`, не читает `AsyncJobManager`, не умеет poll/cancel/list и не отличает foreground command от background job. Включать его нельзя, пока data plane не будет портирован из OMP.

## Решение

Решение: `redesign-later`, report-only locally. Следующий шаг — спроектировать и портировать Miloc-facing `/live` поверх OMP `BashTool`, `JobTool`, `AsyncJobManager`, `executeBash`, `TailBuffer` и PTY execution. Проверка готовности должна включать долгую команду с live stdout/stderr, а не lifecycle hook smoke.
