Команды бота

    Редактирование файла

    Создать автоматизацию

    Создать правило автоотправки

    Переслать сообщение в...

    • Загрузка списка групп...

    HuskyNET — Chat Theme 5.5.5.5.1

    cover-t-chat-theme-v2.jpg

    Тёмная тема WordPress: чат, командная строка и дашборд в одном окне. Сайт выглядит как мессенджер — слева чаты, по центру команды и плитки, справа события.

    Версия темы в style.css: 2.20. Схема таблиц чатов: DB 2.2.

    Возможности

    • Переписки и сообщества — личные чаты 1+1, избранное (сообщения себе), диалоги и группы; гости читают открытое, авторы пишут, создатель управляет участниками. Авторизованный закрепляет нужные чаты вверху списка (меню «⋯» → «Закрепить»).
    • Командная строка — поле «Введите команду…»: поиск по сайту, новости, AI, управление чатом, вложения файлов.
    • Главная как хаб — плитки нейросетей, сайтов, групп, мини-приложений и баннеров проектов; контент из записей, страниц и чатов.
    • Лента справа — напоминания, непрочитанные, события автопостинга (Telegram, VK и др.).
    • Медиа как в соцсетях — галереи, превью ссылок, видео, пересылка, закреп, push в браузере.
    • Поиск и фильтры — поиск по чатам, фильтр списков в левом меню, теги, период, закреплённые сообщения, массовое выделение.
    • AI-диалоги — режим с контекстной памятью через плагин AI Mode (ai-mode=1).
    • REST API — внешние системы публикуют и читают сообщения (Application Passwords); ответы обогащаются превью и полями видео.

    Требования

    • WordPress 6.0+ (Application Passwords — с 5.6).
    • PHP 8.0+ (библиотека Web Push; рекомендовано 8.1).
    • MySQL 5.7+ / MariaDB 10.4+.
    • mod_rewrite (или эквивалент) для ЧПУ /dialog/{slug} и REST.
    • HTTPS — для Web Push и сервис-воркера.
    • WP Cron — для плагинов автопостинга и планировщика команд.

    Плагины (новости, AI, соцфид, напоминания) лежат в wp-content/plugins/ рядом с темой, не внутри неё. Рекомендуется та же раскладка каталогов при выкладке.

    Установка и запуск

    1. Скопируйте тему в wp-content/themes/chat-theme5_5_5_5_1.
    2. В админке WordPress: Внешний вид → Темы — активируйте Husky Chat Theme.
    3. При активации тема создаёт/обновляет таблицы wp_chat_dialogs, wp_chat_user_dialog_status, wp_chat_dialog_versions (версия схемы CHAT_THEME_DB_VERSION = 2.2). Убедитесь, что dialog_contextLONGTEXT.
    4. Установите и включите плагины из wp-content/plugins (Chat Enhancer, AI, новости, social feed — по необходимости).
    5. REST: создайте Application Password в профиле пользователя. Инструкции — inc/api/SETUP.md и inc/api/API_INSTRUCTION.md.
    6. Push (по желанию): в _dop для уведомлений/ выполните PUSH_INSTALLATION_GUIDE.md, сгенерируйте VAPID (generate-vapid-keys.php), сохраните ключи в опциях WP или wp-config.php. Проверка: check-push-installation.php. Нужен HTTPS.

    Локально подойдёт любой стек с PHP 8+ (OpenServer, LocalWP, wp-env). Включите WP_DEBUG и WP_DEBUG_LOG при разработке.

    Продакшен: HTTPS, opcache PHP, persistent object cache (Redis/Memcached) для REST, регулярный бэкап wp_chat_dialogs (JSON истории вручную не собрать), после обновления sw.js перерегистрировать service worker.

    | Настройка | Где | Зачем |
    | — | — | — |
    | Размер пачки сообщений | js/chat-theme.js (MESSAGES_PER_PAGE) | Ленивая загрузка |
    | Период опроса | js/chat-theme.js (pollIntervalMs) | Обновление ленты |
    | Права на чат | functions.php (chat_theme_check_dialog_access) | Кто видит и пишет |
    | Состав вкладок | template-parts/sliding-menu.php | Меню |
    | Команды плагинов | фильтр chat_theme_handle_backend_command | Расширения |

    Использование

    Главная (чат не открыт)

    1. Откройте корень сайта.
    2. Сверху всегда поле «Введите команду…».
    3. Ниже — дашборд:

    — плитки быстрого доступа (сайты/сервисы; админ правит шестерёнкой, опция quick_access_sites);
    — до 12 публичных групп;
    — до 10 записей категории со слагом PRO;
    — выбранные страницы (список ID в index.php, $homepage_page_ids);
    — блоки новостей из чатов (карточки news-card / сетка news-grid / две колонки news-card-2).

    1. Чтобы карточка проекта попала в ряд записей на главной, запись WordPress должна быть в категории PRO.
    2. Блоки новостей: под плитками страниц. Гость видит только общую ленту карточек, без вкладок. У edit_posts (Автор и выше) сверху вкладки Новости и Моя лента; при входе открывается Моя лента. Общие Новости правят только админы (manage_options), набор один на всех. Моя лента — у каждого автора/админа своя (user meta chat_theme_homepage_my_feed), правит только владелец. Кнопка «+» на вкладке, которую можно править. Слева от кнопок блока — имя чата или название дайджеста.

    После перехода в диалог центр становится лентой сообщений; дашборд скрывается.

    Плитки записей, страниц и чатов

    На главной и в шаблонах: chat_theme_display_content_tiles( array( 'source_type' => 'post'|'page'|'chat', ... ) ). На обычной странице WP — шорткод content_tiles в квадратных скобках (через the_content() в page.php; в Gutenberg — блок «Шорткод» или «Произвольный HTML»). Примеры ниже — текст, не живой виджет.

    [content_tiles source_type="post" category="news" count="6" excerpt_length="200"]
    [content_tiles source_type="post" category="news" count="9" horizontal_scroll="true" tiles_per_row="3"]
    [content_tiles source_type="page" post_ids="3798,3796,3794" tiles_per_row="3" count="0"]
    [content_tiles source_type="chat" chat_slugs="slug-чата" count="0" title_words="8" lazy_batch="8" section_title="Из чата"]

    Атрибуты: source_type, post_ids, category / categories, tag / tags, chat_slugs, count (0 — все, сначала lazy_batch, подгрузка при прокрутке), tiles_per_row (3 или 6), excerpt_length, title_words (чаты), section_title, section_class, wrapper, horizontal_scroll. Свой PHP-шаблон страницы: комментарий Template Name, вызов функции, в админке назначить шаблон. Параметры PHP и стили — doc/ARCHITECTURE.md § 11.

    Левое меню

    1. Нажмите иконку меню (гамбургер) или откройте панель на десктопе.
    2. Личные — подгруппы «Пользователи» (в т.ч. Избранное) и «Диалоги». У WP-админа ниже — свёрнутые черновики. Под заголовком каждой плашки — поле «Поиск…»: список сужается по мере ввода, без кнопки; любое слово названия (и логин у людей) подходит, несколько слов в запросе — все должны встретиться. Меню «⋯» → «Закрепить»: чат поднимается вверх своего списка (только если вы в нём состоите / подписаны).
    3. Группы — мои группы и «Доступные группы» (блок скрыт, если список пуст). То же поле поиска под заголовком плашки. У своих групп в «⋯» есть «Закрепить»; у доступных (без подписки) — только «Подписаться».
    4. Инфо — страницы и записи WordPress; открываются в попапе (прямой URL — отдельная страница).
    5. Клик по человеку всегда открывает канонический личный чат 1+1 (is_dm), а не общий диалог.

    У гостя: «Текущий диалог» только при своём черновике (по IP), затем группы, люди, инфо.

    Навигация: вкладка → список чатов → выбор диалога → лента сообщений.

    Личный чат, диалог, группа

    1. Клик по пользователю — личная переписка; в шапке имя и аватар собеседника.
    2. Команда dialog to-add логин (или ПКМ → добавить) снимает is_dm навсегда: чат становится диалогом.
    3. В группе создатель добавляет/удаляет участников, меняет роли «автор» / «подписчик» (ПКМ по участнику).
    4. Шестерёнка «Действия»: удалить чат, если есть право chat_theme_can_delete_dialog.
    5. «Избранное» — чат себе; участников добавить нельзя; первым в списке пересылки.

    Командная строка

    1. Введите текст в поле «Введите команду…» и нажмите отправку (или кнопку / для списка команд).
    2. Скрепка или drag-and-drop — вложения. В AI-диалоге (ai-mode=1) обычный текст уходит в модель как bot ….
    3. После установки плагина команда должна появиться в UI (/news, /ai и т.д.). Если ответ не сохраняется — смотрите WP_DEBUG_LOG.

    | Команда | Назначение | Примечания |
    | — | — | — |
    | dialog add {title} | Переименовать текущий диалог | Владелец / админ |
    | dialog desc {html} | Описание диалога | Нужно edit_posts |
    | dialog logo {url} | Логотип | Владелец |
    | dialog list | Список диалогов | Только чтение |
    | dialog draft | Черновики | Нужна авторизация |
    | dialog public-list / private-list | Публичные / закрытые чаты | private-list без личных 1+1 (is_dm) |
    | dialog to {login\|id} | Открыть/создать личный чат 1+1 | Ищет is_dm=1 с парой в opponent |
    | dialog to-add {login\|id} | Добавить автора | Если был DM — is_dm сбрасывается навсегда |
    | dialog to-del {login\|id} | Удалить автора | Нельзя удалить создателя; в DM запрещено |
    | wp {поиск} | Поиск по сайту | Плагин Husky AI Search; также Хаски {запрос} |
    | news {тема} | Новости | Плагин NewsAPI |
    | ai {запрос} | Нейросеть | Плагин My AI Chat, вложения |

    Как писать свой плагин-команду — doc/ARCHITECTURE.md § 10.

    Сообщения

    1. Над пузырём (у кого есть edit_posts): правка, удаление, пересылка, шаринг, закреп.
    2. Картинки без текста — сетка на всю ширину (как VK); с текстом — галерея сверху, пузырь снизу.
    3. Поиск, теги, дата и закреп — круглые кнопки справа в колонке чата (работают по локальному кешу сообщений, без полной перезагрузки истории).
    4. Пересылка: Избранное → личные чаты (по имени собеседника) → диалоги → группы; только куда можно писать.

    Админка: список чатов

    1. В боковом меню WP откройте Чаты (wp-admin/admin.php?page=chat-theme-chats). Нужно право manage_options.
    2. Таблица в стиле записей: название (клик открывает сообщения чата), дата создания, автор, число сообщений с дельтой (1 842 (+15) — клик открывает лог версий), среднее в день, участники, статус, кто может писать, переключатель слежения, меню «⋮».
    3. Заголовки столбцов сортируют список; внизу — пагинация. Черновики в таблице не показываются.
    4. Меню «⋮» меняет публичность и кто может писать (все / только участники). Личную переписку с оппонентами нельзя сделать публичной.
    5. На консоли блок «Статистика чата» остаётся для пользователей и системы; таблица чатов оттуда убрана (ссылка «Все чаты» в шапке блока).

    Правая панель и push

    1. Колокольчик открывает ленту: сверху напоминания (HuskyTodo), ниже события опросов, автопостинга и непрочитанных.
    2. Клик по напоминанию открывает связанный чат; «+ Добавить напоминание» — модалка задачи.
    3. Push в браузере — после разрешения уведомлений и настройки VAPID. Уведомление приходит на сообщения пользователя, файла и превью ссылки; клик открывает диалог. Проверка SW: DevTools → Application → Service Workers.

    REST для внешних систем

    1. Создайте Application Password в профиле WP.
    2. Базовый URL: /wp-json/my-chat/v1/.
    3. Чтение чата: GET /chats/{slug}. В сообщениях есть preview_url и при видео — video_type, video_url, video_embed_src, video_page_url (для агрегаторов вроде vc_clone).
    4. Публикация — inc/api/HOW_TO_PUBLISH.md.

    Структура проекта

    chat-theme5_5_5_5_1/
    ├── functions.php              # ядро: AJAX, права, команды, миграции БД, push
    ├── index.php                  # главная: командная строка + дашборд плиток
    ├── single-post-chat.php       # шаблон открытого диалога
    ├── page.php / header.php / footer.php
    ├── style.css                  # стили темы (Version 2.19)
    ├── sw.js                      # Service Worker (Web Push)
    ├── js/
    │   ├── chat-theme.js          # состояние чата, кеш, команды, лента уведомлений
    │   ├── homepage-news-blocks.js
    │   └── script.js
    ├── inc/
    │   ├── api/                   # REST + инструкции
    │   ├── pinned-chats.php
    │   ├── content-tiles-widget.php
    │   ├── homepage-news-blocks.php
    │   ├── admin-chats.php
    │   └── ajax-handlers.php
    ├── template-parts/
    ├── vendor/web-push/
    ├── _dop для уведомлений/      # VAPID, проверка push
    ├── doc/                       # ARCHITECTURE, CHANGELOG, AI_RULES
    ├── CHANGELOG.md               # ссылка на doc/CHANGELOG.md
    └── README.md

    Слои, таблицы и потоки данных — в doc/ARCHITECTURE.md.

    Технологии

    • WordPress / PHP 8+ — тема, шаблоны, AJAX admin-ajax.php, REST.
    • jQuery / ES5 — клиентское состояние в js/chat-theme.js (без сборщика).
    • JSON в LONGTEXT — история сообщений в wp_chat_dialogs.dialog_context.
    • Minishlink Web Push — серверная отправка браузерных уведомлений.
    • Service Worker (`sw.js`) — показ push и переход в диалог.
    • Font Awesome — иконки интерфейса.
    • Плагины через фильтр chat_theme_handle_backend_command — AI, новости, поиск, соцфид.

    Разрешения, интеграции, ключи

    Права WordPress

    | Кто | Что может |
    | — | — |
    | Гость | Читать открытые группы, безопасные команды без записи |
    | Авторизованный | Личные чаты, сообщения (если чат разрешает), команды |
    | Создатель чата (user_id) | Удаление своего чата, роли, метаданные, участники |
    | Автор в чате (opponent) | Писать; без прав создателя не удаляет чужую группу |
    | Подписчик | Чтение / ограниченная запись; закреп чата в меню |
    | edit_posts | Инструменты под пузырём (edit/delete/forward/pin), своя лента новостей на главной |
    | manage_options | Любые группы/диалоги, роли везде, плитки главной, общая лента новостей на главной, страница Чаты в админке |

    Публичность чата — поля is_public и user_edit. Кастомной роли WP при необходимости выдайте edit_posts.

    Плагины рядом с темой

    | Плагин | Каталог | Зачем |
    | — | — | — |
    | AI Mode | @ai-mode | Диалоги с нейросетью, модели в админке плагина |
    | Chat Enhancer | +chat-enhancer-… | Сохранение ответов ботов |
    | NewsAPI | + wp-tag-plugin | news {тема} |
    | Husky AI Search | +husky-ai-search | wp / Хаски |
    | My AI Chat | +my-ai-chat-3 | ai {запрос} |
    | Социальный фид | +husky-social-feed-plugin-... | Импорт из соцсетей |
    | vc_clone | другая тема WP | Читает REST чатов |

    Ключи и токены (не в репозитории темы)

    • REST: Application Password в профиле пользователя WP.
    • Web Push: пара VAPID (генератор в _dop для уведомлений/generate-vapid-keys.php).
    • AI / новости / соцсети: опции соответствующих плагинов, не файлы темы.

    Точка расширения для плагинов: фильтр chat_theme_handle_backend_command. Плагин возвращает { handled, result }; тема сохраняет через безопасные хелперы (read → modify → write). Иначе ленивая загрузка затрёт историю. Контракт, примеры PHP/JS и AI Mode — doc/ARCHITECTURE.md § 10.

    История изменений

    Все значимые изменения в теме документируются в этом файле.

    [Unreleased]

    Added

    • Закрепление чатов в левом меню (pin): пункт «Закрепить» / «Открепить» в меню «⋯» у пользователей, диалогов и своих групп. Закреплённые поднимаются вверх списка. Только для авторизованных; чаты без подписки («Доступные группы») закрепить нельзя. Список хранится в user meta chat_theme_pinned_chats (inc/pinned-chats.php, AJAX chat_theme_toggle_pin_chat).
    • Главная: вкладки Новости (общая лента, правят только админы) и Моя лента (своя у каждого с edit_posts, user meta chat_theme_homepage_my_feed). Гость вкладок не видит.
    • Главная: в режиме «один чат» тот же список групп, что в дайджесте — название рядом со слагом (выбор одной позиции).

    Changed

    • Главная: если видны вкладки лент, по умолчанию открыта Моя лента (и у авторов, и у админов).
    • У блока новостей слева от кнопок управления — название чата (режим «один чат») или своё имя дайджеста (поле в настройках, по умолчанию «Дайджест»).
    • Админка Чаты (wp-admin/admin.php?page=chat-theme-chats): одна таблица в стиле записей WP — название (ссылка на сообщения), дата создания, автор, сообщения в формате 1 842 (+15) с логом версий, среднее/день, участники, статус, кто может писать, слежение, меню «⋮» (публичный/приватный, все/участники). Сортировка столбцов и пагинация. Черновики в списке не показываются.
    • С консоли WordPress убрана разворачивающаяся таблица «Чаты»; в шапке блока «Статистика чата» осталась ссылка «Все чаты». Слежение и лог версий работают на странице «Чаты».
    • Гайды из папки docs/ перенесены в README.md, doc/ARCHITECTURE.md и doc/AI_RULES.md без потери содержания; папка docs/ удалена. REST-инструкции остаются в inc/api/.
    • На сенсорных экранах меню «⋯» у карточки чата всегда видно (без наведения).
    • Режим «один чат»: список групп с названием и слагом, как в дайджесте (выбор одной позиции; слаг вручную — если чата нет в списке).
    • Хардкод вызовов chat_theme_display_chat_posts в index.php заменён на chat_theme_render_homepage_news_blocks(). Текущие 17 блоков остаются значением по умолчанию, пока админ не сохранит свой набор.

    Fixed

    • Фатальная ошибка PHP: chat_theme_user_is_dialog_member() больше не объявляется повторно в inc/pinned-chats.php (канон остаётся в functions.php).
    • REST add_message: повтор того же текста от того же пользователя в течение 90 с не создаёт второе сообщение (клиент иногда шлёт POST дважды).

    Added

    • Левое меню: поле «Поиск…» под заголовком плашек «Пользователи», «Диалоги», «Группы» (и «Доступные группы» / «Люди» у гостя). Фильтр по мере ввода, без кнопки; совпадение с любым словом названия, несколько слов в запросе — все должны встретиться.

    Changed

    • Шаблон документации: канон четвёрки файлов — README.md, doc/ARCHITECTURE.md, doc/CHANGELOG.md, doc/AI_RULES.md. Подробные гайды остаются в docs/.
    • README / архитектура: ряд записей на главной берётся из категории WordPress со слагом PRO ($homepage_category_slug в index.php); страницы — из $homepage_page_ids.
    • README приведён к полной структуре продукта: возможности, требования, установка, сценарии (главная, меню, чаты, команды, сообщения, панель, REST), дерево, стек, права и ключи. Убрана таблица версий из README (история только здесь).
    • docs/ARCHITECTURE.md: удалён склеенный дубликат старой редакции; исправлена двойная нумерация §7; добавлены дерево файлов, таблицы БД 2.2, маршрут /dialog/{slug}, правило opponent при save.
    • Добавлен docs/AI_RULES.md — куда класть фичи, схема сообщений, текущий этап темы.
    • README / архитектура / UI-гайд: тема описана как трёхколоночный хаб (меню, командная строка + плитки, лента событий), а не только как «чат с вкладками».
    • UI-гайд: мобильные правила (закрытие меню, фокус поля ввода, --app-height, слайдеры).

    Added

    • Правая панель уведомлений v2: единый поток событий (опросы HSF / размещения SCP / непрочитанные) с ленивой подгрузкой чанками по 15 (chat_theme_notification_feed); poll/placement за 24 часа.
    • Компактные карточки напоминаний в панели: иконка диалога, клик открывает чат, edit/delete при наведении; карточка «+ Добавить напоминание» (HuskyTodo 1.9).
    • Левое меню: подсветка текущего диалога; списки предзагружаются один раз (без wipe при открытии чата); исправлен ранний openMenu до инициализации user_id.
    • Пункт «Удалить» в меню «Действия» (шестерёнка) для диалогов/групп по правам chat_theme_can_delete_dialog.
    • ПКМ по участнику: «В авторы» / «В подписчики» (AJAX my_set_member_role).
    • Аккордеон левого меню в стиле блока авторизации: «Личные» → Пользователи + Диалоги; «Группы» → Группы + Доступные группы.
    • «Избранное»: чат сообщений себе (is_favorites), пункт в «Пользователи», первым в списке пересылки.
    • Поле is_dm в wp_chat_dialogs (DB 2.1): канонический личный чат 1+1; клик по человеку всегда открывает/создаёт именно его.
    • Команды dialog to-add / dialog to-del (раньше были только в подсказках).
    • GUI: ПКМ на участнике — «Удалить из чата»; ПКМ на боте — «Добавить в чат» (модальный список пользователей).
    • REST API: обогащение сообщений полями preview_url, video_type, video_url, video_embed_src, video_page_url через enrich_message_for_api() — для внешних потребителей (тема vc_clone и др.).
    • Функция chat_theme_get_message_video_info() — извлекает данные видео из вложений и HTML (VK embed, <video>, Telegram).
    • Fallback для VK: парсинг vk.com/video… и vk.com/wall… (widget_post) при превью type=video_thumb, если embed вырезан wp_kses_post.
    • chat_theme_message_persist_video_fields() — сохраняет video_* в JSON сообщения до kses.
    • Фильтр chat_theme_kses_allow_hsf_video_embed — не вырезает data-embed-src / data-vk-url у VK-embed.

    Fixed

    • Мобильные: плавная анимация VK/link-слайдеров восстановлена (высота после transform, translate3d, native smooth scroll).
    • Мобильные: после авторизации не открывается панель профиля; редирект на главную; sessionStorage панели сбрасывается.
    • Мобильные: программный фокус на #chat-input отключён — клавиатура открывается только по тапу в поле.
    • VK/link-слайдеры: высота контейнера подстраивается под активный слайд (пузырь сжимается/растягивается), без пустоты от самого высокого кадра.
    • Пересылка: сообщение ищется надёжнее (String msg_id, локальный реестр после поиска/закрепов, fallback DOM/AJAX).
    • Мобильное меню: при переходе в диалог панель всегда закрывается; не восстанавливается поверх открытого /dialog/….

    Changed

    • Панель #notifications-sidebar: убраны заголовок «Уведомления» и аккордеоны (напоминания / HSF / SCP / непрочитанные); вместо них — блок напоминаний + лента карточек событий.
    • Попап WP-страниц/записей: один заголовок в шапке, крестик справа; без «Назад к списку»; пункты «Инфо» открываются в попапе (прямой URL — отдельная страница).
    • VK-галереи: та же позиция/отступ, что у обычных пузырей; вогнутый вырез вокруг аватарки на самой галерее.
    • Картинки внутри пузыря и в превью ссылок (плагин +my-chat-link-handler-5: слайдер / одиночные / inline) — всегда со скруглением.
    • Сообщения с картинками-вложениями + текст: сначала VK-галерея без пузыря, снизу текстовый пузырь той же ширины (message-with-gallery).
    • Картинки во всех видах постов — на всю ширину блока/пузыря и со скруглением (одиночные, слайдер, альбом, inline).
    • Посты только с картинками: без пузыря, сетка на всю ширину колонки (как VK); при нечётном числе первая картинка на ширину двух.
    • Черновики: скрыты у WP-авторов; у админов — свёрнутая подгруппа в «Личные» после диалогов.
    • «Доступные группы» не показываются, если список пуст.
    • У гостя «Текущий диалог» только при своём черновике (по IP) и первым в меню.
    • Вкладка «Люди» для авторизованных убрана и объединена с «Личные» (подгруппы Пользователи / Диалоги).
    • Список пересылки: Избранное → личные чаты по имени оппонента → диалоги → группы (внутри блока по алфавиту); только где пользователь создатель или автор и может писать.
    • Права: WP-админ удаляет любые группы и меняет роли; создатель группы/диалога имеет полные права в своём чате.
    • Инструменты под пузырём сообщения (edit/delete/forward/share/pin + save/cache) доступны всем с правом WP edit_posts (Автор, Редактор, Админ), а не только создателю чата.
    • Подгруппа «Диалоги» не показывает чаты с is_dm=1 (они через «Пользователи»).
    • Ярлык «Личный чат» только при is_dm=1; иначе приватный чат — «Диалог».
    • В личном чате в шапке/правой колонке показываются имя и аватар собеседника; служебное dialog_title редактируется отдельно («Имя диалога»).
    • У ботов (Хаски, Рыжий кот) аватары с ярко-синей обводкой — те же параметры, что у онлайн-статуса (зелёная).

    Fixed

    • Компактные боковые отступы аккордеона «Личные»/«Группы» — больше места под названия диалогов.
    • Пункт «Удалить» в шестерёнке: прямоугольная заливка вместо «растянутого круга» (конфликт с border-radius: 50% у .delete-dialog-button).
    • Создатель диалога (в т.ч. WP Автор) снова может менять превью/аватар: на фронте сравнивался числовой user_id со строкой из wp_localize_script.
    • Обновление списка групп после подписки учитывает аккордеон .menu-accordion-host.
    • dialog to-add / dialog to-del не обрабатывались бэкендом («Неизвестная команда»).
    • chat_theme_get_message_video_info(): сохранённый video_page_url (wall) больше не блокирует повторный разбор HTML на data-video-embed-src / data-embed-src.
    • kses: разрешены data-video-embed-src и data-video-page-url на .social-feed-post.
    • Паритет доменов vk.ru в chat_theme_parse_vk_video_from_text() (video/clip/wall).
    • chat_theme_get_message_preview_url() игнорирует default-link-image.png (котёнок-заглушка link-handler).
    • В личной переписке сообщения от оппонента (не владельца) снова сохраняются: add/edit/delete_message_safe и кэш изображений больше не передают opponent в chat_theme_save_or_update_dialog, из‑за чего срабатывала проверка «смена участников» только для владельца/админа.
    • saveCurrentDialog отправляет opponent_ids только при создании личной переписки, а не при каждом сохранении.

    [1.10.0] — 2025-11-25

    Added

    • Добавлена поддержка плагина AI Mode (@ai-mode) для работы с нейросетями
    • Добавлено поле ai_mode в объект currentDialog на фронтенде для отслеживания AI режима
    • Реализована автоматическая обёртка пользовательских сообщений в команду bot [текст] в AI-диалогах
    • Добавлена передача флага ai_mode из бэкенда на фронтенд при загрузке диалога

    Changed

    • Обновлена функция chat_theme_get_dialog_by_slug() для выборки поля ai-mode из БД
    • Обновлена функция handle_load_dialog_by_slug() для передачи ai_mode в ответе AJAX
    • Улучшена логика обработки команд: предотвращено дублирование сообщений в AI-диалогах
    • Обновлена функция processCommand() для автоматической обработки AI команд

    Fixed

    • Исправлена проблема дублирования сообщений в AI-диалогах (ai-mode=1)
    • Исправлена логика сохранения сообщений: фронтенд не сохраняет сообщения, если их сохраняет плагин
    • Улучшена синхронизация между фронтендом и бэкендом при работе с AI

    [1.9.0] — 2025-11-24

    Added

    • Добавлен столбец ai-mode (по умолчанию 0) в таблицу wp_chat_dialogs для фиксации статуса режима ИИ с поддержкой контекста.
    • Создан файл CHANGELOG.md и добавлена ссылка в документацию.

    Edit Message

    Attachments:

    AI Assistant

    Enter your instruction to edit the text: