v0.20.2.ru.md
docs/i18n/release-notes/v0.20.2.ru.md
Tesserae v0.20.2 — теперь модель читает всё
<!-- translations:start -->
English · 한국어 · 中文 · 日本語 · Español · Français · Deutsch
<!-- translations:end -->
Выпущено 2026-07-14 · PyPI · GitHub release · pip install --upgrade tesserae==0.20.2
Вторая половина исправления для долгих сессий. v0.20.1 убрал лимит в 300 оборотов при импорте, чтобы полная история разговора доходила до хранилища; этот релиз исправляет сторону потребления, так что каждый LLM, читающий эту историю, действительно читает её всю — независимо от общей длины.
Что оставалось не так после 0.20.1
- Выдержки из сессий усекались под размер: за горизонтом в 24,000 символов на проект сводки выбрасывали целые сессии с пометкой «…more sessions omitted for length» — модель их никогда не видела.
- Один неограниченный промпт: нарратив сводки и майнинг агентских решений отправляли всё одним LLM-вызовом — на загруженном окне он был больше любого контекстного окна.
max_turns_per_chunkсчитал обороты, а не размер: тридцать оборотов могут нести один 500KB дамп инструмента; чанки извлечения графа сессий всё ещё могли переполняться.
Что изменилось
Новый tesserae/llm_chunking.py: детерминированный упаковщик блоков и map-reduce-раннер, рассчитанный на консервативный бюджет контекста (48,000 символов ≈ 12k токенов; настраивается через TESSERAE_LLM_CHUNK_CHARS). Каждый LLM-потребитель истории сессий теперь итерирует чанки размером с бюджет — map-вызовы PART i/N, затем иерархическое слияние — при этом маркеры усечения исчезли, один слишком большой оборот разбивается по строкам между чанками вместо переполнения, а маленькие входы сохраняют точный старый путь одного вызова.
--max-turns остаётся только защитой памяти при сканировании — он больше не ограничивает то, что читает модель.
Проверено прямо по требованию: 600KB истории сессий → 82 ограниченных вызова (максимальный промпт 7,525 символов при тестовом бюджете 8,000 символов) → один слитый нарратив, в котором учтена каждая сессия. Приёмочный тест закладывает решение в последнюю сессию за старым горизонтом усечения — на коде до исправления он падает.