--- ui_doc_type: component component_id: section-surface status: 구현됨 source_evidence: - type: code path: packages/flutter/oto_console/lib/src/oto_console_shell.dart notes: "OtoConsoleSectionSurface 구현" - type: docs path: apps/client/README.md notes: "console package embedding" - type: user path: null notes: "agent-ui 생성 요청" --- # Section Surface Component ID: `section-surface` Status: `구현됨` ## Source Evidence | Type | Path | Notes | |------|------|-------| | code | `packages/flutter/oto_console/lib/src/oto_console_shell.dart` | `OtoConsoleSectionSurface` 구현 | | docs | `apps/client/README.md` | console package embedding | | user | 없음 | agent-ui 생성 요청 | ## Purpose 아직 전용 surface가 없거나 fallback으로 표시하는 section의 제목, empty state, detail rows를 한 구조로 보여준다. ## Used By - `settings`: `settings.header`, `settings.state-panel`, `settings.endpoint-details` - shell fallback for `runners`, `pipelines`, `executions`, `artifacts` ## Anatomy - section icon - section title - empty state panel - optional detail tiles ## Jenkins Reference Alignment - Jenkins Manage Jenkins tile/detail page와 classic empty content panel을 fallback reference로 삼는다. - 전용 surface가 없는 section도 제목, 상태, detail rows를 같은 밀도로 보여줘야 한다. - settings fallback은 Jenkins Manage Jenkins 전체가 아니라 OTO runtime endpoint summary에만 대응한다. ## Target Layout Delta - section surface는 fallback empty state보다 settings/runtime summary group을 담는 reusable surface로 확장하는 것을 목표로 둔다. - title, detail rows, empty/error panel이 Jenkins 관리 화면처럼 분리되어야 한다. - 현재 fallback component는 grouped settings layout 반영이 완료되어 `구현됨` 상태다. ## Variants - default: empty panel only - details: HTTP API, Wire URL, browser API policy 같은 detail tiles 포함 ## States - default - empty - detail-present - error: 없음 - disabled: 없음 ## Rules - 전용 view 구현이 없을 때만 fallback으로 사용한다. - detail 값은 한 줄 ellipsis로 표시한다. ## Decision History - 2026-06-24: shell fallback surface를 `section-surface` component로 정의했다.