4.4 KB · updated 2026-07-06 · md

v0.8.0.ko.md

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

Tesserae v0.8.0 — tesserae engine --all: 모든 프로젝트를 위한 하나의 엔진

<!-- translations:start -->

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

<!-- translations:end -->

릴리스 일자 2026-06-13 · PyPI · GitHub release · pip install --upgrade tesserae==0.8.0

지금까지 리프레시 엔진은 프로젝트당 하나의 프로세스였습니다: N개의 등록된 프로젝트는 시작하고, 중지하고, 기억해야 할 N개의 데몬을 의미했습니다. v0.8.0은 플릿 모드를 추가합니다 — ~/.tesserae/registry.json에 등록된 모든 프로젝트를 신선하게 유지하는 단일 프로세스입니다.

tesserae engine --all

1. 하나의 프로세스, 등록된 모든 프로젝트

tesserae engine --all은 레지스트리 항목마다 프로젝트별 엔진 유닛 하나를 감독하며, 각 유닛은 자체 워처와 디바운스된 재컴파일 루프를 가집니다. 프로젝트 등록/해제는 재시작 없이 반영됩니다 — 플릿은 10초마다 레지스트리와 조정(reconcile)하고, 등록된 루트가 이동한 유닛을 재시작하며, 스레드가 죽은 유닛을 되살립니다. 디스크에 디렉터리가 없는 프로젝트는 플릿을 실패시키는 대신 경고와 함께 건너뜁니다.

기존 단일 프로젝트 모드는 변경되지 않았습니다: tesserae engine --project X는 이전과 정확히 동일하게 동작하며, 이미 독립 엔진이 실행 중인 프로젝트를 플릿이 이중 소유하는 것을 거부합니다.

2. 플릿 전체 컴파일 스로틀링

서로 다른 프로젝트의 동시 컴파일은 동일한 LLM CLI 계정과 속도 제한을 공유합니다. 플릿은 공유 세마포어로 이를 직렬화합니다 — --compile-slots N(기본 1)이 플릿 전체에서 동시에 실행되는 컴파일 수를 제한합니다. 이는 v0.7.2의 프로젝트별 컴파일 잠금과 조화를 이룹니다: flock은 외부 컴파일을 막고, 세마포어는 내부 컴파일을 스케줄링합니다.

3. 견고한 라이프사이클, 혹독한 리뷰

플릿은 병합 전 세 차례의 적대적 리뷰(Codex, xhigh 추론 강도)를 거쳤습니다. 발견된 모든 사항이 수정되었고 테스트로 커버됩니다:

  • 셧다운은 컴파일을 결코 버리지 않습니다. 유닛 스레드는 non-daemon이며, 중지 신호 전파는 — 주기적인 경고 로그와 함께 — 각 유닛이 현재 파이프라인을 마칠 때까지 기다립니다. 조정(reconcile)이 크래시하는 경우를 포함한 모든 종료 경로에서 그렇습니다.
  • 경쟁 없는 pidfile. 전역 ~/.tesserae/engine.pid는 사이드카 flock 아래에서 O_CREAT|O_EXCL로 획득되므로 두 개의 동시 시작이 모두 이길 수 없습니다 — 그리고 플릿은 여전히 자신이 소유한 pidfile만 제거합니다. flock이 없는 플랫폼은 경쟁하는 대신 명확한 수동 제거 메시지와 함께 자동 회수를 거부합니다.
  • 잘못된 레지스트리가 플릿을 죽일 수 없습니다. 손상된 JSON, 읽을 수 없는 파일, 형태가 잘못되었거나 falsey한 projects 값, 잘못된 개별 항목 모두 전체를 무너뜨리는 대신 현재 유닛을 계속 실행시킵니다(로그 후 다음 틱에 재시도).

4. CLI 세부 사항

--all--project와 상호 배타적입니다; 플릿 모드에서 --debounce--interval은 모든 유닛에 적용됩니다; --once는 프로젝트마다 한 번의 제한된 리프레시를 순차 실행합니다(CI 친화적). TESSERAE_REGISTRYTESSERAE_FLEET_PIDFILE로 레지스트리와 pidfile 위치를 재정의할 수 있습니다.

v0.7.2에서 업그레이드

그대로 교체하면 됩니다. 설정 변경이 없습니다. 기존 tesserae engine 호출은 동일하게 동작합니다. 플릿 모드를 도입하려면 프로젝트를 등록하고(tesserae projects / MCP register_project 도구) tesserae engine --all을 실행하세요.