0.129.1

Fixed

  • tool_call_history: записи не сохранялись в БД — роли tool_call_history и memory_context отсутствовали в CHECK-констрейнте таблицы messages. INSERT молча падал на PostgreSQL (и потенциально на свежем SQLite). Миграция 069 добавляет обе роли. Инструмент tool_log всегда возвращал «No tool call history found».
  • AddMessage: ошибки записи глотались — 10+ вызовов _, _ = store.AddMessage(...) и _ = store.AsyncAddMessage(...) игнорировали ошибки БД. Заменено на логирование через slog.Error.
  • email_send: тело письма терялось — после отправки письма его содержание не сохранялось нигде. Теперь письмо записывается в workspace/output/sent/<timestamp>-<to>-<subject>.html, а в tool-результате указан путь к файлу.
  • chat_history: не возвращал tool-вызовы — инструмент искал role:"tool" (которая есть только у ask_user), но не запрашивал tool_call_history. Добавлена роль tool_call_history в запрос при include_tools: true.
  • tool_preview: некорректный тип to — preview для email_send использовал type assertion string для поля to, которое является array. Обработаны оба типа.
  • FastTrimToolResults: обрезка по символам вместо токенов — переписана на токен-бюджет через tokens.Count(). Старые tool-результаты обрезаются до 200 токенов, последние 4 защищены от усечения.
  • Асинхронный pruning tool-результатов — после каждого хода горутина помечает старые (>2 ходов, >10K токенов) tool-результаты в БД как compacted: [Tool result compacted. Tool: exec, CallID: call_123]. LLM видит маркер и знает, что инструмент был вызван, даже если результат обрезан.
  • Truncation tool-результатов: полный вывод в файл — при обрезке результата (>50KB) полный текст сохраняется в workspace/output/tool_results/<tool>_<callID>.txt. LLM получает превью + путь к файлу и может перечитать полный вывод через read_file.

Changed

  • exec: полная поддержка Windows — вместо хардкода sh -c используется cmd.exe /c на Windows. Описание инструмента динамически подстраивается под платформу: OS, shell, workspace, лимиты обрезки, platform-specific chaining инструкции (&&/&).
  • security: BuildMinimalEnv для Windows — PATH, SYSTEMROOT, USERPROFILE, TMP/TEMP передаются из системы; добавлены Windows-переменные в allowedEnvVars (SYSTEMROOT, COMSPEC, PATHEXT, WINDIR).