--- ui_doc_type: view view_id: executions status: 구현됨 frame: null source_evidence: - type: code path: packages/flutter/oto_console/lib/src/oto_executions_surface.dart notes: "OtoExecutionsSurface 구현" - type: code path: apps/client/lib/src/app/oto_client_app.dart notes: "execution actions, logs, artifacts snapshot 연결" - type: docs path: agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md notes: "execution cancel/report/log/artifact write action과 감사 노출 경계" - type: user path: null notes: "agent-ui 생성 요청" regions: - executions.header - executions.state-panel - executions.execution-list - executions.execution-detail - executions.action-toolbar - executions.action-feedback - executions.logs-preview - executions.artifacts-preview --- # Executions View ID: `executions` Frame: - 없음 Status: `구현됨` ## Source Evidence | Type | Path | Notes | |------|------|-------| | code | `packages/flutter/oto_console/lib/src/oto_executions_surface.dart` | `OtoExecutionsSurface` 구현 | | code | `apps/client/lib/src/app/oto_client_app.dart` | execution actions, logs, artifacts snapshot 연결 | | docs | `agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md` | execution write action과 감사 노출 경계 | | user | 없음 | agent-ui 생성 요청 | ## Purpose execution 상태를 확인하고, 상세 영역에서 cancel/report/log/artifact write action과 log/artifact preview를 조작한다. ## Primary Users - operator/admin - local developer ## Primary Tasks - execution 목록과 상태 확인 - execution detail 확장/접기 - cancel/report/log/artifact action submit - logs preview와 artifacts preview 확인 - artifacts tab으로 이동 ## Information Priority 1. execution id, job id, runner id, state 2. action toolbar와 결과 feedback 3. logs/artifacts preview ## Regions | Region ID | Purpose | Component | Priority | Notes | |-----------|---------|-----------|----------|-------| | `executions.header` | 화면 제목 | 없음 | high | `Executions` | | `executions.state-panel` | loading/empty/error 표현 | `state-panel` | high | snapshot state 기준 | | `executions.execution-list` | execution row 목록 | `record-list` | high | expandable row | | `executions.execution-detail` | 확장된 execution 상세 | `record-list` | high | actions, logs, artifacts 포함 | | `executions.action-toolbar` | cancel/report/log/artifact action | `execution-action-toolbar` | high | runner id 존재, not canceled, not submitting | | `executions.action-feedback` | action 결과 표시 | `action-feedback` | medium | success/failed | | `executions.logs-preview` | execution log preview | `log-preview` | medium | raw log 원문 복제 노출은 SDD 기준에서 주의 | | `executions.artifacts-preview` | execution artifact preview | `artifact-list` | medium | artifact path 민감도는 SDD 기준에서 주의 | ## Actions | Action ID | Trigger | Result | Guard | |-----------|---------|--------|-------| | `executions.toggle-detail` | execution row tap | detail expand/collapse | execution id 존재 | | `executions.cancel` | Cancel button and confirmation | cancel execution draft submit | runner id 존재, not canceled, not submitting | | `executions.report` | Report button | report execution draft submit | runner id 존재, not canceled, not submitting | | `executions.append-log` | Log button | append log draft submit | runner id 존재, not canceled, not submitting | | `executions.append-artifact` | Artifact button | append artifact draft submit | runner id 존재, not canceled, not submitting | | `executions.view-artifacts` | View Artifacts Tab | `artifacts` view로 이동 | navigation handler 존재 | ## States - loading: 중앙 progress indicator. - empty: `No executions` state panel. - error: `Error loading executions` state panel과 snapshot error message. - permission-denied: 계획 `authorization-state` component에서 operator/admin 권한 실패를 display-safe message로 표현한다. ## Planned Extensions - `authorization-state`: cancel/report/log/artifact action의 허용/거부, disabled/error 상태. - `audit-action-summary`: cancel/report/log/artifact action의 actor/action/target/outcome/timestamp/reason metadata 요약. ## Open Questions - 없음 ## Decision History - 2026-06-24: execution detail과 action toolbar를 주요 region으로 정의했다.