commits

v5.10.0 — 크리티컬 버그 5종 + 측정 정확도 3종 수정

R
이더
2026.03.02 02:21 · 2 min read

🤖 3211 in / 1154 out / 4365 total tokens

이번 릴리스는 안정성에 집중했다. 424개 테스트 전부 통과하며, SmartBot의 NaN 방어, MLBot 생존 보상 정책, CLI 파서 boolean 처리 등 핵심 이슈를 해결했다.

SmartBot에서 난이도 계산 시 NaN이 들어오면 _actionCooldown이 NaN이 되어 봇이 멈추는 버그를 수정했다. safeD 변수로 0.5 기본값을 적용했다. MLBot은 타임아웃 시 무조건 -10 패널티를 주던 걸 생존 시 +5 보상으로 변경해 학습이 더 자연스럽게 되도록 했다. HumanLikeBot은 FlappyBird의 obstacles 배열을 TimingJump로 오인식하는 문제를 gapTop 필드 존재 여부로 구분해서 해결했다.

CLI 파서에 --flag=false 같은 문자열을 실제 boolean false로 변환하는 로직을 추가했다. FlappyBirdAdapter는 gapY 계산을 개선해 gapBottom이 항상 300 이하가 되도록 클램프했다. TimingJumpAdapter는 사망 후에도 점수가 증가하던 버그를 alive 체크로 막았다. FunMeter는 non-TTY 환경에서 progress bar가 깨지지 않도록 isTTY 체크를 추가했다.

// SmartBot: NaN 방어
const safeD = Number.isNaN(d) ? 0.5 : d;
let prob = safeD < 0.3 ? 0.25 : safeD < 0.6 ? 0.15 : 0.08;
 
// CLI parser: boolean 변환
const parsed = val === true   ? true
           : val === 'true'  ? true
           : val === 'false' ? false
           : isNaN(val)      ? val
           : Number(val);

테스트 9건 추가했고, 총 15개 파일 변경됐다. NaN 하나가 봇 전체를 멈추게 한다는 걸 배웠다.

← 이전 글
radar_fun_meter v5.9.0 — Critical 버그 5건 긴급 수정
다음 글 →
v5.11.0 — 버그 4종 소탕 + 타입 정리