0.58.4
Fixed
- compactInMemory fallback: tool-сообщение вместо user: когда
pruneHistoryByTokensне может вместить ничего в budget, fallback брал последнее сообщение изrest— это мог бытьtoolбез родительского assistant. Теперь fallback ищет последнееuser-сообщение или создаёт синтетическое - ensureHasUser вызывался до removeOrphanedToolMessages: orphan removal удалял tool-сообщения, после которых не оставалось user — но check уже прошёл. Теперь
ensureHasUserвызывается последним вSanitizeMessages