--- 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로 정의했다.