fix: poToken 스크립트 node:20-alpine 크래시 수정 (jsdom 25로 다운그레이드)

jsdom 30은 require('undici') 시 webidl.util.markAsUncloneable is not a function
(node:20-alpine/undici 비호환)으로 import 단계에서 크래시 → 자식 프로세스 code 1.
jsdom 25.0.1은 undici 6를 사용해 해당 경로를 타지 않으며 node:20-alpine(musl)에서
npm ci 재현 빌드 + 실제 실행으로 poToken 생성·주입(204) 검증 완료.
또한 LavalinkManager 실패 로그가 마지막 줄(=Node.js 버전 푸터)만 남겨 원인을 가리던 문제를
전체 출력 꼬리를 남기도록 수정.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-08-28 23:32:34 +09:00
parent a090e853c2
commit adb3c59a85
3 changed files with 420 additions and 239 deletions

View File

@@ -60,9 +60,14 @@ export class LavalinkManager {
Logger.error(`[LavalinkManager] poToken 갱신 실행 실패: ${String(err)}`);
});
child.on("close", (code) => {
const msg = out.trim().split("\n").pop() ?? "";
if (code === 0) Logger.ready(`[LavalinkManager] ${msg || "poToken 주입 완료"}`);
else Logger.error(`[LavalinkManager] poToken 갱신 실패(code ${code}): ${msg}`);
const trimmed = out.trim();
if (code === 0) {
const last = trimmed.split("\n").pop() || "poToken 주입 완료";
Logger.ready(`[LavalinkManager] ${last}`);
} else {
// import/로드 단계 크래시는 마지막 줄이 "Node.js vXX"뿐이므로 전체 출력 꼬리를 남긴다
Logger.error(`[LavalinkManager] poToken 갱신 실패(code ${code}):\n${trimmed.slice(-1500)}`);
}
});
}