<!-- task=m-oto-registration-online-smoke/02+01_oto_agent_session plan=1 tag=REVIEW_API -->

# Follow-up Plan - REVIEW_API

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

이 plan은 `code_review_cloud_G06_0.log`의 WARN finding만 처리한다. 코드 동작, protobuf 생성물, runner/session 설계는 바꾸지 말고 formatter mismatch 해소와 검증 출력 기록에 집중한다.

구현 중 사용자-only blocker가 있으면 active review stub의 `사용자 리뷰 요청` 섹션에 정확한 결정, 근거, 재개 조건을 남기고 멈춘다. 명령 재실행이나 출력 수집으로 해소 가능한 증거 공백은 사용자 리뷰 요청이 아니다.

## 배경

첫 리뷰는 기능 구현과 targeted verification을 통과했지만, 수동 변경 Dart 파일 2개가 formatter 기준을 통과하지 못해 `WARN`으로 종료되었다.

## 이전 리뷰 요약

- Archived plan: `agent-task/m-oto-registration-online-smoke/02+01_oto_agent_session/plan_cloud_G06_0.log`
- Archived review: `agent-task/m-oto-registration-online-smoke/02+01_oto_agent_session/code_review_cloud_G06_0.log`
- Verdict: `WARN`
- Issue: `../oto/lib/oto/agent/edge_registration_client.dart`와 `../oto/lib/oto/agent/agent_runner.dart`가 `dart format --output=none --set-exit-if-changed`를 통과하지 못함.

## 범위 결정 근거

- 이번 follow-up은 format-only 정리다.
- `../oto/lib/oto/agent/**`의 동작, `../oto/pubspec.yaml`, generated protobuf 파일, iop Edge 구현, smoke evidence 수집은 수정하지 않는다.
- `test/oto_iop_connection_smoke_test.dart`는 별도 active subtask `03+01,02_smoke_evidence`의 범위이므로 여기서 고치지 않는다.

## 구현 체크리스트

- [ ] `cd ../oto && dart format lib/oto/agent/edge_registration_client.dart lib/oto/agent/agent_runner.dart test/oto_agent_registration_test.dart`를 실행해 formatter mismatch를 해소한다.
- [ ] `cd ../oto && dart format --output=none --set-exit-if-changed lib/oto/agent/edge_registration_client.dart lib/oto/agent/agent_runner.dart test/oto_agent_registration_test.dart`를 실행해 exit 0을 기록한다.
- [ ] `cd ../oto && dart analyze`를 실행한다.
- [ ] `cd ../oto && dart test test/oto_agent_registration_test.dart test/oto_agent_config_test.dart`를 실행한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_API-1] Dart Formatter Cleanup

문제: `code_review_cloud_G06_0.log`에서 `dart format --output=none --set-exit-if-changed`가 `edge_registration_client.dart`와 `agent_runner.dart`를 변경 대상으로 보고했다.

해결 방법: formatter를 적용하고, 동일 format check가 exit 0이 되는지 확인한다.

Before:

```text
Changed lib/oto/agent/edge_registration_client.dart
Changed lib/oto/agent/agent_runner.dart
Formatted 3 files (2 changed) in 0.04 seconds.
# exit 1
```

After:

```text
Formatted 3 files (0 changed) in ...
# exit 0
```

수정 파일 및 체크리스트:

- [ ] `../oto/lib/oto/agent/edge_registration_client.dart` formatter 적용.
- [ ] `../oto/lib/oto/agent/agent_runner.dart` formatter 적용.
- [ ] `../oto/test/oto_agent_registration_test.dart` formatter command 대상에 포함하되, 실제 변경 여부를 기록.

테스트 작성: SKIP. format-only follow-up이며 기존 targeted tests를 재실행한다.

중간 검증:

```bash
cd ../oto && dart format --output=none --set-exit-if-changed lib/oto/agent/edge_registration_client.dart lib/oto/agent/agent_runner.dart test/oto_agent_registration_test.dart
```

예상 결과: exit code 0.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `../oto/lib/oto/agent/edge_registration_client.dart` | REVIEW_API-1 |
| `../oto/lib/oto/agent/agent_runner.dart` | REVIEW_API-1 |
| `../oto/test/oto_agent_registration_test.dart` | REVIEW_API-1, only if formatter changes it |

## 최종 검증

```bash
cd ../oto && dart format --output=none --set-exit-if-changed lib/oto/agent/edge_registration_client.dart lib/oto/agent/agent_runner.dart test/oto_agent_registration_test.dart
cd ../oto && dart analyze
cd ../oto && dart test test/oto_agent_registration_test.dart test/oto_agent_config_test.dart
```

예상 결과: 모두 exit code 0. 모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채운다.
