refactor(ui): вынести панель «Состояние» (StatePanel) из монолита окна
Спеца 12.13: интерфейс + Nil + чистые хелперы (StateText/TraceLine/ ActivityLine/TaskStatusText/StatusBadge/Itoa) в internal/ui/state_panel.go, Fyne-реализация в internal/ui/desktop/state_panel.go. window.go — чистая компоновка: все 5 панелей вынесены как контракты.
This commit is contained in:
@@ -220,6 +220,20 @@
|
||||
`Append`; строка роли = pure `FormatRole(role)` (👤/🤖).
|
||||
- Обновление — на потоке Fyne; вызывающий уже внутри `fyne.Do`.
|
||||
|
||||
### 12.13. Контракт виджета «Состояние» (StatePanel)
|
||||
|
||||
Панель «Состояние» — агенты + трейсы выбранной задачи: снимок и live-строки.
|
||||
|
||||
- `SetText(text)` — полный рендер снимка трасс выбранной задачи.
|
||||
- `Append(text)` — добавить строку; при превышении лимита старые строки
|
||||
отбрасываются (буфер ограничен).
|
||||
- Строка снимка = pure `StateText(traces)` (агент: статус, session).
|
||||
- Live-строки (чистые хелперы, окно зовёт `Append` с готовой строкой):
|
||||
- `TraceLine(agent, status)` — добавлен/обновлён трейс субагента;
|
||||
- `ActivityLine(agent, stage)` — смена этапа агента;
|
||||
- `TaskStatusText(e)` — изменение статуса задачи (бейдж + ID).
|
||||
- Обновление — на потоке Fyne; вызывающий уже внутри `fyne.Do`.
|
||||
|
||||
---
|
||||
|
||||
## Открытые пункты (TODO)
|
||||
|
||||
Reference in New Issue
Block a user