<!-- task=m-oto-specific-iop-removal/02+01_runtime_fixture_cleanup plan=1 tag=REVIEW_REFACTOR -->

# Plan - REVIEW_REFACTOR Remote Flutter Verification Recovery

## 이 파일을 읽는 구현 에이전트에게

이 plan은 `code_review_cloud_G06_0.log`의 Required issue만 해결한다. 제품 코드 변경은 목표가 아니다. 직접 사용자 질문, `USER_REVIEW.md` 작성, `complete.log` 작성, archive 이동은 금지다. 구현 중 사용자 결정이 필요하면 active review stub의 `사용자 리뷰 요청`에 근거와 재개 조건을 기록하고 멈춘다.

## Roadmap Targets

- Milestone: `agent-roadmap/phase/automation-runtime-bridge/milestones/oto-specific-iop-removal.md`
- Task ids:
  - `runtime-cleanup`: Edge registry, transport, service snapshot, Control Plane/Client fixture에서 OTO 전용 조건 분기와 표시 문구를 제거하거나 generic 표현으로 바꾼다.
- Completion mode: check-on-pass

## 범위 결정 근거

1차 리뷰에서 코드와 local quick check는 통과했지만, Flutter 검증 증거가 `agent-test/local/rules.md`와 `agent-test/local/client-smoke.md`의 원격 runner/sync 기준을 만족하지 못했다. 이 follow-up은 원격 runner에서 current 변경분이 반영된 checkout임을 증명하고 `flutter test`를 재실행하는 검증 증거 복구만 수행한다.

## 구현 체크리스트

- [ ] 원격 runner에서 current 변경분이 반영된 checkout 또는 별도 임시 workspace를 준비하고, 동기화 근거와 `cd apps/client && flutter test` 실제 stdout/stderr를 기록한다.
- [ ] current code state 기준으로 Go focused test와 OTO 제거 검색을 재실행하고 실제 stdout/stderr를 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_REFACTOR-1] Remote Flutter Verification Evidence

#### 문제

`code_review_cloud_G06_0.log`는 local HEAD `3d6af1ac8cf65100acedb6179d99f86ca75c9d9c`와 remote HEAD `c6baac391c1c6c9d5a987b4cd0f33a718a609553`가 달라 원격 runner 결과를 current 변경 증거로 볼 수 없다고 판정했다. `agent-test/local/client-smoke.md`는 Flutter client 테스트/검증을 원격 runner 기준으로 요구한다.

#### 해결 방법

아래 둘 중 하나로 증거를 확보한다.

- Preferred: 원격 `/Users/toki/agent-work/iop`가 current HEAD와 current diff를 포함하도록 이미 동기화되어 있음을 `git rev-parse HEAD`, `git status --short`, `git diff -- apps/client/test/widget_test.dart apps/control-plane/cmd/control-plane/main_test.go` 출력으로 증명한 뒤 `cd apps/client && flutter test`를 실행한다.
- Fallback: 원격 `/Users/toki/agent-work/iop-review-runtime-fixture-cleanup/` 임시 workspace에 현재 local checkout을 복사한다. 이 위치는 `apps/client/pubspec.yaml`의 `../../../agent-shell`, `../../../nexo`, `../../../proto-socket` path dependency가 `/Users/toki/agent-work/*` sibling으로 해석된다. 복사 명령, 대상 경로, local/remote 대상 파일 `sha256sum`, `flutter test` stdout/stderr를 기록한다.

원격 기존 checkout이 dirty거나 HEAD가 다르면 그 결과만으로 완료 처리하지 않는다. 임시 workspace를 만들 수 없고 원격 검증이 사용자 소유 환경 문제로 막히면 `사용자 리뷰 요청`에 정확한 차단 근거와 재개 조건을 기록한다.

#### 수정 파일 및 체크리스트

- [ ] `agent-task/m-oto-specific-iop-removal/02+01_runtime_fixture_cleanup/CODE_REVIEW-cloud-G06.md`: 원격 sync/workspace 근거와 Flutter test stdout/stderr를 기록한다.

#### 테스트 작성

새 테스트를 작성하지 않는다. 검증 증거 복구 작업이다.

#### 중간 검증

```bash
ssh -o BatchMode=yes -o ConnectTimeout=10 toki@toki-labs.com 'cd /Users/toki/agent-work/iop && git rev-parse HEAD && git status --short'
sha256sum apps/client/test/widget_test.dart apps/control-plane/cmd/control-plane/main_test.go
rsync -a --delete --exclude='.git/' --exclude='.env' --exclude='build/' --exclude='**/.dart_tool/' --exclude='agent-task/archive/' /config/workspace/iop/ toki@toki-labs.com:/Users/toki/agent-work/iop-review-runtime-fixture-cleanup/
ssh -o BatchMode=yes -o ConnectTimeout=10 toki@toki-labs.com 'cd /Users/toki/agent-work/iop-review-runtime-fixture-cleanup && sha256sum apps/client/test/widget_test.dart apps/control-plane/cmd/control-plane/main_test.go'
```

## 최종 검증

```bash
go test -count=1 ./apps/edge/internal/node ./apps/edge/internal/service ./apps/edge/internal/transport ./apps/control-plane/cmd/control-plane
ssh -o BatchMode=yes -o ConnectTimeout=10 toki@toki-labs.com 'cd /Users/toki/agent-work/iop-review-runtime-fixture-cleanup/apps/client && flutter test'
rg --sort path -n "AgentKindOTOAgent|\\bOTO\\b|\\boto\\b|oto-agent|OTOAgent" apps/edge/internal apps/control-plane/cmd/control-plane apps/client/test
```

기대 결과: Go tests 통과, 원격 runner Flutter test 통과, `rg`는 제거 대상 없음. 원격 runner 검증은 current 변경분이 반영된 경로에서 실행됐다는 근거와 함께 기록한다.
