0.8.13 29 апреля 2026 г.

Ясность сообщений в очереди, восстановление вызовов инструментов DeepSeek, переопределения рассуждений автоматизации

Возможности Действия запросов автоматизации могут задавать уровень рассуждений для каждого действия — действия запросов в automations.json теперь принимают thinkingLevel , соответствуя существующим…

Возможности

  • Действия запросов автоматизации могут задавать уровень рассуждений для каждого действия — действия запросов в automations.json теперь принимают thinkingLevel, соответствуя существующим переопределениям llmConnection и model для каждого действия. Значение проверяется в общей схеме, передаётся через отложенные запросы и путь RPC «Запустить тест», и передаётся в создаваемые сессии автоматизации с теми же семантиками fallback по умолчанию из workspace, что и ручные сессии. Устаревшие значения "think" мигрируются вместо нарушения анализа конфигурации. (3f8a7d13)
  • Строки действий автоматизации теперь отображают значки выбора модели — страница Automation Info отображает настроенные переопределения подключения, модели и уровня рассуждений в виде компактных значков под каждым действием запроса, чтобы пользователи могли проверять, какая автоматизация будет запущена на какой модели, не открывая automations.json. (78d08edd)

Улучшения

  • Сообщения в очереди посередине потока подтверждаются видимо без светящихся пузырей — когда пользователь отправляет сообщение, пока агент уже отвечает, оптимистичный пузырь пользователя теперь сохраняет встроенный пульсирующий индикатор Queued не менее 2,5 секунд, включая сессии Pi/DeepSeek/OpenAI-совместимые, чей бэкенд подтверждает почти мгновенно. Пузыри ожидающих пользователей больше не используют глобальный оверлей shimmer; значок очереди — единственное временное визуальное состояние. Финальная реализация сохраняет стабильный React-ключ оптимистичного состояния, чтобы таймер не сбрасывался каноническим id сообщения сервера. Исправлено . (eb81086e, 0d9ca6b5, 083e6f90, 67353f42, fee4c2d1)
  • Сбои вызовов инструментов OpenAI-совместимых теперь дают действующую диагностику — объединённый сетевой перехватчик проверяет исходящие тела Chat Completions и Responses API перед отправкой к провайдеру, обогащает непонятные ответы с пустым телом 400 очищенными сводками запросов, и сообщает о нарушенных историях с структурированными деталями ошибок вместо того, чтобы оставлять сессии застрявшими на сообщениях, специфичных для провайдера. Частично решает . (ab3c8eac)
  • Разработка перехватчика теперь использует живой исходный код в запусках монорепозитория — непакетированные подпроцессы Pi предзагружают packages/shared/src/unified-network-interceptor.ts напрямую вместо устаревшего собранного пакета, так что изменения в перехватчике вступают в силу после перезапуска подпроцесса во время разработки. Новый переключатель CRAFT_DEBUG_SSE_RAW=1 может дампить сырые строки OpenAI-совместимого SSE в interceptor.log при диагностике поведения ретрансляции. (13d13635)

Исправления

  • Вызовы инструментов DeepSeek и OpenAI-совместимых больше не загрязняют историю воспроизведения дубликатами или отсутствующими id — пересборка потока теперь удаляет дубликаты ретрансляций, повторяющие tool_call.id, обрабатывает провайдеров, опускающих tc.index в дельтах аргументов, и объединяет двухфазный поток DeepSeek id/name + сдвинутых аргументов в одно логическое событие вызова инструмента. Воспроизведение Responses API теперь синтезирует детерминированные отсутствующие значения call_id и удаляет осиротевшие выходы. Уже загрязнённые истории очищаются при воспроизведении путём удаления вызовов инструментов с пустыми id и осиротевших результатов, так что затронутые сессии могут восстановиться без ручных правок JSONL. Исправлено , и . (ab3c8eac, 13d13635)
  • Очередные сообщения остаются в чате при молчаливых перенаправлениях — рендерер теперь различает явные остановки пользователя с молчаливыми перенаправлениями бэкенда: пузыри очереди восстанавливаются в поле ввода только при намеренной остановке, тогда как фоновые перенаправления оставляют пузырь в чате для повторного воспроизведения бэкендом. sendMessage теперь подтверждает сохранение с помощью { accepted, messageId }, сбои повторного воспроизведения очереди вызывают типизированную ошибку повтора, и логы границ очереди упрощают триаж поддержки. Исправлено . (eb81086e)
  • Мини-завершения Pi/Codex избегают неподдерживаемых вариантов codex-mini при аутентификации через ChatGPT-аккаунт — генерация заголовков, резюмирование и мини-завершения теперь фильтруют всю семью codex-mini на этапе выбора для подключений openai-codex с аутентификацией через ChatGPT-аккаунт, предотвращая ошибку «не поддерживается при использовании Codex с аккаунтом ChatGPT» до попытки запроса. (95618531)
  • Встроенные инструменты Pi безопасно принимают метаданные AIKraft UI — строгие схемы инструментов Pi теперь разрешают корневые поля _displayName и _intent AIKraft на границе адаптера, затем удаляют их перед вызовом реализации встроенного инструмента. Это сохраняет более богатые метаданные вызова инструмента в UI без нарушения проверки схемы для встроенных инструментов. (16d103d2)
  • Вложения очищаются после отправки — композер теперь очищает загруженные вложения после отправки сообщения вместо того, чтобы оставлять ранее прикреплённые файлы готовыми к случайной повторной отправке. (70f9a80a)

Несовместимые изменения

  • Нет.

← Все версии