0.60.2

Fixed

  • Защита assistant+tool_calls от некорректного merge: consecutive assistant-сообщения с tool_calls больше не склеиваются в enforceRoleAlternation, что предотвращает protocol violation (#49)
  • Ремонт tool-пар после compact/prune: добавлена функция repairToolPairs — удаляет осиротевшие tool-результаты и неполные tool-группы после обрезки/сжатия истории (#46)
  • WS goroutine leak: HandleWebSocket теперь принимает context и завершается при ctx.Done, предотвращая утечку горутин при shutdown (#77)

Removed

  • Dead code в sanitize.go: удалены неиспользуемые allowedMsgKeys, NormalizeToolCallID, SanitizeToolCalls, messagesToOpenAIFormat (#48)