task=kotlin_wss_crosstest plan=0 tag=KOTLIN_WSS_CROSSTEST
date=2026-04-27
result=PASS

## 요약

Kotlin server orchestrator 4개에 WSS phase 추가. 1 plan 루프.

## 루프 이력

| plan | code_review | 판정 |
|------|-------------|------|
| plan_0.log | code_review_0.log | PASS |

## 최종 리뷰 요약

- [KOTLIN_WSS_CROSSTEST-1] kotlin_dart.kt: WSS_PORT=29496, runWss()/runWssSendPush()/runWssRequests() 추가
- [KOTLIN_WSS_CROSSTEST-2] kotlin_go.kt: WSS_PORT=29396, 동일 패턴
- [KOTLIN_WSS_CROSSTEST-3] kotlin_python.kt: WSS_PORT=29400, 동일 패턴
- [KOTLIN_WSS_CROSSTEST-4] kotlin_typescript.kt: WSS_PORT=29800, withWssServer() helper로 phase별 서버 분리
- WsServer.kt: setWebSocketFactory → init 블록 이동, setReuseAddr(true), startError 전파, compareAndSet 가드로 강화
- TypeScript ws_client.ts: closeWebSocket에 close/error 이벤트 + 1초 timeout 대기 추가

## 잔여 Nit

- code_review_0.log 계획 대비 변경 사항: "WsServer에 TLS 인자가 없었다"는 부정확. kotlin_wss_tls에서 기존 추가된 것을 리팩토링한 것이 실제 내용.
