validate-agent-ui 규칙이 요구하는 상태값 스키마에 맞춰 기존 code-first agent-ui 문서의 legacy 상태 표기를 정규화한다.
94 lines
3.1 KiB
Markdown
94 lines
3.1 KiB
Markdown
---
|
|
ui_doc_type: view
|
|
view_id: execution-logs
|
|
status: 구현됨
|
|
frame: null
|
|
source_evidence:
|
|
- type: code
|
|
path: apps/client/lib/widgets/execution_logs_panel.dart
|
|
notes: ExecutionLogsPanel renders edge filter, refresh action, and lifecycle event list.
|
|
- type: code
|
|
path: apps/client/lib/client_home_page.dart
|
|
notes: ClientHomePage injects ExecutionLogsPanel into the shell executionLogs section.
|
|
- type: docs
|
|
path: README.md
|
|
notes: Edge aggregates execution history and lifecycle events for operational visibility.
|
|
- type: user
|
|
path: null
|
|
notes: Initial scaffold requested by user.
|
|
regions:
|
|
- execution-logs.header
|
|
- execution-logs.edge-selector
|
|
- execution-logs.event-list
|
|
- execution-logs.event-entry
|
|
---
|
|
|
|
# Execution Logs
|
|
|
|
View ID: `execution-logs`
|
|
|
|
Frame:
|
|
- 없음
|
|
|
|
Status: `구현됨`
|
|
|
|
## Source Evidence
|
|
|
|
| Type | Path | Notes |
|
|
|------|------|-------|
|
|
| code | `apps/client/lib/widgets/execution_logs_panel.dart` | `ExecutionLogsPanel`이 Edge filter, loading/error/empty state, event list를 렌더링한다. |
|
|
| code | `apps/client/lib/client_home_page.dart` | shell execution logs section에 `ExecutionLogsPanel`을 주입한다. |
|
|
| docs | `README.md` | Edge는 execution history aggregation과 event aggregation을 담당한다. |
|
|
| user | 없음 | 초기 agent-ui 생성을 요청했다. |
|
|
|
|
## Purpose
|
|
|
|
선택 Edge의 lifecycle event와 execution log timeline을 시간순으로 확인한다.
|
|
|
|
## Primary Users
|
|
|
|
- IOP operator
|
|
- lifecycle event를 추적하는 engineer
|
|
|
|
## Primary Tasks
|
|
|
|
- Edge별 event filtering
|
|
- event type, reason, node/source, timestamp 확인
|
|
- event list refresh
|
|
|
|
## Information Priority
|
|
|
|
1. event type과 severity color
|
|
2. event reason
|
|
3. node/source와 timestamp
|
|
|
|
## Regions
|
|
|
|
| Region ID | Purpose | Component | Priority | Notes |
|
|
|-----------|---------|-----------|----------|-------|
|
|
| `execution-logs.header` | title, filter Edge selector, refresh 표시 | `edge-selector` | high | `Lifecycle Events & Logs` heading을 포함한다. |
|
|
| `execution-logs.edge-selector` | event filter Edge 선택 | `edge-selector` | high | 선택 Edge의 events를 대상으로 한다. |
|
|
| `execution-logs.event-list` | event timeline 목록 표시 | `event-log-entry` | high | ListView로 event entry를 반복한다. |
|
|
| `execution-logs.event-entry` | 단일 event의 type, reason, source 표시 | `event-log-entry` | high | severity별 color/icon 기준을 사용한다. |
|
|
|
|
## Actions
|
|
|
|
| Action ID | Trigger | Result | Guard |
|
|
|-----------|---------|--------|-------|
|
|
| `execution-logs.select-edge` | Filter Edge dropdown change | 선택 Edge events로 전환한다. | Edge 목록이 있어야 한다. |
|
|
| `execution-logs.refresh` | Refresh icon button | 선택 Edge events를 다시 fetch한다. | 선택 Edge가 있어야 한다. |
|
|
|
|
## States
|
|
|
|
- loading: event fetch 중 spinner를 표시한다.
|
|
- empty: event가 없으면 `No Events Captured` 메시지를 표시한다.
|
|
- error: event fetch 실패 메시지를 표시한다.
|
|
- permission-denied: 현재 구현 근거 없음
|
|
|
|
## Open Questions
|
|
|
|
- 없음
|
|
|
|
## Decision History
|
|
|
|
- 2026-06-25: `ExecutionLogsPanel` 구현을 기준으로 execution-logs view를 정의했다.
|