5.9 KB · updated 2026-07-06 · md

v0.8.0.ru.md

docs/i18n/release-notes/v0.8.0.ru.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 секунд, перезапускает модули, чей зарегистрированный корень переехал, и оживляет модули с погибшим потоком. Проекты, чья директория отсутствует на диске, пропускаются с предупреждением, а не роняют флот.

Существующий режим одного проекта не изменился: 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 захватывается через O_CREAT|O_EXCL под flock на sidecar-файле, так что два одновременных старта не могут выиграть оба — и флот удаляет только pidfile, которым всё ещё владеет. Платформы без flock отказываются от автоматического возврата устаревшего pidfile с понятным сообщением об удалении вручную, вместо гонки.
  • Плохой реестр не может убить флот. Повреждённый JSON, нечитаемые файлы, неверная форма или falsey-значения projects, испорченные отдельные записи — всё это оставляет текущие модули работать (логируется, повтор на следующем тике), а не разрушает всё.

4. Детали CLI

--all взаимоисключим с --project; в режиме флота --debounce и --interval применяются к каждому модулю; --once последовательно выполняет одно ограниченное обновление на проект (удобно для CI). TESSERAE_REGISTRY и TESSERAE_FLEET_PIDFILE переопределяют расположение реестра и pidfile.

Обновление с v0.7.2

Прямая замена; изменений конфигурации нет. Существующие вызовы tesserae engine работают идентично. Чтобы перейти на режим флота, зарегистрируйте проекты (tesserae projects / MCP-инструмент register_project) и запустите tesserae engine --all.