# Milestone: 워크스페이스 포트/환경 표준화

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/independent-control-plane/PHASE.md`

## 목표

OTO의 Core HTTP, Flutter client/dev preview, runner/local test, bootstrap/release URL 환경을 workspace 공통 포트 대역으로 정리한다. OTO는 iop Edge 직접 연결 경로가 아니라 독립 Control Plane/runner 제품이므로, IOP wire 포트와 섞이지 않는 backend/frontend 대역 기준을 먼저 문서화한다.

## 상태

[완료]

## 구현 잠금

- 상태: 해제
- 결정 필요: 없음

## 범위

- OTO Core HTTP 기본 listen과 host publish 후보 정리
- Flutter client/web preview 후보 정리
- runner/local typed-command test 환경과 서버 선택 연결 경계 정리
- `OTO_RUNNER_RELEASE_BASE_URL`, bootstrap command, artifact URL 같은 환경값의 public/private 기록 기준 정리
- IOP Edge 직접 연결 폐기 경로와 독립 OTO Control Plane 포트 경계를 분리해 문서화

## 기능

### Epic: [inventory] OTO environment inventory

OTO의 독립 Control Plane과 runner가 사용하는 환경 변수를 workspace 공통 대역으로 정렬한다.

- [x] [core-port] OTO Core host publish 후보를 backend `18020`으로 문서화하고 기존 local default `127.0.0.1:8080`과의 compatibility note를 남긴다.
- [x] [client-preview] Flutter/web preview 후보를 frontend `13020`으로 정리한다.
- [x] [bootstrap-env] runner release/base URL, bootstrap command, artifact URL 환경값은 secret 없이 source of truth와 validation 기준만 남긴다.
- [x] [test-docs] `agent-test/local`과 smoke 문서가 독립 OTO Control Plane 포트와 iop 폐기 경로를 혼동하지 않도록 체크리스트를 만든다.

## 완료 리뷰

- 상태: 승인됨
- 요청일: 2026-06-07
- 완료 근거:
  - `README.md`에 OTO Core `18020`, Flutter preview `13020`, `OTO_RUNNER_RELEASE_BASE_URL` 검증 기준과 secret 기록 금지 기준을 추가했다.
  - `apps/client/README.md`, `apps/runner/README.md`에 client preview와 agent bootstrap 환경 기준을 반영했다.
  - `agent-test/local/rules.md`와 `agent-test/local/agent-smoke.md`에 독립 OTO Control Plane 포트/환경 체크리스트와 services/core bootstrap 검증 기준을 추가했다.
- 리뷰 필요:
  - [x] 사용자가 완료 결과를 확인했다
  - [x] archive 이동을 승인했다
- 리뷰 코멘트: 사용자 요청에 따라 Milestone을 완료 처리하고 archive로 이동한다.

## 범위 제외

- OTO Core API 구현 변경
- runner job/log/artifact 기능 구현
- iop Edge 직접 domain agent 경로 복원
- private release host, credential, token 기록

## 작업 컨텍스트

- 관련 경로: `services/core/`, `apps/client/`, `apps/runner/`, `packages/flutter/oto_console/`, `agent-test/local/`
- 표준선(선택): OTO는 독립 Control Plane 포트를 소유하고, IOP wire/Edge 포트와 같은 런타임으로 묶지 않는다.
- 현재 동기화: `18020`/`13020` 표준은 root/client/runner README와 local smoke 기준에 반영되었고, Milestone 완료 승인 후 archive로 이동한다.
- 선행 작업: workspace 공통 포트 inventory 정리
- 후속 작업: env/test smoke 갱신과 drift 방지
- 확인 필요: 없음
