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.