2.4 KB · updated 2026-07-31 · md

v0.19.1.ko.md

docs/i18n/release-notes/v0.19.1.ko.md

Tesserae v0.19.1 — doctor가 살아 있는 데몬을 더 이상 의심하지 않습니다

<!-- translations:start -->

English · 中文 · 日本語 · Русский · Español · Français · Deutsch

<!-- translations:end -->

Released 2026-07-11 · PyPI · GitHub release · pip install --upgrade tesserae==0.19.1

버그 수정 하나뿐이지만, doctor --fix가 이 버그에 따라 동작할 수 있었기 때문에 패치 릴리스로 낼 가치가 있습니다.

버그

macOS에서 엔진의 pidfile 식별자는 ps -o lstart=를 사용하는데, 이 출력은 로케일 의존적입니다. 한국어 로케일 셸에서 시작된 데몬은 2026년 7월 11일…을 기록하고, 영어 로케일에서 실행되는 검사기는 같은 시각을 Sat Jul 11…로 읽습니다. 이 불일치가 PID 재사용으로 해석되어 tesserae doctor살아 있는 엔진 데몬을 오래된(stale) pidfile로 보고했고 — --fix는 실행 중인 프로세스 밑에서 pidfile을 삭제하겠다고 제안하여 두 번째 데몬이 뜰 수 있는 문을 열어 두었습니다.

수정

ps 호출을 LC_ALL=C로 고정하여, 이제부터는 작성자와 판독자가 시작 시각을 항상 동일하게 렌더링합니다. 이전 빌드가 작성한 pidfile을 위해 owner_is_alive에 단방향 구제 로직이 추가되었습니다: 시작 시각 렌더링이 서로 다를 때, 전체 커맨드라인이 정확히 일치하면 살아 있음(alive) 판정을 복원합니다. 이 구제는 오직 "alive" 판정을 넓히는 방향으로만 작동합니다 — 실제로 재활용된 PID는 두 식별 신호가 모두 다르기 때문에 여전히 stale로 읽힙니다.

한국어 로케일 머신에서 0.19.0 엔진 데몬을 시작한 지 몇 분 만에 실제로 발견되었으며, 양방향 모두 회귀 테스트되었습니다(로케일 불일치 → alive, 진짜 PID 재사용 → stale). 여기에 ps 호출이 로케일 고정 상태를 유지하는지 확인하는 소스 수준 가드도 추가되었습니다.