<!-- task=proto-socket-iop-parser-alias plan=2 tag=REVIEW_REVIEW_IOP_PARSER_ALIAS -->
# Plan: IOP parser alias 원격 동일 소스 검증

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

이 plan은 코드 수정이 아니라 검증 증거 신뢰도 회복 작업이다. 이전 루프의 원격 runner는 reviewed commit과 동기화되지 않았고, 실제 원격 파일에는 short-name parser key가 남아 있었다. 그러므로 `/Users/toki/agent-work/iop` dirty checkout에서 test가 통과했다는 출력은 이번 로컬 변경을 검증한 evidence가 아니다.

구현 에이전트는 원격 runner에 reviewed commit `1dc8d7416ad011ca0c3260cbe622713d68718733`과 동일한 소스를 비파괴적인 임시 checkout으로 준비하고, 그 checkout에서만 targeted/full Flutter test와 `git diff --check`를 실행한다. 원격 기본 checkout의 unrelated dirty file은 정리하지 않고, `git push`도 하지 않는다.

사용자에게 직접 질문하거나 선택지를 제시하지 않는다. 원격 임시 checkout 생성, sibling path dependency, Flutter SDK 실행 중 차단이 생기면 실제 명령 출력과 차단 사유를 `CODE_REVIEW-cloud-G07.md`에 기록하고 멈춘다.

## Roadmap Targets

- 없음: sibling `proto-socket` dependency 소비 정합성 follow-up이며 활성 vLLM milestone 완료 대상이 아니다.

## Archive Evidence Snapshot

- Archived plan 0: `agent-task/proto-socket-iop-parser-alias/plan_local_G04_0.log`
- Archived review 0: `agent-task/proto-socket-iop-parser-alias/code_review_local_G04_0.log`
- Archived plan 1: `agent-task/proto-socket-iop-parser-alias/plan_local_G04_1.log`
- Archived review 1: `agent-task/proto-socket-iop-parser-alias/code_review_local_G04_1.log`
- Prior verdicts: FAIL, FAIL
- Required summary: 원격 runner evidence가 reviewed commit을 검증하지 못했다. 두 번째 루프는 원격 HEAD 불일치를 기록했지만, 여전히 stale remote checkout에서 test를 실행했고 PASS 가능하다고 판단했다.
- Affected files: `apps/client/lib/iop_wire/parser_map.dart`, `apps/client/test/iop_wire/parser_map_test.dart`, `agent-task/proto-socket-iop-parser-alias/CODE_REVIEW-cloud-G07.md`
- Local reviewed source expectation:
  - `apps/client/lib/iop_wire/parser_map.dart`에는 `iop.ClientHelloRequest`, `iop.ClientHelloResponse` key만 있어야 한다.
  - `apps/client/test/iop_wire/parser_map_test.dart`는 short-name key 부재와 canonical full-name parser round-trip을 검증해야 한다.
- Invalid remote evidence observed in review 1:
  - `/Users/toki/agent-work/iop` remote HEAD: `89660dc1bd3547deb1ecb4906b13eeafc1000f60`
  - remote `parser_map.dart` still had `ClientHelloRequest` and `ClientHelloResponse` short-name keys.
  - remote `parser_map_test.dart` still expected short-name keys to exist.
- Allowed narrow reread if needed: the four archived files listed above and `agent-test/local/client-smoke.md`.

## 분석 결과

### 문제

- reviewed commit `1dc8d7416ad011ca0c3260cbe622713d68718733`는 local branch에만 있고 `origin/main`보다 앞서 있다.
- 원격 runner의 기본 checkout은 stale/dirty 상태라서 이번 변경 파일을 포함하지 않는다.
- stale checkout에서 Flutter test가 통과해도 `clientParserMap`의 short-name key 제거 회귀를 증명하지 못한다.

### 범위 결정 근거

- 포함: local reviewed commit에서 git bundle 또는 동등한 비파괴적 방법으로 원격 runner 임시 checkout 생성, 임시 checkout HEAD/파일 내용 검증, targeted/full Flutter test 실행, `git diff --check` 실행, 실제 stdout/stderr 기록.
- 제외: `git push`, 원격 기본 checkout dirty file 정리, parser map 소스 수정, proto-socket core 수정, generated protobuf 재생성, roadmap 갱신.

### 빌드 등급

