- agent-ui 정의서 전체 구조 생성 (view/component/frame/wireframe) - UI 관련 스킬 템플릿 및 규칙 문서 개선 - components: action-feedback, agent-chat-panel, artifact-list 등 20개 이상의 컴포넌트 정의서 추가 - views: agent, artifacts, executions, overview, pipelines, runners, settings 정의서 추가
101 lines
3.2 KiB
Markdown
101 lines
3.2 KiB
Markdown
---
|
|
ui_doc_type: view
|
|
view_id: runners
|
|
status: implemented
|
|
frame: null
|
|
source_evidence:
|
|
- type: code
|
|
path: packages/flutter/oto_console/lib/src/oto_runners_surface.dart
|
|
notes: "OtoRunnersSurface 구현"
|
|
- type: code
|
|
path: apps/client/lib/src/app/oto_client_app.dart
|
|
notes: "runner snapshot과 self-update action 연결"
|
|
- type: docs
|
|
path: agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md
|
|
notes: "runner self-update는 write action 감사 후보"
|
|
- type: user
|
|
path: null
|
|
notes: "agent-ui 생성 요청"
|
|
regions:
|
|
- runners.header
|
|
- runners.state-panel
|
|
- runners.runner-list
|
|
- runners.self-update-form
|
|
- runners.action-feedback
|
|
---
|
|
|
|
# Runners
|
|
|
|
View ID: `runners`
|
|
|
|
Frame:
|
|
- 없음
|
|
|
|
Status: `implemented`
|
|
|
|
## Source Evidence
|
|
|
|
| Type | Path | Notes |
|
|
|------|------|-------|
|
|
| code | `packages/flutter/oto_console/lib/src/oto_runners_surface.dart` | `OtoRunnersSurface` 구현 |
|
|
| code | `apps/client/lib/src/app/oto_client_app.dart` | runner snapshot과 self-update action 연결 |
|
|
| docs | `agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md` | runner self-update write action 경계 |
|
|
| user | 없음 | agent-ui 생성 요청 |
|
|
|
|
## Purpose
|
|
|
|
등록된 runner 상태를 보고, runner별 self-update 요청을 제출하며, action 결과를 확인한다.
|
|
|
|
## Primary Users
|
|
|
|
- operator/admin
|
|
- local developer
|
|
|
|
## Primary Tasks
|
|
|
|
- runner registry 상태 확인
|
|
- active job/execution 확인
|
|
- self-update version과 HTTPS download URL 제출
|
|
- success/deferred/failed 결과 확인
|
|
|
|
## Information Priority
|
|
|
|
1. runner id와 status
|
|
2. active job/execution context
|
|
3. self-update form과 action feedback
|
|
|
|
## Regions
|
|
|
|
| Region ID | Purpose | Component | Priority | Notes |
|
|
|-----------|---------|-----------|----------|-------|
|
|
| `runners.header` | 화면 제목 | 없음 | high | `Runners` |
|
|
| `runners.state-panel` | loading/empty/error 표현 | `state-panel` | high | snapshot state 기준 |
|
|
| `runners.runner-list` | runner row 목록 | `record-list` | high | runner id, alias, message, current job/execution |
|
|
| `runners.self-update-form` | runner self-update draft 입력 | `runner-self-update-form` | high | version, HTTPS download URL |
|
|
| `runners.action-feedback` | self-update 결과 표시 | `action-feedback` | medium | success/deferred/failed |
|
|
|
|
## Actions
|
|
|
|
| Action ID | Trigger | Result | Guard |
|
|
|-----------|---------|--------|-------|
|
|
| `runners.self-update` | Update button | runner self-update draft submit | version 값, HTTPS URL, handler 존재, not submitting |
|
|
|
|
## States
|
|
|
|
- loading: 중앙 progress indicator.
|
|
- empty: `No runners connected` state panel.
|
|
- error: `Error loading runners` state panel과 snapshot error message.
|
|
- permission-denied: planned `authorization-state` component에서 operator/admin 권한 실패를 display-safe message로 표현한다.
|
|
|
|
## Planned Extensions
|
|
|
|
- `authorization-state`: self-update action의 허용/거부, disabled/error 상태.
|
|
- `audit-action-summary`: self-update action의 actor/action/target/outcome/timestamp/reason metadata 요약.
|
|
|
|
## Open Questions
|
|
|
|
- 없음
|
|
|
|
## Decision History
|
|
|
|
- 2026-06-24: runner list와 self-update form을 주요 region으로 정의했다.
|