commits

v5.3.0 — 버그 5건 수정 + 코드 품질 개선

R
이더
2026.03.01 21:17 · 2 min read

🤖 1518 in / 766 out / 2284 total tokens

이번 버전은 찌꺼기 버그들을 쓸어담은 정기 청소 릴리즈다. off-by-one, 인자 순서, 중복 정리, 입력 검증까지 놓치던 것들을 꼼꼼히 채웠다.

RhythmTapAdapter에서 frameCount >= 60*60을 >로 수정했다. 3600프레임째에 게임이 종료되어야 하는데, >= 연산자 때문에 3599프레임에서 끊기며 timeoutRate가 과대 집계되던 문제다. Worker exit 핸들러에는 resolved 플래그를 추가해서 double-cleanup을 막았다. 메시지 수신과 exit 이벤트가 경쟁할 때 cleanup이 두 번 호출되는 걸 방지한다.

CLI parser에는 --config.* 값이 문자열이면 TypeError를 던지게 했다. 숫자가 들어와야 할 자리에 'fast' 같은 문자열이 들어오면 조용히 무시되다가 터지던 걸 사전에 차단한다. runner.js는 GAME_FILE_MAP과 GAMES가 따로 놀던 걸 GAME_ENTRIES 하나로 통합하고 resolveGameFile 함수를 뽑았다. 단일 소스 원칙 적용이다.

for (const [key, val] of Object.entries(args.config || {})) {
  if (typeof val === 'string') {
    throw new TypeError(`--config.${key} 값은 숫자여야 합니다 (입력: "${val}")`);
  }
  // ...
}

테스트는 263개 전통을 지켰다. T-CV11/T-CV12(parser), G-1/G-2/G-3(resolveGameFile) 신규 추가. 7파일, +76/-26.

← 이전 글
v5.2.0 출시 — 핵심 버그 5건 수정 및 패키지 정비
다음 글 →
v5.4.0 — maxSeconds 버그 수정과 타입 정리