--- ui_doc_type: component component_id: execution-action-toolbar status: implemented 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: `implemented` ## 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 ## 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로 정의했다.