---
ui_doc_type: view
view_id: settings
status: 구현됨
frame: null
source_evidence:
  - type: code
    path: packages/flutter/oto_console/lib/src/oto_console_shell.dart
    notes: "settings section fallback surface 구현"
  - type: code
    path: apps/client/lib/src/app/oto_client_app.dart
    notes: "host app은 settings override를 넘기지 않아 fallback surface 사용"
  - type: docs
    path: apps/client/README.md
    notes: "preview port와 server URL 설정 기준"
  - type: user
    path: null
    notes: "agent-ui 생성 요청"
regions:
  - settings.header
  - settings.state-panel
  - settings.endpoint-details
---

# Settings

View ID: `settings`

Frame:
- 없음

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `packages/flutter/oto_console/lib/src/oto_console_shell.dart` | settings section fallback surface 구현 |
| code | `apps/client/lib/src/app/oto_client_app.dart` | settings override 없이 fallback 사용 |
| docs | `apps/client/README.md` | preview port와 server URL 설정 기준 |
| user | 없음 | agent-ui 생성 요청 |

## Purpose

런타임 endpoint와 browser API policy 같은 local preference/환경 정보를 확인한다.

## Primary Users

- operator/admin
- local developer

## Primary Tasks

- HTTP API endpoint 확인
- Wire URL 확인
- browser API policy 확인

## Information Priority

1. HTTP API endpoint
2. Wire URL
3. browser API policy

## Jenkins Reference Alignment

- Jenkins Manage Jenkins를 OTO `settings` view의 러프 참조로 삼는다.
- 현재 구현은 local runtime endpoint와 browser policy만 보여주는 fallback surface다.
- Jenkins Manage Jenkins의 System Configuration, Security, Status Information, Troubleshooting, Tools and Actions grouping은 후속 설정 화면 확장 시 grouping 후보로 둔다.
- OTO runner/server runtime 설정과 Jenkins controller administration을 같은 정보 구조로 강제하지 않는다.

## Target Layout Delta

- settings는 fallback empty panel이 아니라 Manage Jenkins처럼 runtime, security/policy, connectivity 그룹으로 나누는 layout을 목표로 둔다.
- 현재 표시 항목은 HTTP API, Wire URL, Browser API policy로 제한하되 group label을 명확히 한다.
- future setting이 생기면 같은 group system 아래에 tile을 추가한다.
- 현재 코드는 runtime endpoint와 browser policy detail grouping 반영이 완료되어 `구현됨` 상태다.

## Regions

| Region ID | Purpose | Component | Priority | Notes |
|-----------|---------|-----------|----------|-------|
| `settings.header` | 화면 제목 | `section-surface` | high | `Settings` |
| `settings.state-panel` | fallback empty state | `state-panel` | medium | local preferences 없음 |
| `settings.endpoint-details` | endpoint and policy details | `endpoint-tile` | high | config가 있을 때 HTTP/Wire 표시 |

## Actions

| Action ID | Trigger | Result | Guard |
|-----------|---------|--------|-------|
| 없음 | - | - | - |

## States

- loading: 현재 구현에는 별도 loading state가 없다.
- empty: `No local preferences` state panel.
- error: 현재 구현에는 별도 error state가 없다.
- permission-denied: 현재 구현에는 별도 denied state가 없다.

## Open Questions

- 없음

## Decision History

- 2026-06-24: shell fallback settings surface를 view로 정의했다.
