0.8.11 22 апреля 2026 г.

Мессенджеры, запросы, чат и исправления LLM

Исправления WhatsApp selfChatMode теперь симметрично блокирует входящие сообщения — classifyInbound ранее фильтровал только исходящие ( fromMe=true ) сообщения, поэтому личное сообщение или сообщение…

Исправления

  • WhatsApp selfChatMode теперь симметрично блокирует входящие сообщенияclassifyInbound ранее фильтровал только исходящие (fromMe=true) сообщения, поэтому личное сообщение или сообщение в группме всё равно маршрутизировалось к привязанной сессии даже при включённом режиме самочата — агент мог отвечать от имени пользователя вне самочатов. Теперь входящие из не-самочатов отбрасываются при включённом selfChatMode, с новой причиной пропуска non_self_chat_inbound для ясности логов. Обратная совместимость сохранена: при selfChatMode=false входящие от контактов по-прежнему обрабатываются как и раньше.

Улучшения

  • Вспомогательные функции чата вынесены в отдельный модуль и покрыты тестамиformatFollowUpSection, truncateForChipTooltip и normalizeFollowUpsMarkdown перенесены из ChatDisplay.tsx в sibling-модуль ChatDisplay.follow-ups.ts с 13 целенаправленными тестами, охватывающими регрессию цитаты более 1000 символов, каноническую форму сообщения, нумерацию нескольких ответов, парсер обратного преобразования и поведение подсказки чипа. Добавлен узкий субпуть экспорта @craft-agent/ui/annotations/follow-up-state, чтобы тесты могли импортировать чистые функции без подключения pdfjs и специфичных для Vite импортов через UI-баррель.
  • Потребитель потоковой передачи SDK queryLlm вынесен для тестируемости — Перемещён в claude-llm-query.ts с 12 новыми тестами, охватывающими пути ошибок (выброшенных и возвращаемых), структурированный вывод и блок отображения call_llm.
  • Предкоммитный типчек теперь автоматически обнаруживает TS-workspacescripts/typecheck-staged.sh ранее использовал жёстко закодированный allowlist из 8 workspace, поэтому изменения в новых или переименованных workspace (messaging-*, apps/cli, apps/webui и т.д.) молча пропускали хук. Теперь он обходит apps/<X>/ и packages/<X>/ и выполняет типчек любого workspace с tsconfig.json, предпочитая bun run typecheck, если он определён. Выявлено и исправлено четыре существующие ошибки типизации, которые старый allowlist скрывал (apps/cli типизация вебхуков, apps/marketing обновление lib до ES2023 + переименование card.codeHtml + защита индексированного доступа, apps/webui выравнивание tsconfig с Electron).
  • electron:dev теперь создаёт воркер WhatsApp при запускеscripts/electron-dev.ts создавал MCP-серверы и сервер агента Pi, но не воркер WhatsApp, поэтому свежие checkout сталкивались с MODULE_NOT_FOUND на dist/worker.cjs при первой попытке подключить WhatsApp — запутанно, потому что адаптер Electron сообщает об этом как о завершении воркера, а не ошибке отсутствующей сборки. Настройка разработки теперь вызывает канонический scripts/build-wa-worker.ts (~70 мс), чтобы воркер оставался в синхроне при каждом запуске.

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

  • Нет. Никаких изменений схем, IPC или протоколов.

← Все версии