<!-- task=m-performance-hotspot-optimization/01_ts_gateway_single_path plan=1 tag=REVIEW_REFACTOR -->

# Implementation Plan - REVIEW_REFACTOR

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

이 계획은 직전 코드리뷰의 Required 항목만 해결한다. `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채우는 것까지가 구현이다. 검증 명령을 실행하고 실제 출력/메모를 review stub에 기록한 뒤 active 파일을 그대로 둔 채 리뷰 준비를 보고한다. 구현 중 사용자 결정, 사용자 소유 외부 환경, 범위 충돌 없이는 진행할 수 없으면 review stub의 `사용자 리뷰 요청` 섹션에 근거를 채우고 멈춘다. 명령 재실행이나 산출물 수집으로 해결 가능한 증거 공백은 사용자 리뷰 요청이 아니다.

## 배경

직전 review(`code_review_cloud_G07_0.log`)에서 TypeScript 검증은 통과했지만, TCP/WS default gateway 테스트에 남은 주석이 여전히 `worker_threads gateway`와 off-thread cold-start를 설명했다. 이 subtask는 default receive gateway와 explicit worker path를 혼동하지 않게 정리하는 것이 핵심이므로, stale 주석을 고쳐야 완료 판정이 가능하다.

## 사용자 리뷰 요청 흐름

구현 중 차단은 active `CODE_REVIEW-*-G??.md`의 `사용자 리뷰 요청` 섹션에 기록한다. code-review가 그 요청을 검증하고 실제 `USER_REVIEW.md` 작성 여부를 결정한다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/performance-hotspot-optimization.md`
- Task ids:
  - `ts-gateway-single-path`: TypeScript gateway를 제품 기본 수신 경로로 유지하기 위한 단일 경로 조건을 정의한다.
- Completion mode: check-on-pass

## 범위 결정 근거

이번 follow-up은 직전 FAIL의 Required 주석 불일치만 다룬다. `Communicator`, gateway 구현, worker_threads explicit path, benchmark row, 다른 언어 구현은 변경하지 않는다. Roadmap target은 동일하며, source comment 정합성이 회복되면 같은 Milestone Task 완료 후보로 다시 평가한다.

## 빌드 등급

`local-G06`. 동작 변경 없이 테스트 주석의 의미 정합성을 회복하는 좁고 결정적인 수정이다. 리뷰도 source comment와 검증 출력 대조로 판단 가능하므로 `local-G06`으로 둔다.

## 구현 체크리스트

- [ ] `typescript/test/tcp.test.ts`의 default gateway 테스트 주석에서 `off-thread decode`, `worker_threads gateway`, worker pool cold-start 전제를 제거하고 `enableInboundGateway` 기본 receive gateway 의미에 맞게 정리한다.
- [ ] `typescript/test/ws.test.ts`의 default gateway 테스트 주석에서 `worker_threads gateway`, worker pool cold-start 전제를 제거하고 `enableInboundGateway` 기본 receive gateway 의미에 맞게 정리한다.
- [ ] `cd typescript && npm run check && npm test -- --run test/tcp.test.ts test/ws.test.ts`를 실행해 타입 검사와 변경된 transport 테스트가 통과하는지 확인한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## [REVIEW_REFACTOR-1] TCP default gateway 주석 정리

### 문제

`typescript/test/tcp.test.ts:245`의 테스트는 `comm.enableInboundGateway({ workers: 2 })`를 사용해 default receive gateway를 검증하지만, 주석은 아직 `gateway off-thread decode`와 `worker_threads gateway` lazy spawn/cold-start를 말한다. 이 표현은 default path가 worker_threads backend라는 오해를 다시 만든다.

### 해결 방법

TCP 테스트의 요청/timeout 설명을 default receive gateway 기준으로 바꾼다. 예를 들어 inline PacketBase decode 결과가 reorder/sink serialization을 거쳐 nonce 상관관계를 유지한다는 의미를 남기고, worker_threads cold-start 설명은 제거한다.

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

- [ ] `typescript/test/tcp.test.ts`: stale worker/off-thread/cold-start 주석 제거 및 default receive gateway 설명으로 교체.

### 테스트 작성

새 테스트는 만들지 않는다. 기존 TCP 테스트의 의미 설명만 정리한다.

### 중간 검증

```bash
cd typescript && npm run check && npm test -- --run test/tcp.test.ts
```

기대 결과: exit code 0.

## [REVIEW_REFACTOR-2] WS default gateway 주석 정리

### 문제

`typescript/test/ws.test.ts:245`의 테스트도 `comm.enableInboundGateway({ workers: 2 })`를 사용하지만, timeout 설명은 여전히 `worker_threads gateway` lazy spawn/cold-start를 전제로 한다. 직전 계획의 default path와 explicit worker path 분리 목적과 충돌한다.

### 해결 방법

WS 테스트의 stale worker_threads timeout 설명을 제거하고, 필요하면 transport/request concurrency timeout 여유 정도로만 설명한다. default receive gateway가 worker_threads backend를 기본으로 쓰지 않는다는 의미가 흐려지지 않게 한다.

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

- [ ] `typescript/test/ws.test.ts`: stale worker/cold-start 주석 제거 및 default receive gateway 설명으로 교체.

### 테스트 작성

새 테스트는 만들지 않는다. 기존 WS 테스트의 의미 설명만 정리한다.

### 중간 검증

```bash
cd typescript && npm run check && npm test -- --run test/ws.test.ts
```

기대 결과: exit code 0.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `typescript/test/tcp.test.ts` | REVIEW_REFACTOR-1 |
| `typescript/test/ws.test.ts` | REVIEW_REFACTOR-2 |

## 최종 검증

```bash
cd typescript && npm run check && npm test -- --run test/tcp.test.ts test/ws.test.ts
```

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