---
ui_doc_type: component
component_id: execution-action-toolbar
status: 구현됨
source_evidence:
  - type: code
    path: packages/flutter/oto_console/lib/src/oto_executions_surface.dart
    notes: "_buildActionsSection, _ActionButton 구현"
  - type: code
    path: packages/flutter/oto_console/lib/src/oto_console_contract.dart
    notes: "execution action draft models"
  - type: docs
    path: agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md
    notes: "cancel/report/log/artifact write action audit 후보"
---

# Execution Action Toolbar

Component ID: `execution-action-toolbar`

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `packages/flutter/oto_console/lib/src/oto_executions_surface.dart` | `_buildActionsSection`, `_ActionButton` 구현 |
| code | `packages/flutter/oto_console/lib/src/oto_console_contract.dart` | execution action draft models |
| docs | `agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md` | execution write action audit 후보 |

## Purpose

확장된 execution에서 cancel, report, append log, append artifact action을 제공한다.

## Used By

- `executions`: `executions.action-toolbar`

## Anatomy

- Cancel button
- Report button
- Log button
- Artifact button
- per-button submitting/success/failure indicator
- cancel confirmation dialog

## Jenkins Reference Alignment

- Jenkins build page의 Abort/Restart/Console/Artifacts action 영역을 러프 참조로 삼는다.
- Pipeline Graph View처럼 run detail에서 stage/log/artifact context를 벗어나지 않고 action을 수행하는 흐름을 후속 조정 기준으로 둔다.
- Jenkins stage restart/replay와 OTO report/log/artifact append는 의미가 다르므로 button vocabulary는 OTO contract를 우선한다.

## Target Layout Delta

- toolbar는 expanded card 내부 button row가 아니라 selected execution detail header/action area에 붙는 구조를 목표로 둔다.
- destructive action, append/report action, navigation action을 group으로 나눈다.
- 현재 toolbar 구현은 목표 run detail action layout 반영이 완료되어 `구현됨` 상태다.

## Variants

- enabled: runner id가 있고 cancel 상태가 아니며 submitting 중이 아님
- disabled: runner id 없음, canceled state, submitting

## States

- default
- disabled
- submitting
- succeeded
- failed

## Rules

- cancel은 confirmation dialog를 거친다.
- raw log line, artifact full path, credential-like error payload를 감사 UI에 복제 노출하지 않는다.
- action outcome은 SDD의 actor/action/target/outcome/timestamp/reason metadata 경계와 맞춰 확장한다.

## Decision History

- 2026-06-24: execution write action button group을 `execution-action-toolbar` component로 정의했다.
