# User Review Required - m-large-payload-followup-optimization/02_typescript_tcp_tail

## 요청 일시

2026-06-14

## 상태

USER_REVIEW

## 사유

- 유형: implementation-blocked
- 현재 리뷰 회차: 2
- 최종 판정: FAIL
- 요약: TypeScript TCP full parallel `clients=1024` hard gate가 반복 재실행에서 계속 timeout을 내며, 자동 후속 루프가 임의로 matrix/timeout 기준을 바꾸거나 transport/server 아키텍처 작업으로 범위를 확장할 수 없어 사용자 방향 결정이 필요하다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | FAIL | 필수 full stress 재실행에서 `clients=1024 Timeout 130`으로 verification trust가 깨져 후속 plan 작성. |
| `plan_cloud_G07_1.log` | `code_review_cloud_G07_1.log` | FAIL | check/unit은 PASS지만 full stress 재실행에서도 `clients=1024 Timeout 18`; 구현자는 send/write/response 결함이 아닌 event-loop starvation/harness 성격의 tail로 판단해 사용자 결정 요청. |

## 차단 근거

- 문제: `run_stress.sh --full --lang typescript --transport tcp --profile parallel`의 TypeScript TCP `parallel / clients=1024` row가 Timeout 0 hard gate를 만족하지 못한다.
- 현재 archive plan: `plan_cloud_G07_1.log`
- 현재 archive review: `code_review_cloud_G07_1.log`
- 검증 명령: `bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --full --lang typescript --transport tcp --profile parallel`
- 실제 출력: `agent-test/runs/20260614-055824-proto-socket-stress-full.md:43`에 `clients=1024`, requests `511982/512000`, `Timeout 18`, 결과 `FAIL`. 같은 리뷰 중 `cd typescript && npm run check`와 `cd typescript && npm test -- test/communicator.test.ts test/tcp.test.ts`는 exit 0.
- 차단 판단 근거: active review의 사용자 리뷰 요청은 구체적인 결정지와 재개 조건을 제시했고, 반복 실행/임시 계측/후보 수정 실패 근거를 남겼다. 현재 자동 루프가 선택할 수 있는 작은 코드 수정으로 Timeout 0을 보장한다는 근거가 없으며, 다음 선택지는 아키텍처 범위 확장 또는 harness/판정 기준 재정의처럼 사용자 결정이 필요한 범위다.

## 사용자 결정 필요

- [ ] 자동 follow-up plan/review를 계속 진행한다.
- [ ] 계획을 재작성한다.
- [ ] 테스트 환경, secret, 외부 서비스, SDK, 장비 조건을 준비한 뒤 재시도한다.
- [ ] 작업 범위를 줄이거나 보류/폐기한다.

세부 결정 후보:

- [ ] A: 라이브러리 결함으로 간주하고 server read 공정성, connection admission/pacing, off-thread 또는 multi-loop I/O 같은 아키텍처 작업을 별도 plan으로 분리한다.
- [ ] B: in-process 단일 event-loop 부하 harness 산물로 보고 client/server 프로세스 분리, 1024-conn tail 판정 기준 재정의 등 측정 조건을 재설계한다.
- [ ] C: 현재 gate를 known-flaky tail로 문서화하고 별도 추적 항목으로 둔다.

## 재개 조건

- 사용자가 A/B/C 또는 다른 명시 방향을 선택한다.
- A를 선택하면 새 아키텍처 변경 plan으로 재개한다.
- B를 선택하면 harness/판정 기준 재정의 plan으로 재개한다.
- C를 선택하면 문서화/추적 plan 또는 완료 보류 정리로 재개한다.

## 다음 실행 힌트

- 재개 대상 task path: `agent-task/m-large-payload-followup-optimization/02_typescript_tcp_tail/`
- 참고 증거: `agent-test/runs/20260614-043353-proto-socket-stress-full.md`, `agent-test/runs/20260614-055824-proto-socket-stress-full.md`, `code_review_cloud_G07_1.log`

## 종료 규칙

- 사용자가 이 stop state를 완료/PASS로 해소하면 `USER_REVIEW.md`를 해소 상태로 갱신하고, `agent-ops/skills/common/code-review/templates/complete-log-template.md` 기준 `complete.log`를 작성한 뒤 task directory를 archive로 이동한다.
- 새 구현이 필요하면 `plan` 스킬이 `USER_REVIEW.md`를 `user_review_N.log`로 아카이브한 뒤 새 `PLAN-*-G??.md` / `CODE_REVIEW-*-G??.md`를 작성한다.
