<!-- task=crosstest_coverage_gaps plan=1 tag=REVIEW_CROSSTEST-COVERAGE -->

# Review Follow-up Plan - REVIEW_CROSSTEST-COVERAGE

## 개요

date=2026-04-25
task=crosstest_coverage_gaps, plan=1, tag=REVIEW_CROSSTEST-COVERAGE

## 배경

plan=0 리뷰 결과 `FAIL` 판정이 나왔다. 구현 자체의 주요 범위는 맞지만, Kotlin self-cell 검증 신뢰도가 확보되지 않았다.

재검증 결과:

- `TcpTest.testTcpConcurrentRequests` 단독 실행 통과
- `WsTest.testWsConcurrentRequests` 단독 실행 통과
- `TcpTest.testTcpSendReceive` 단독 실행 통과
- `./gradlew test` 및 `--tests com.tokilabs.toki_socket.TcpTest`는 `:test` 단계에서 타임아웃 재현

## 작업 범위

### [REVIEW_CROSSTEST-COVERAGE-1] Kotlin 전체 test suite hang 원인 수정

**문제**

`kotlin && ./gradlew test`가 전체 suite에서 완료되지 않는다. 리뷰 중 jstack은 `TcpTest.testTcpSendReceive`의 `received.await()` 대기와 TCP accept/readLoop가 남아 있는 상태를 보였다.

**해결 방향**

- Kotlin TCP/WS 테스트의 서버 시작, 클라이언트 연결, listener 등록 순서를 재검토한다.
- 테스트 간 서버/클라이언트 상태가 남아 다음 테스트에 영향을 주지 않도록 정리 흐름을 통일한다.
- 기존 구현 코어를 불필요하게 바꾸지 말고, 우선 테스트 안정성 문제를 좁혀 수정한다.

**체크리스트**

- [ ] `./gradlew test --tests com.tokilabs.toki_socket.TcpTest`가 타임아웃 없이 통과한다.
- [ ] `./gradlew test`가 타임아웃 없이 통과한다.
- [ ] 기존 TCP/WS self-cell 시나리오 1-4 의미가 약화되지 않는다.

**검증**

```bash
cd kotlin && ./gradlew test --tests com.tokilabs.toki_socket.TcpTest
cd kotlin && ./gradlew test
```

### [REVIEW_CROSSTEST-COVERAGE-2] Kotlin concurrent 테스트 cleanup 보장

**문제**

`testTcpConcurrentRequests`와 `testWsConcurrentRequests`는 `awaitAll()` 뒤에만 `client.close()` / `server.stop()`을 호출한다. 요청 실패나 timeout이 발생하면 cleanup이 건너뛰어 후속 테스트가 hang 될 수 있다.

**해결 방향**

Before:

```kotlin
deferred.awaitAll()
client.close()
server.stop()
```

After:

```kotlin
try {
    deferred.awaitAll()
} finally {
    client.close()
    server.stop()
}
```

필요하면 기존 다른 Kotlin 테스트도 같은 패턴으로 정리하되, 이번 리뷰 이슈와 무관한 리팩터링은 하지 않는다.

**체크리스트**

- [ ] TCP concurrent 테스트가 실패해도 client/server cleanup이 실행된다.
- [ ] WS concurrent 테스트가 실패해도 client/server cleanup이 실행된다.
- [ ] cleanup 보강으로 assertion 의미가 바뀌지 않는다.

**검증**

```bash
cd kotlin && ./gradlew test --tests com.tokilabs.toki_socket.TcpTest.testTcpConcurrentRequests
cd kotlin && ./gradlew test --tests com.tokilabs.toki_socket.WsTest.testWsConcurrentRequests
```

## 최종 검증

```bash
cd kotlin && ./gradlew test
git diff --check
```

## 범위 밖

- Kotlin secure transport API 신규 구현
- Dart/Go/Python/TypeScript 구현 변경
- agent-ops 규칙/스킬 변경
