4.8 KiB
4.8 KiB
| ui_doc_type | component_id | status | source_evidence | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| component | console-rail | 계획 |
|
Console Rail
Component ID: console-rail
Status: 계획 (Jenkins IA gate 미충족: global/context menu 모델 분리가 후속 구현 대기)
Source Evidence
| Type | Path | Notes |
|---|---|---|
| code | packages/flutter/oto_console/lib/src/oto_console_shell.dart |
_OtoConsoleRail, _RailButton 구현 |
| docs | apps/client/README.md |
embeddable console surface |
| user | 없음 | agent-ui 생성 요청 |
Purpose
콘솔 section 사이를 빠르게 이동하는 고정 rail navigation을 제공한다.
Used By
overview: shell navigationrunners: shell navigationpipelines: shell navigationexecutions: shell navigationartifacts: shell navigationagent: shell navigationsettings: shell navigation
Anatomy
- icon button
- tooltip
- selected visual state
- top main section group
- bottom agent/settings group
Jenkins Reference Alignment
- OTO rail은 Jenkins Dashboard-level left menu의 일부 destination만 전역 section으로 축약한다.
- Jenkins classic job/run page의 좌측 메뉴는 page-local task/action list이므로, 현재 OTO rail과 동일한 것으로 보지 않는다.
- Jenkins와 달리 breadcrumb stack과 contextual task menu는 현재 제공하지 않는다. 세부 route가 늘어나면 shell/header와 view-local left task menu로 분리한다.
- 사용자 결정(2026-07-03): OTO의 메뉴 구조는 Jenkins 메뉴 모델 중 OTO에 바로 적용 가능한 항목만 1차 적용한다. 현재 rail의 partial mapping은 최종 목표가 아니라 구현 전 상태다.
Jenkins Left Menu Mapping
1차 적용 Global Menu
| Order | Jenkins menu model | OTO menu item | Target |
|---|---|---|---|
| 1 | Dashboard / view root | Overview |
Control Plane dashboard/home |
| 2 | New Item |
New Item |
Pipelines create flow |
| 3 | Jobs / item list | Pipelines |
job list and selected job status |
| 4 | Build History |
Build History |
execution history |
| 5 | Nodes/Agents | Runners |
runner/node list |
| 6 | Artifacts |
Artifacts |
artifact list |
| 7 | Manage Jenkins |
Manage OTO / Settings |
Jenkins-style management categories |
| 8 | OTO-specific Agent | Agent |
OTO assistant surface |
1차 적용 Context Menus
| Context | Jenkins menu model | OTO menu item | Target |
|---|---|---|---|
| Job | Status |
Status |
selected job status/detail |
| Job | Build History |
Build History |
selected job execution history |
| Job | Stages / Full Stage View |
Stages |
selected execution stage graph |
| Run | Pipeline Overview |
Pipeline Overview |
stage graph primary region |
| Run | Console Output |
Console Output |
selected execution log |
| Run | Artifacts |
Artifacts |
selected execution artifacts |
| Run | Build History |
Build History |
nearby execution history/context |
제외/후순위
People, Changes, existing job Build Now, Configure, Replay, Pipeline Syntax는 OTO Core/UI 계약이 생기기 전까지 1차 메뉴에 만들지 않는다.
Target Layout Delta
- rail은 현재 60px icon-only 구조에서 Jenkins Dashboard-level left menu를 알아볼 수 있는 메뉴로 재정렬한다.
- Jenkins job/run left menu parity는 rail이 아니라 view-local contextual task menu로 정의하고 구현한다.
- selected state와 tooltip은 유지하고, section ordering은 overview, new item, pipelines, build history, runners, artifacts, manage, agent 순서를 기준으로 검토한다.
- 현재 rail 구현은 global destination 축약(current)만 존재하고, 위 1차 적용 Global/Context menu(target)는 Jenkins IA gate 미충족 상태다.
- 후속 구현(02/03)의 widget 테스트는 global menu label
New Item,Build History,Nodes,Artifacts,Manage OTO와 job/run context menu(Status,Stages,Pipeline Overview,Console Output) 분리를 고정 label로 확인한다.
Variants
- default: 60px rail width, 56x48 button hit area
- selected: primary color icon and tinted background
States
- default
- selected
- hover/focus via Flutter button semantics
- disabled: 없음
Rules
- navigation destination은
OtoConsoleSectionenum과 일치해야 한다. - section 추가 시 rail button, enum, view definition을 함께 갱신하고, visual source가 있으면 frame-view definition도 함께 갱신한다.
Decision History
- 2026-06-24: shell rail을
console-railcomponent로 정의했다.