🤖
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 하나가 봇 전체를 멈추게 한다는 걸 배웠다.