<!-- task=m-proto-socket-infrastructure-communication-rail/03+02_workspace_integration plan=3 tag=REVIEW_API_REMOTE -->

# Plan - REVIEW_API_REMOTE Remote Verification Cleanup

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

이 plan의 구현이 끝나면 active `CODE_REVIEW-*-G??.md`에서 구현 에이전트 소유 섹션을 실제 구현 내용, 검증 출력, 계획 대비 변경 사항으로 채워야 한다. 최종 archive, `complete.log`, 리뷰 판정은 code-review-skill 전용이다. 구현 중 사용자만 결정할 수 있는 범위 변경, 사용자 소유 외부 환경/secret 준비, 또는 안전한 진행을 막는 scope 충돌이 있으면 review stub의 `사용자 리뷰 요청` 섹션에 정확한 결정과 근거를 남기고 멈춘다. 후속 에이전트가 명령 재실행이나 산출물 수집으로 메울 수 있는 검증 공백만으로는 사용자 리뷰 요청을 만들지 않는다.

## 배경

G07 verification follow-up initially stopped incorrectly instead of using the configured remote runner. After using the remote runner, widget and full Flutter tests passed, but analyzer reported one new warning in the test fixture: an optional `taskMaps` constructor parameter was never provided. This follow-up keeps the loop as a normal plan/review path: apply the minimal test fixture cleanup and preserve the remote verification evidence.

## 사용자 리뷰 요청 흐름

구현 중 blocker는 active review stub의 `사용자 리뷰 요청` 섹션에 기록한다. code-review가 해당 요청을 검증하고 실제 `USER_REVIEW.md` 작성 여부를 결정한다. For this follow-up, use the configured remote runner from `agent-test/local/mobile-android-sdk-smoke.md`; do not create a USER_REVIEW solely because local test execution is prohibited.

## 분석 결과

### 읽은 파일

- `agent-test/local/rules.md`
- `agent-test/local/mobile-smoke.md`
- `agent-test/local/mobile-android-sdk-smoke.md`
- `agent-task/m-proto-socket-infrastructure-communication-rail/03+02_workspace_integration/plan_cloud_G07_2.log`
- `agent-task/m-proto-socket-infrastructure-communication-rail/03+02_workspace_integration/code_review_cloud_G07_2.log`
- `apps/client/test/widget_test.dart`
- `apps/client/lib/src/app/nomadcode_client_app.dart`
- `apps/client/lib/src/features/workspaces/presentation/workspace_home_page.dart`

### 테스트 환경 규칙

- `agent-test/local/rules.md` prohibits current local test execution.
- `agent-test/local/mobile-android-sdk-smoke.md` defines the standard remote runner at `toki@toki-labs.com` and recommends `zsh -lc '<command>'`.
- Use a remote copy under `/Users/toki/works/nomadcode-review-03workspace` or another runner checkout with the current working tree changes applied.

### 테스트 커버리지 공백

- Source coverage is present. Execution evidence exists from the remote run, but final review still needs it recorded in the active review stub after the analyzer warning cleanup.

### 심볼 참조

- No production symbols are renamed. The only expected code cleanup is inside `_FakeProtoSocketTransport` in `apps/client/test/widget_test.dart`.

### 분할 판단

This remains one follow-up inside existing split subtask `03+02_workspace_integration`. The cleanup and verification evidence are inseparable and should not become another sibling subtask.

### 범위 결정 근거

Do not change production app behavior unless remote verification exposes a new failure. The expected code change is limited to `apps/client/test/widget_test.dart`.

### 빌드 등급

Build lane `cloud-G07`, review lane `cloud-G07`: this remains remote verification evidence recovery after prior verification-trust failures.

## 구현 체크리스트

- [ ] [REVIEW_API_REMOTE-1] Remove the unused optional `taskMaps` parameter from `_FakeProtoSocketTransport` in `apps/client/test/widget_test.dart`.
- [ ] [REVIEW_API_REMOTE-2] Run remote widget/full Flutter tests and analyzer, then record actual stdout/stderr.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## [REVIEW_API_REMOTE-1] Test Fixture Analyzer Cleanup

### 문제

Remote `flutter analyze --no-fatal-infos` reported:

```text
warning • A value for optional parameter 'taskMaps' isn't ever given. Try removing the unused parameter • test/widget_test.dart:31:10 • unused_element_parameter
```

### 해결 방법

Change `_FakeProtoSocketTransport` so `taskMaps` is a fixed field or otherwise remove the unused optional constructor parameter. Keep test behavior unchanged.

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

- [ ] Update `apps/client/test/widget_test.dart`.
- [ ] Do not modify production files for this warning.

### 테스트 작성

No new test is needed; this is analyzer cleanup for the existing fake fixture.

### 중간 검증

```bash
ssh toki@toki-labs.com "zsh -lc 'cd /Users/toki/works/nomadcode-review-03workspace/apps/client && flutter analyze --no-fatal-infos'"
```

Expected: no warnings/errors from `test/widget_test.dart`; existing `mattermost_auth_service.dart` avoid_print infos may remain.

## [REVIEW_API_REMOTE-2] Remote Verification Evidence

### 문제

The task needs real remote stdout/stderr for the workspace integration widget tests, full Flutter tests, and analyzer.

### 해결 방법

Run the required commands on the configured remote runner with the current working tree changes applied. Paste actual output into `CODE_REVIEW-cloud-G07.md`.

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

- [ ] Update `CODE_REVIEW-cloud-G07.md` with command output.
- [ ] If a command fails, fix only the failing issue and rerun the relevant command plus the final verification set.

### 테스트 작성

No additional test beyond the existing widget coverage unless the remote command output proves a gap.

### 중간 검증

```bash
ssh toki@toki-labs.com "zsh -lc 'cd /Users/toki/works/nomadcode-review-03workspace/apps/client && flutter test test/widget_test.dart'"
```

Expected: `All tests passed!`

## 의존 관계 및 구현 순서

Apply REVIEW_API_REMOTE-1 before final remote verification. Then run REVIEW_API_REMOTE-2.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `apps/client/test/widget_test.dart` | REVIEW_API_REMOTE-1 |
| `agent-task/m-proto-socket-infrastructure-communication-rail/03+02_workspace_integration/CODE_REVIEW-cloud-G07.md` | REVIEW_API_REMOTE-2 |

## 최종 검증

```bash
git diff -- apps/client/pubspec.lock
ssh toki@toki-labs.com "zsh -lc 'cd /Users/toki/works/nomadcode-review-03workspace/apps/client && flutter test test/widget_test.dart'"
ssh toki@toki-labs.com "zsh -lc 'cd /Users/toki/works/nomadcode-review-03workspace/apps/client && flutter test'"
ssh toki@toki-labs.com "zsh -lc 'cd /Users/toki/works/nomadcode-review-03workspace/apps/client && flutter analyze --no-fatal-infos'"
```

Expected: no `pubspec.lock` diff; widget tests and full tests pass; analyzer has no warnings/errors from this task, and only the existing `mattermost_auth_service.dart` avoid_print infos may remain.

모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.
