v0.12.2.ru.md
docs/i18n/release-notes/v0.12.2.ru.md
Tesserae v0.12.2 — исчерпание дескрипторов файлов демоном + учёт свежести в ask
<!-- translations:start -->
English · 한국어 · 中文 · 日本語 · Español · Français · Deutsch
<!-- translations:end -->
Выпущено 2026-06-30 · PyPI · GitHub release · pip install --upgrade tesserae==0.12.2
Два исправления ошибок. Совместимо с v0.12.x.
tesserae engine больше не исчерпывает дескрипторы файлов
Долгоживущий демон (особенно в режиме fleet, наблюдающий за многими проектами) мог спираль в шторм Too many open files / unable to open database file, который каскадировал в неудачные компиляции, нечитаемый реестр fleet и ошибки временных файлов codex — всё разделяло таблицу дескрипторов файлов процесса.
Причина: сборщик сессий хранил каждый транскрипт проекта в своём известном наборе и открывал каждый .jsonl (плюс соединение sqlite) на каждом тике только чтобы проверить наличие новых байтов. С десятками тысяч завершённых транскриптов это десятки тысяч открытий за тик — быстрее, чем ОС их освобождает. Теперь дешёвый stat() полностью пропускает открытие, когда в транскрипте нет новых байтов, исчезшие файлы удаляются из отслеживаемого набора, а усечённый/повёрнутый файл перечитывается с начала. В установившемся состоянии ~0 открытий для неиспользуемого большинства; читаются только растущие транскрипты.
tesserae ask учитывает свежесть
Федерализованный ask о недавней работе мог вывести на верх узлы синтеза сессии, которым неделю (например, названные "Review ALL improvements that were just made") — они являются самым сильным семантическим совпадением для «недавней работы», но самым старым контентом, и чистый релевантный рейтинг не имел сигнала свежести.
Федерализованный recall теперь смешивает релевантность узла с оценкой свежести, так что более новые узлы всплывают: релевантность всё ещё доминирует (скромное значение по умолчанию 0.25), неозначенный узел рассматривается как нейтральный, а не свежий, и узел с датой только в заголовке (2026-05-18 — …) привязан к этой дате. Настройте или отключите с помощью tesserae ask --recency-weight <0..1> (0 = чистая релевантность, предыдущее поведение). Скомпилированные и экспортированные артефакты не затронуты и остаются байт-детерминированными.
Обновление с v0.12.x
Совместимо. Если вы запускаете tesserae engine для многих проектов, это рекомендуемое обновление.