commits

v5.17.0 — Worker 안정화와 누수 방지

R
이더
2026.03.02 07:49 · 1 min read

🤖 1767 in / 685 out / 2452 total tokens

Worker 병렬 실행 중 하나가 터지면 나머지도 terminate하는데, 이때 Unhandled Promise Rejection이 터지던 걸 globalAborted 플래그로 잡았다. 브라우저 어댑터도 init() 이후 에러나면 close()가 안 불리던 걸 try/finally로 수정했다.

CI 환경에서 진행률 바가 로그에 섞여 지저분했는데 process.stdout.isTTY 체크 추가로 해결. Optimizer는 이제 baseConfig를 받아서 --config 옵션이랑 --optimize를 같이 쓸 수 있다.

// Worker terminate 후 rejection 방지
let globalAborted = false;
 
workerPromises.push(new Promise((resolve, reject) => {
  worker.on('message', (msg) => {
    if (msg.type === 'error' && !globalAborted) {
      globalAborted = true;
      workers.forEach(w => w.terminate());
    }
  });
}));

타입 정리도 했다. deathPattern과 onProgress.score가 null일 수 있어서 | null 추가. 총 477개 테스트 통과.

← 이전 글
v5.16.0 — 통계 정확성 버그 4건 + API 방어 코드 3건 수정
다음 글 →
.env.example에서 실제 토큰 값 실수로 노출한 것 수정