- `cloud-G07`: 원격 runner/임시 checkout/git bundle/Flutter 실행 증거의 신뢰도 회복이 핵심이며, stale checkout 증거를 구분해야 하는 터미널 워크플로우 작업이다.

## 구현 체크리스트

- [ ] 원격 runner에 reviewed commit `1dc8d7416ad011ca0c3260cbe622713d68718733`과 동일한 임시 checkout을 비파괴적으로 만들고, `git rev-parse HEAD`가 정확히 일치함을 기록한다.
- [ ] 원격 임시 checkout의 `apps/client/lib/iop_wire/parser_map.dart`와 `apps/client/test/iop_wire/parser_map_test.dart` 내용이 local reviewed source와 같은 canonical full-name 정책임을 기록한다.
- [ ] 원격 임시 checkout에서 targeted Flutter regression을 실행하고 실제 stdout/stderr를 기록한다.
- [ ] 원격 임시 checkout에서 전체 `apps/client` Flutter test와 `git diff --check`를 실행하고 실제 stdout/stderr를 기록한다.
- [ ] `CODE_REVIEW-cloud-G07.md`의 구현 에이전트 소유 섹션을 실제 검증 내용과 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## 구현 항목

- [REVIEW_REVIEW_IOP_PARSER_ALIAS-1] 원격 동일 소스 검증
  - 문제: stale remote checkout test output이 reviewed commit evidence로 기록됐다.
  - 해결: local reviewed commit을 원격 runner의 임시 checkout으로 복제하고, 그 checkout의 HEAD와 파일 내용을 증명한 뒤 Flutter test를 실행한다.
  - 변경 파일: `agent-task/proto-socket-iop-parser-alias/CODE_REVIEW-cloud-G07.md`
  - 중간 검증: 원격 임시 checkout에서 `git rev-parse HEAD`가 `1dc8d7416ad011ca0c3260cbe622713d68718733`인지 확인한다.

## 수정 파일 요약

- 예상 변경: `agent-task/proto-socket-iop-parser-alias/CODE_REVIEW-cloud-G07.md`
- 변경 금지: `apps/client/lib/iop_wire/parser_map.dart`, `apps/client/test/iop_wire/parser_map_test.dart`, `/config/workspace/proto-socket/**`, generated protobuf files, 원격 기본 checkout dirty files

## 권장 검증 절차

예시는 비파괴적인 git bundle 경로다. 동일한 결과를 내는 안전한 방법이면 대체 가능하지만, 대체 이유와 실제 명령을 `계획 대비 변경 사항`에 남긴다.

```bash
git bundle create /tmp/iop-parser-alias-1dc8d74.bundle 1dc8d7416ad011ca0c3260cbe622713d68718733
scp /tmp/iop-parser-alias-1dc8d74.bundle toki@toki-labs.com:/tmp/iop-parser-alias-1dc8d74.bundle
ssh -o BatchMode=yes -o ConnectTimeout=10 toki@toki-labs.com 'tmpdir=$(mktemp -d /Users/toki/agent-work/iop-parser-alias-review-XXXXXX) && git clone /tmp/iop-parser-alias-1dc8d74.bundle "$tmpdir" && cd "$tmpdir" && git rev-parse HEAD && sed -n "1,80p" apps/client/lib/iop_wire/parser_map.dart && sed -n "1,100p" apps/client/test/iop_wire/parser_map_test.dart'
ssh -o BatchMode=yes -o ConnectTimeout=10 toki@toki-labs.com 'cd <tmpdir-from-above>/apps/client && /Users/toki/SDK/flutter/bin/flutter test test/iop_wire/parser_map_test.dart test/iop_wire/client_wire_client_test.dart test/client_bootstrap_test.dart'
ssh -o BatchMode=yes -o ConnectTimeout=10 toki@toki-labs.com 'cd <tmpdir-from-above>/apps/client && /Users/toki/SDK/flutter/bin/flutter test'
ssh -o BatchMode=yes -o ConnectTimeout=10 toki@toki-labs.com 'cd <tmpdir-from-above> && git diff --check'
```

예상 결과: 원격 임시 checkout HEAD가 reviewed commit과 일치하고, parser map/test가 canonical full-name 정책을 담고 있으며, targeted regression과 전체 Flutter test가 통과하고 whitespace error가 없다.

