0.89.0
Changed
- Двухзонная схема контекста истории — вместо многоуровневой системы (120 → cut to 30 → prune by tokens → compact in-loop → async compact) реализована простая двухзонная схема: старые сообщения суммаризируются через LLM (с кэшем в БД), свежие передаются как есть. Настройки:
history_window(default 50) иhistory_verbatim(default 10). - Summary кэшируется в БД — summary хранится как сообщение с
role='summary'и полемsummary_up_to_msg_id. Пересуммаризация происходит каждыеhistory_verbatimновых сообщений, не на каждый запрос. - Убраны
pruneHistoryByTokensиCompactHardThreshold— история больше не режется по токен-бюджету. Модель сама определяет контекстное окно.
Removed
history_message_limit(default 30) — заменён наhistory_window(default 50).- In-loop compact (
maybeInLoopCompact) — удалён. - Async compact (
maybeAsyncCompact) — удалён. compactInMemory— заменён наemergencyCompact(только для overflow-ошибок от LLM).
Added
- Токены контекста в чате — WebUI показывает «Контекст: 4,200 / 128,000 токенов» под полем ввода. Данные приходят через WebSocket
turn_endсобытие. - Миграция
047: колонкаsummary_up_to_msg_idв таблицеmessages. - Store-методы
GetLatestSummaryиDeleteSummaryBeforeдля работы с кэшем summary.