---
ui_doc_type: view
view_id: settings
status: 구현됨
frame: null
source_evidence:
  - type: code
    path: lib/src/features/settings/settings_page.dart
    notes: "SettingsPage, _WebLoginSection, _AdbDiagnosticsSection"
  - type: docs
    path: README.md
    notes: "사용자별 Jenkins API token 저장과 ADB 설정 scope"
  - type: docs
    path: agent-roadmap/phase/security-distribution/milestones/auth-broker-evaluation.md
    notes: "WebView token 자동 발급과 credential 정책 검토 맥락"
  - type: user
    path: null
    notes: "agent-ui 생성 요청"
regions:
  - settings.jenkins-card
  - settings.web-login-controls
  - settings.adb-card
  - settings.adb-diagnostics
---

# Settings

View ID: `settings`

Frame:
- 없음

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `lib/src/features/settings/settings_page.dart` | `SettingsPage`, `_WebLoginSection`, `_AdbDiagnosticsSection` |
| docs | `README.md` | 사용자별 Jenkins API token 저장과 ADB 설정 scope |
| docs | `agent-roadmap/phase/security-distribution/milestones/auth-broker-evaluation.md` | WebView token 자동 발급과 credential 정책 검토 맥락 |
| user | 없음 | agent-ui 생성 요청 |

## Purpose

Jenkins base URL과 credential 흐름, ADB path/update option, ADB runtime diagnostics를 관리한다.

## Primary Users

- Jenkins credential과 ADB runtime 상태를 준비하는 개발자 또는 QA 담당자

## Primary Tasks

- Jenkins base URL을 입력하고 Web Login을 시작한다.
- token 저장/credential 삭제 결과를 확인한다.
- ADB path와 설치 전 update option을 확인한다.
- ADB runtime source/path/version/hash diagnostics를 새로고침한다.

## Information Priority

1. Jenkins URL validation과 Web Login/Credential 삭제 actions
2. token 저장/삭제 결과와 오류 feedback
3. ADB path/update option과 diagnostics rows

## Regions

| Region ID | Purpose | Component | Priority | Notes |
|-----------|---------|-----------|----------|-------|
| `settings.jenkins-card` | Jenkins base URL, default job, auth mode selector 표시 | `jenkins-credential-panel` | high | Base URL validation 포함 |
| `settings.web-login-controls` | Web Login, Credential 삭제, 저장/삭제 결과 feedback | `jenkins-credential-panel` | high | `_WebLoginSection` |
| `settings.adb-card` | adb path field, 찾기 button, install update switch | 없음 | medium | 현재 일부 control은 placeholder action |
| `settings.adb-diagnostics` | ADB runtime diagnostics row와 refresh action | `adb-diagnostics` | medium | diagnostics loader가 있을 때 표시 |

## Actions

| Action ID | Trigger | Result | Guard |
|-----------|---------|--------|-------|
| `settings.edit-base-url` | Base URL 입력 | URL validation error 표시 여부 갱신 | 없음 |
| `settings.open-web-login` | Web Login button | Jenkins Web Login dialog 시작 | base URL이 유효하고 busy 아님 |
| `settings.clear-credential` | Credential 삭제 button | 저장된 session 삭제 시도 | clearer 있음, busy 아님 |
| `settings.refresh-adb-diagnostics` | diagnostics refresh icon | ADB runtime diagnostics reload | diagnostics loader 있음 |
| `settings.pick-adb-path` | 찾기 button | 현재 구현은 placeholder | 없음 |

## States

- loading: Web Login, token 저장, session 삭제, diagnostics loading 상태를 indicator로 표시한다.
- empty: diagnostics 없음 또는 optional diagnostics loader 없음.
- error: URL validation error, 로그인 오류, token 저장 실패, credential 삭제 실패, diagnostics load 실패.
- permission-denied: Jenkins 재인증 필요 상태는 `builds`에서 사용자를 설정으로 유도한다.

## Open Questions

- 없음

## Decision History

- 2026-06-25: Jenkins credential과 ADB diagnostics UI를 `settings` view로 기록했다.
