Repository navigation
Releases: dartdavros/chatballs
Release list
Chatballs 1.19.1
Chatballs 1.19.1
Исправления оформления веб-виджета и выбора сотрудников.
Исправления
- Настроенная иконка шапки виджета отображается и в режиме «Только операторы».
Сохранены наследование иконки кнопки, собственная иконка, сброс и «Без иконки». - Сообщения сотрудников в виджете показывают фотографию конкретного автора,
включая подключённого коллегу. Фотографии сохраняются при восстановлении
истории; при отсутствии или ошибке загрузки используется буквенный аватар.
Доступ к фотографии ограничен сессией виджета и видимым клиенту сообщением. - Инициалы центрированы в поле ответственного, меню выбора и форме подключения
коллеги. Фотографии и индикаторы присутствия сохраняют своё положение. - Кнопки «Отмена» и «Подключить» в форме подключения коллеги имеют одинаковую
компактную высоту 30 px, в том числе при ошибке и повторной попытке.
Обновление
Новых миграций относительно 1.19.0 нет. Обновление выполняется штатным способом
через интерфейс или релизный compose.yaml с существующими override-файлами.
Проверки
Штатная браузерная проверка всех четырёх исправлений, снимки экрана и результаты
адресных тестов приведены в отчёте T-165.
В ней использовались реальный backend и существующие учётные записи без seed
и подмены API.
Перед выпуском повторно прошли 24 адресных backend-теста с --reuse-db,
8 frontend-тестов, Ruff и Django check. Production-образы backend и frontend
собраны штатными Dockerfile. Полный набор тестов не запускался.
Chatballs 1.19.0
Chatballs 1.19.0
Навыки агентов, оформленные ответы и работа организации без ИИ-агента.
Навыки и шаблоны
- Общая библиотека навыков организации: инструкции можно подключать к нескольким
агентам, редактировать и отключать независимо от остальных подключений. - Агент загружает подключённые навыки во время ответа. Доступ к данным и внешним
инструментам сохраняет действующие ограничения организации и агента. - Редактор шаблонов объединяет схему полей, HTML, CSS, текстовую версию,
примеры данных и серверный предпросмотр для виджета и текстовых каналов. - Готовая основа для работы с заказами доступна для явного выбора и редактирования;
она не создаёт интеграции и не устанавливается в организацию автоматически. - Подготовленный ответ сохраняется вместе с сообщением. Изменение или удаление
навыка не меняет уже отправленные ответы. Оформление доступно в рабочем чате,
проверочном чате агента и веб-виджете; другие каналы получают текстовую версию.
Режим «Только операторы»
- Организация может работать без автономных ответов ИИ. Существующие агенты,
знания, настройки и история сохраняются при переключении режима. - Подключение можно направить в группу сотрудников без назначения агента.
Веб-виджет принимает обращения и ответы сотрудников без фиктивной передачи ИИ. - Чек-лист начала работы учитывает выбранный режим. Возврат диалога ИИ доступен
только при подходящем режиме и настроенном агенте; помощь сотрудникам
настраивается отдельно. - Сохранена доставка оформленного ответа по почтовому продолжению веб-обращения:
отдельному ящику не требуется привязка к агенту исходного подключения.
Отключение ящика или исходного веб-подключения блокирует повторную отправку.
Обновление
Добавлены миграции ai.0028–0029, conversations.0047, identity.0048
и tenancy.0067. Они применяются штатным сервисом init. Существующие организации
сохраняют режим с ИИ-агентами; библиотека навыков изначально пуста.
Используйте штатное обновление из интерфейса или релизный compose.yaml
с существующими override-файлами. Перед обновлением сохраните резервную копию
базы данных, вложений и секретов. Откат следует выполнять с восстановлением
согласованной резервной копии, а не только заменой образов старой версией.
Проверки
Перед выпуском прошли production-сборки backend и frontend, Ruff, Django check,
проверка отсутствия недостающих миграций, 213 адресных backend-тестов,
131 frontend-тест и 15 проверок релизного Compose. Две условные проверки
пропущены штатно: исключение updater из запрета bind mounts и условная проверка
каталога переводов. Полный набор тестов не запускался.
Проверки функций и сравнение с утверждённым макетом описаны в отчётах
библиотеки,
редактора,
отображения ответов и
операторского режима.
Браузерная проверка отображения оформленных сообщений использовала разрешённые
владельцем контрольные записи в отдельной базе задачи. Она не подтверждает
сквозной сценарий с внешней моделью или системой заказов.
Chatballs 1.18.2
Chatballs 1.18.2
Патч с исправлениями рабочего чата, почтового продолжения и статистики поддержки.
Чат и почта
- При открытии и переключении диалогов последняя запись видна целиком над редактором. Убран лишний верхний отступ.
- Переключение ответа, письма и комментария, рост редактора и загрузка содержимого сохраняют положение ленты. Входящие сообщения не прерывают чтение истории, включая чтение рядом с концом; догрузка сохраняет видимую запись.
- Для продолжения веб-обращения по почте ящику больше не нужна привязка к агенту. Ответы из такого ящика возвращаются в исходное обращение; несвязанные письма без обычного маршрута не создают новый диалог.
- Выбранный почтовый ящик сохраняется при обновлении списка. Если он стал недоступен, отправка блокируется до явного выбора другого.
- Сохранены проверки организации, активности, конфигурации и ошибок подключения. Почта установки для приглашений и восстановления доступа остаётся отдельной.
Статистика и настройки
- В неполном периоде отчёт показывает наблюдаемые показатели и дату доступности данных. Неизвестные значения отделены от настоящего нуля; таблицы, графики и CSV/XLSX согласованы.
- Уточнены формы правил обработки и клиентских оценок, убраны неизменяемые псевдополя и служебные пояснения.
- При первом открытии анализа качества предлагаются критерии из утверждённого макета. Они сохраняются только по явному действию; сохранённый пустой набор остаётся пустым. Прошлые версии критериев сохраняются.
Проверки и обновление
Сборки, адресные тесты и браузерные проверки описаны в отчётах T-155 и T-156.
Для почты проверены штатные API, outbox и обработка связанных ответов. Внешняя отправка через реальные SMTP-подключения не подтверждена: доступные подключения имеют сетевые ошибки; успешные статусы не подставлялись.
Новых миграций базы данных нет. Обновление выполняется штатным механизмом через интерфейс или релизный compose.yaml с сохранением существующих override-файлов. Перед обновлением сохраните резервную копию данных и секретов.
Chatballs 1.18.1
Chatballs 1.18.1
Патч к версии 1.18.0 с исправлениями связи и настроек, обновлением логотипа
и боковой навигации по утверждённому макету.
Исправления
- Восстановлена авторизация WebSocket за шлюзом, завершающим HTTPS:
защищённые cookie учитываются с учётом настроенного доверенного прокси. - При первом открытии пустых настроек клиентских оценок предлагаются пять
подписей шкалы, текст запроса и задержка 10 минут на языке организации.
Опрос включается и настройки сохраняются только по действию администратора;
ранее настроенные значения сохраняются. - Исправлены проверка задержки запроса оценки, оформление формы оценок,
подсказки и формулировки в настройках правил обработки обращений. - Исправлено оформление списка участников диалога.
Логотип и навигация
- Единый логотип применяется в рабочем интерфейсе, на входе, при первом
запуске, в справке и значке вкладки. Пользовательский логотип организации
сохраняется. - Боковое меню, разделители, иконки и названия приведены к утверждённому
макету, включая светлую и тёмную темы, свёрнутое и мобильное меню. - Статистика доступна супервизору при наличии подконтрольных групп.
Пункт «Помощь» открывает центр справки в новой вкладке. - Иконка агента унифицирована в рабочем интерфейсе. Оформление и анимация
клиентского виджета сохранены.
Проверки и обновление
Проверки перед выпуском завершены и подтверждены владельцем. Сборки,
адресные тесты и браузерная проверка оболочки описаны в
отчёте проверки.
Патч не добавляет миграций базы данных. Обновление выполняется штатным
способом через интерфейс или релизный compose.yaml с существующими
override-файлами. Перед обновлением сохраните резервную копию базы,
вложений и секретов.
Chatballs 1.18.0
Chatballs 1.18.0
Релиз объединяет завершённые задачи расширения платформы: совместную работу
с обращениями, помощь оператору, отчёты и контроль качества.
Работа с обращениями
- ИИ готовит черновик ответа оператору с учётом публичной переписки.
Оператор проверяет предложение, редактирует его и отправляет сам. - Диалог можно передать доступному сотруднику с причиной и комментарием;
передачи и изменения участников отражаются в общей истории обращения. - К диалогу можно подключить коллег. Сообщения сохраняют авторство;
клиент получает уведомление о подключении специалиста. - Внутренние комментарии видят только сотрудники с доступом к обращению.
Они не уходят клиенту и не включаются в контекст клиентского ИИ-ответа. - Рабочий статус сотрудника выбирается в интерфейсе и учитывается при
назначении и передаче обращений.
Доступ и шаблоны
- Супервизор управляет обращениями и смотрит командные результаты в пределах
подконтрольных групп. Изменение области доступа применяется на сервере,
включая выгрузки и обновления в реальном времени. - Библиотека шаблонов поддерживает личные и общие шаблоны, категории, теги,
поиск и подстановку переменных. Ответ с незаполненными переменными
отправить нельзя.
Продолжение общения и качество
- В чате отображается состояние посетителя сайта. После его ухода сотрудник
может продолжить веб-обращение по электронной почте через подключённый
почтовый ящик и сохранённый адрес клиента. - Клиент может оценить завершённый диалог. Настройки запроса оценки,
клиентская форма и результат доступны в соответствующих интерфейсах. - ИИ-анализ качества использует настроенные критерии и сохраняет версии
результата. Результат можно просмотреть и скорректировать; ошибка анализа
отображается явно и не считается успешной оценкой. - Отчёты показывают обращения, нагрузку, рабочие статусы, клиентские оценки
и результаты анализа качества. Выгрузки CSV/XLSX учитывают фильтры и права. - Правила обработки автоматизируют подтверждения, напоминания и возврат
назначения. Настройки и журнал выполнения доступны в интерфейсе.
Изменение правила отменяет ожидающие действия его прежней версии.
Обновление
Перед обновлением сделайте резервную копию базы, вложений и секретов.
Используйте compose.yaml этого релиза вместе с существующими override-файлами
установки. Штатный сервис init применяет новые миграции до запуска backend
и фоновых обработчиков.
Миграции затрагивают помощь ИИ, обращения, сотрудников, клиентские оценки,
веб-чат и защиту данных организаций. Новые возможности не создают задним
числом историю событий, оценки или результаты анализа старых обращений.
Перенос каталогов, замена секретов и пересоздание учётных записей не требуются.
Не запускайте старую версию поверх обновлённой схемы без проверенного плана
отката и резервной копии.
Проверки перед выпуском
- Сборки рабочего интерфейса, веб-чата и production-образа backend прошли.
- Адресные проверки: 271 backend-тест, 121 frontend-тест, 6 тестов лоадера
и 15 тестов релизного Compose прошли. Исключение updater из запрета
bind mounts отмечено одним ожидаемым пропуском. - Ruff, Django system checks, соответствие моделей миграциям и отсутствие
неприменённых миграций проверены. Полный набор тестов не запускался. - Штатный dev-стек запущен с существующей базой и секретами. Проверены
readiness PostgreSQL/Redis, вход существующего демо-администратора и API
правил, журнала выполнения и доступа к отчётам. Seed и сброс доступа
не выполнялись. - Повторная браузерная проверка не завершена: средство автоматизации
остановило её, поскольку не смогло достоверно определить URL окна Chrome.
Chatballs 1.17.3
Chatballs 1.17.3
Диагностика работы агента
- В меню действий диалога добавлено «Скачать диагностику». Выгрузка
доступна владельцу и администратору, в том числе для закрытых диалогов. - JSON-файл можно передать разработчику или поддержке для разбора:
в нём переписка, снимки запросов и ответов модели, доступные инструменты
и причины их недоступности, вызовы API, HTTP-статусы, ошибки, длительность
и передача оператору. - Секреты и известные значения полей сайта удаляются, известные персональные
данные клиента маскируются. Выгрузка проверяет права и организацию на сервере
и фиксируется в журнале действий. - Ошибка сохранения диагностики не отменяет ответ клиенту.
История и ограничения
Полная трассировка сохраняется для новых ходов после обновления. Для старых
сообщений файл явно указывает отсутствие снимков. Настройки на момент хода
и текущие настройки экспортируются отдельно.
Хранятся последние 20 снимков на диалог. Экспорт включает до 2000 последних
сообщений; сокращённые данные помечаются. Вложения не входят в файл.
При удалении диалога его диагностика также удаляется.
Проверки
- Сборки internal-ui и backend-образа прошли.
- Целевые регрессионные проверки: 58 тестов пройдены, 1 пропущен.
- Окончательные проверки диагностики: 25 тестов пройдены, включая цепочку
списка заказов и деталей с внутренним id, ошибки API и провайдера,
удаление секретов, устойчивость записи и tenant/RLS-защиту PostgreSQL. - Ruff, Django system checks и проверка соответствия миграций прошли.
- На штатном локальном backend браузером проверены скачивание валидного JSON
администратором и отсутствие пункта у сотрудника. - GitHub CI проверил линтер и deployment CLI.
Обновление
Штатный сервис init применяет ai.0025_turndiagnostic и
tenancy.0043_turn_diagnostic_guards перед запуском обновлённых backend и worker.
Используйте релизный compose.yaml и существующие override-файлы установки.
Перенос данных и изменение учётных записей не требуются.
Описание формата: Диагностика диалога.
Chatballs 1.17.2
Chatballs 1.17.2
Исправления
- Встроенный веб-виджет делегирует доступ к микрофону своему iframe: браузер
может запросить разрешение на запись голосового сообщения на сайте
с другим адресом, чем установка Chatballs. - Доступ ограничен адресом iframe. Согласие пользователя по-прежнему требуется;
запрет микрофона политикой родительского сайта не обходится. Доступ к камере
не добавлен.
Серверные изменения из main
- Добавлены справочник причин и внутренний журнал передач диалога.
- Добавлены данные участия сотрудников в диалоге и лимит дополнительных
участников организации. Прежние назначения сохраняются; автоматическое
создание участников не выполняется. - Эти изменения подготавливают серверную модель; новые экраны управления
передачами и участниками в этот релиз не входят.
Проверки
Целевые регрессионные тесты публичного загрузчика выполнены перед выпуском.
Сборка и публикация образов выполняются штатным GitHub Actions workflow.
HTTPS-сценарий записи на стороннем сайте агентом не подтверждён; ранее
в штатном окружении задачи проверены запись с реального микрофона,
отправка через backend, воспроизведение и обработка отказов.
Обновление
Новые миграции: conversations.0030_transfer_data,
conversations.0031_participant_data,
identity.0042_organization_participant_limit,
tenancy.0041_transfer_guards, tenancy.0042_participant_guards.
Их применяет штатный сервис init. Перед обновлением следует сохранить
резервную копию данных и секретов. Используйте compose.yaml этого релиза
и существующие Compose override-файлы установки.
Chatballs 1.17.1
Chatballs 1.17.1
Исправления
- Настройки MCP-сервера и HTTP-запроса открываются без красной подсветки
и сообщений об ошибках для ещё не изменённых полей. - Ошибка изменённого поля появляется после выхода из него и исчезает
после исправления значения. Нетронутые поля остаются нейтральными. - При попытке сохранения проверяется вся форма. Некорректные данные
не сохраняются.
Проверки
Пройдены 21 тест затронутых сценариев и сборка внутреннего интерфейса.
Браузерная проверка не завершена: штатный локальный backend не отвечает,
а инструмент Windows Computer Use не смог достоверно определить URL.
Обновление
Изменения относительно 1.17.0 затрагивают только внутренний интерфейс.
Новых миграций базы данных нет.
Chatballs 1.17.0
Chatballs 1.17.0
Инструменты агента
- Агент получает сведения из систем организации через MCP-серверы и
HTTP-запросы. Внешние серверы настраиваются в интеграциях, инструменты
подключаются в карточке агента. - Агенту доступны инструменты с признаком «только чтение» или подтверждением
администратора. Подтверждение можно отозвать; инструмент отключается
у агентов. - В диалоге отображаются результат и длительность вызова инструмента.
- В карточке агента можно проверить ответ с тестовыми данными клиента и
посмотреть вызовы инструментов. - Исходящие запросы проверяют адреса и перенаправления, ограничивают время
ожидания, размер и тип ответа. Доступ к частной сети по умолчанию запрещён;
разрешить его может администратор установки. Сервисы самой установки и
loopback остаются недоступны.
Данные клиента в ответах AI
- Известные персональные данные клиента, почта, телефоны и длинные числа
заменяются псевдонимами перед отправкой модели. Настоящие значения
подставляются в ответ перед сохранением и отправкой клиенту. - Для своих полей сайта выбирается режим доступа AI: скрыть, передавать
с маскированием или открыто. Маскирование используется также в запросе
эмбеддингов и при работе с инструментами.
Веб-виджет и чат
- В настройках оформления можно сбросить загруженную иконку и выбрать
кнопку без иконки. - Текст согласия перед чатом поддерживает безопасное HTML-оформление;
сервер удаляет опасную разметку и ссылки. - Исправлена прокрутка к новым сообщениям. При чтении последних сообщений
лента следует за короткими и длинными репликами; собственный ответ
показывается и после чтения истории. Входящие сообщения не сбивают
позицию при чтении старой переписки.
Обновление
Схема базы меняется: ai/0024, conversations/0029, identity/0041,
integrations/0011_web_field_ai_access, 0011_integration_external_server,
0012–0014, tenancy/0040. Штатный сервис init применяет миграции
при запуске. Перед обновлением сохраните резервную копию данных и томов
секретов; используйте прежний набор Compose override-файлов.
Миграция настроек своих полей переносит прежний признак «Видит AI»:
скрытые поля остаются скрытыми; видимые строки, почта, телефоны и ссылки
получают маскирование, а числа, флаги, даты и списки — открытый доступ.
Поле без прежнего признака становится скрытым.
Chatballs 1.16.0
Chatballs 1.16.0
Настройка веб-виджета
- Настройки веб-подключения вынесены на отдельную страницу с разделами данных
сайта, формы перед чатом и оформления. - Через
Chatballs.setFieldsсайт передаёт поля контакта и дополнительные
данные. Они сохраняются в контакте, отображаются оператору, обновляются
в диалоге и учитываются в контексте ответа агента. - Форма перед чатом собирает обязательные поля, проверяет формат и использует
данные, заранее переданные сайтом. Правки клиента имеют приоритет. - Настраиваются цвета, положение и оформление кнопки, иконки и собственный CSS.
Загружаемые SVG проходят очистку. В справке описаны стабильные CSS-классы.
Установка и обновления
- Обновление из интерфейса сохраняет дополнительные Compose-файлы установки
в исходном порядке: стандартный override и произвольные файлы через-f. - Помощник обновления получает каталог установки и override-файлы только
на чтение. Пропавший или некорректный override останавливает обновление
до перезапуска сервисов. Файлы override не заменяются релизом. - Для сервера с существующим nginx Chatballs можно разместить на локальном
HTTP-порту, сохранив стандартный HTTPS-домен снаружи. Пример — в
docs/deployment-overrides.ru.md. - Dev-окружение задачи использует постоянный каталог PostgreSQL, Redis и media
вне worktree. Скрипт проверяет исходные секреты и не инициализирует
отсутствующую базу без явного-InitializeDatabase. - Демо-набор покрывает новые модели полей контакта и изображений виджета.
Их записи учитываются в реестре; удаление изображения освобождает место
в хранилище. Текущее оформление демо-виджета сохраняется.
Обновление
Схема базы меняется: webchat/0006, conversations/0027–0028,
tenancy/0038–0039. Штатный сервис init применяет миграции при запуске.
Перед обновлением сохраните резервную копию данных и томов секретов.
Если текущая версия ещё не поддерживает override, первый переход на 1.16.0
нужно выполнить вручную: скачать compose.yaml релиза и запустить его вместе
с используемыми override-файлами. После этого обновления из интерфейса
сохраняют эту конфигурацию.