🤖
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개 테스트 통과.