---
ui_doc_type: component
component_id: log-preview
status: 구현됨
source_evidence:
  - type: code
    path: packages/flutter/oto_console/lib/src/oto_executions_surface.dart
    notes: "_buildLogsSection, _buildLogsContent 구현"
  - type: code
    path: packages/flutter/oto_console/lib/src/oto_console_contract.dart
    notes: "OtoLogEntryViewModel"
  - type: docs
    path: agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md
    notes: "raw log line은 감사 이벤트에 복제하지 않는 기준"
---

# Log Preview

Component ID: `log-preview`

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `packages/flutter/oto_console/lib/src/oto_executions_surface.dart` | `_buildLogsSection`, `_buildLogsContent` 구현 |
| code | `packages/flutter/oto_console/lib/src/oto_console_contract.dart` | `OtoLogEntryViewModel` |
| docs | `agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md` | raw log line 감사 복제 금지 기준 |

## Purpose

선택된 execution의 로그 일부를 bounded monospace preview로 보여준다.

## Used By

- `executions`: `executions.logs-preview`

## Anatomy

- section title
- black preview container
- timestamped log lines
- loading/empty/error text

## Jenkins Reference Alignment

- Jenkins Console Output와 Pipeline Graph View의 live log pane을 러프 참조로 삼는다.
- 현재는 bounded preview이며, full console follow, search, copy, download는 후속 후보로 둔다.
- tailing/partial line 처리처럼 Jenkins에서 자주 보정되는 log UX는 후속 implementation 검증 항목으로 둔다.

## Target Layout Delta

- log preview는 selected execution detail의 독립 pane으로 이동하는 것을 목표로 둔다.
- bounded preview는 유지하되, future full console action을 추가할 수 있는 header/action slot을 둔다.
- 현재 preview는 목표 log pane layout 반영이 완료되어 `구현됨` 상태다.

## Variants

- no logs loaded
- loading
- empty
- error
- data

## States

- default
- loading
- empty
- error
- data

## Rules

- preview 높이는 제한한다.
- 감사 이벤트나 감사 UI 정의에는 raw log line을 복제하지 않는다.

## Decision History

- 2026-06-24: execution detail log preview를 `log-preview` component로 정의했다.
