<!-- task=m-inbound-queue-ordering/02+01_receive_thread_model plan=4 tag=REVIEW_REFACTOR_4 -->

# Review Follow-up Plan - REVIEW_REFACTOR_4

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

이 계획은 `code_review_cloud_G08_3.log`의 Required 항목만 해결한다. 구현 후 `CODE_REVIEW-cloud-G08.md`의 구현 에이전트 소유 섹션에 실제 변경 내용, 검증 명령, stdout/stderr를 채운 뒤 active 파일을 그대로 두고 리뷰를 요청한다. `complete.log` 작성, archive 이동, 최종 판정은 code-review 전용이다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/inbound-queue-ordering.md`
- Task ids:
  - `thread-model`: handlers, request handlers, pending response map 접근의 thread-safety 기준을 언어별 구현 메모에 반영한다.
- Completion mode: check-on-pass

## 범위 결정 근거

- wire format, proto schema, nonce/responseNonce 의미는 변경하지 않는다.
- direct response dispatch 정책은 유지한다.
- gateway contract/docs/tests는 이 follow-up 범위가 아니며 `03+02_gateway_contract`로 넘긴다.
- 범위는 WS source 한계 처리, 실제 input-path 테스트, review 파일 완결성 회복으로 제한한다.

## 구현 체크리스트

- [ ] TypeScript Browser WS와 Kotlin WS에 unbounded promise/coroutine backlog가 생기지 않도록 bounded input gate 또는 명시적 source-limit 정책을 구현하고 문서화한다.
- [ ] backpressure 테스트를 `Communicator.enqueueInbound` 직접 호출이 아니라 실제 TCP/WS client read path 또는 fake source producer 대기 검증으로 교체한다.
- [ ] active `CODE_REVIEW-cloud-G08.md`에서 중복 placeholder 섹션과 `(output)` 잔재를 제거하고 실제 검증 결과만 남긴다.
- [ ] gateway 계약 문서 및 fake gateway reorder 테스트를 이 subtask 변경에서 제거하거나 sibling `03+02_gateway_contract` 작업으로 이동한다.
- [ ] 최종 검증으로 `bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh --all`을 실행한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_REFACTOR_4-1] Finish Source Backpressure Boundary

#### 문제

TCP/Dart 일부 경로는 개선됐지만 Browser WS/Kotlin WS는 callback 반환 뒤 내부 promise/coroutine staging에 쌓일 수 있다. 테스트도 아직 core queue 직접 호출 중심이라 실제 입력 경계 검증이 부족하다.

#### 해결 방법

Browser WS와 Kotlin WS는 source-level pause가 불가능한 한계를 문서화하고, 런타임 내부에 bounded input gate를 둔다. capacity 초과 시 어떤 방식으로 대기, 거부, disconnect 중 하나를 수행하는지 코드와 문서가 일치해야 한다.

테스트는 fake browser WebSocket/OkHttp-style source 또는 실제 client path를 통해, producer가 gate capacity 이후 더 진행하지 못하는 관찰 가능한 상태를 확인한다.

#### 중간 검증

```bash
cd dart && dart test
cd go && go test -count=1 ./...
cd kotlin && ./gradlew test
cd python && python3 -m pytest -q
cd typescript && npm run check && npm test
```

기대 결과: 모든 명령 exit code 0. 검증 출력은 실제 stdout/stderr만 기록한다.

## 최종 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh --all
```

기대 결과: exit code 0, matrix 결과 파일의 최종 결과값 PASS.
