2.9 KiB
2.9 KiB
| ui_doc_type | component_id | status | source_evidence | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| component | console-shell | 구현됨 |
|
Console Shell
Component ID: console-shell
Status: 구현됨
Source Evidence
| Type | Path | Notes |
|---|---|---|
| code | packages/flutter/oto_console/lib/src/oto_console_shell.dart |
OtoConsoleShell Scaffold, rail, selected section content 구현 |
| code | apps/client/lib/src/app/oto_client_app.dart |
host MaterialApp이 OtoConsoleShell을 mount |
| docs | apps/client/README.md |
embeddable shell 기준 |
Purpose
Control Plane 콘솔의 전체 layout shell을 제공하고, rail navigation과 선택된 section content를 연결한다.
Used By
overview: shell content arearunners: shell content areapipelines: shell content areaexecutions: shell content areaartifacts: shell content areaagent: shell content areasettings: shell content area
Anatomy
ScaffoldSafeAreaconsole-rail- selected section content area
- optional fallback
section-surface
Jenkins Reference Alignment
- Jenkins
2.516+의 통합 header/breadcrumb/action 모델은 future shell header 후보로 둔다. - 현재 구현은 rail 중심 shell이므로 Jenkins classic side task list와 Blue Ocean common navigation을 절충한 OTO 운영 콘솔 shell로 본다.
- view header와 action은 각 surface 내부에 있고, shell은 navigation과 content mounting 책임만 가진다.
- global search, command palette, account/theme picker는 이번 정의 범위에서 제외한다.
Target Layout Delta
- shell은 rail + content만이 아니라 page header/action slot을 담을 수 있는 구조를 목표로 둔다.
- breadcrumb는 이번 범위에서 제외하지만, Jenkins refreshed header처럼 current view context와 primary action을 같은 상단 영역에 둘 수 있어야 한다.
- 현재
OtoConsoleShell구현은 목표 shell layout 반영이 완료되어구현됨상태다.
Variants
- default: host가 전용 surface를 모두 넘긴 상태
- fallback: 특정 section widget이 없으면
section-surface를 표시
States
- default
- selected-section
- fallback-section
- navigation-callback
Rules
- section enum, rail button, view definition은 같은 section 집합을 말해야 한다.
- shell은 view source of truth가 아니라 view를 담는 container component다.
Decision History
- 2026-06-24: 구현 후보 재검토 중
OtoConsoleShell을 별도 shell component로 보강했다.