3.5.0beta3: Полный поиск администратора, улучшенный выбор шрифтов, более надежный поиск по сайту, персонализация категорий и упрощенное управление конфигурацией

Новые функции в 3.5.0.beta3

Всесторонний поиск в админ-панели

Теперь можно искать по всей админ-панели Discourse из одного интерфейса — это включает страницы, настройки, темы, компоненты и отчёты. Чтобы открыть поле поиска, нажмите новую ссылку «Поиск» в верхней части боковой панели администратора. Также к нему можно получить доступ из любого места в админ-интерфейсе с помощью сочетания клавиш Ctrl+/ или Cmd+/. Этот интерфейс значительно упрощает поиск именно того, что вам нужно, независимо от того, что это такое. Узнать больше и оставить отзыв здесь.

Персонализация вашего сообщества с помощью иконок категорий

Теперь категории можно персонализировать с помощью иконок, чтобы отразить индивидуальность вашего сообщества. Вы можете выбрать эмодзи или стандартные иконки Discourse, использующие существующий цвет категории. Это отличный способ сделать ваш сайт более уникальным, а категории — более соответствующими содержанию, которое они включают. Узнать больше здесь.

Упрощённое управление конфигурацией с помощью массового сохранения

Ушли в прошлое дни, когда приходилось сохранять каждую настройку по одной. Теперь, когда вы редактируете настройки в админ-панели Discourse, внизу появляется баннер, указывающий количество изменённых настроек, что позволяет сохранить их все одним кликом. Баннер остаётся на месте при фильтрации настроек на странице, и вы получите предупреждение, если попытаетесь перейти со страницы с несохранёнными настройками. Вы можете использовать это прямо сейчас в своей админ-панели Discourse.

Более надёжный поиск по сайту

При поиске контента на любом сайте Discourse у вас теперь больше контроля над источниками контента, которые отображаются в результатах поиска. Теперь можно целенаправленно искать посты, написанные людьми или ботами, а также шёпоты и обычные посты (подробности на GitHub). Вы можете протестировать это на своём сайте уже сегодня.

Улучшенный выбор шрифтов

Выбор шрифтов для вашего сообщества теперь стал проще, чем когда-либо. Новая панель выбора шрифтов включает визуальные превью доступных шрифтов, а также размер текста. Это часть ongoing улучшений опыта настройки брендинга и внешнего вида сайта. Посмотрите изменения на странице «Логотип и шрифты» в вашей админ-панели Discourse.

Обновления безопасности

Это обновление включает исправления следующих проблем безопасности, сообщённых нашим сообществом и HackerOne.

11 лайков

И даже больше!

Но подождите, есть ещё! Мы стараемся выделять для вас новые функции и изменения, но их всегда слишком много, чтобы описать каждый пункт. Чтобы увидеть полный список новых функций, исправлений ошибок, улучшений пользовательского интерфейса и прочего, обязательно ознакомьтесь с разделом «Дополнительные функции и исправления», приведённым ниже.

Улучшения плагинов

discourse-activity-pub

Исправления ошибок

  • Предотвращение попытки ActorHandler применить обновления к категориям или тегам (208)
  • Обновление статуса акторов на «доступен» только если они были «недоступны» (204)
  • Блокировка потока трекера доставки (203)
  • Исправления на странице «О нас» (201)

Изменения пользовательского интерфейса

  • Улучшение добавления актора в панели администратора ActivityPub (209)

discourse-ai

Новые функции

  • Возможность выбора персоны и LLM на странице разговоров с ботом (1276)
  • Отображение большего количества мест использования ИИ / потоковый чат (1278)
  • Главная страница разговоров с ботом (1273)
  • Экспериментальная главная страница бота для личных сообщений (#1159)" (1272)
  • Экспериментальная главная страница бота для личных сообщений (1159)
  • Добавление метрик расходов в статистику использования ИИ (1268)
  • Улучшение настроек контекстного окна LLM (1271)
  • Обновление названий и спецификаций моделей (1262)
  • Добавление потоковой передачи в помощник редактора (1256)
  • Улучшение управления контекстом (1260)
  • Включение токенизатора Mixtral для эмбеддингов (1258)
  • Настройка функций, основанных на персоне, в панели администратора (1245)
  • Возможность изменения персон инструментами (1250)
  • Возможность отправки отчётов LLM в группы (1246)
  • Саммари, основанные на персоне. (1232)
  • Продолжение разговора с Discobot после поиска (1234)
  • Гибкая обработка изображений в сообщениях (1214)

Исправления ошибок

  • Удаление всех ведущих пробелов, которые LLM предоставляют при потоковой передаче (1280)
  • Защита от ситуаций, когда нет ответа, передача идентификатора потока (1279)
  • Таблицы на странице использования должны группироваться только по ключу (1277)
  • Не перерисовывать боковую панель разговоров при навигации (1274)
  • Исключение токенов размышления из чата (1264)
  • Некорректное формирование контекста для ответчиков (1257)
  • Поиск не должен запускаться повторно, если нет поискового запроса (1255)
  • Исправления для генератора тем (1253)
  • Особенности поиска (1249)
  • Восстановление предыдущего поведения доступа групп к gist-ам. (1247)
  • Менее общие имена анимаций (1243)
  • Корректное сохранение новейших загрузок при формировании контекста (1242)
  • Возврат false, если у текущего пользователя нет персон (1241)
  • Настройка персоны должна сравнивать целочисленное значение (1239)
  • Улучшения поиска (1228)
  • Принудительные инструменты не устанавливались корректно, когда у инструмента нет параметров. (1231)
  • Попытка исправить нестабильные тесты (1226)
  • Убедиться, что бейджи категорий присутствуют в отчётах о тональности (1222)
  • Редактор персон сохраняет неактуальные данные после сохранения одного поля (1219)
  • Результаты меню помощника поста должны быть выбираемыми (1221)
  • Не вызывать ошибку, когда список инструментов пуст (1218)

Изменения пользовательского интерфейса

  • Размещение действий редактора над иконками ввода ИИ (1291)
  • Прокрутка только при превышении максимальной высоты ввода (1288)
  • Небольшие корректировки выравнивания для экспериментального интерфейса бота (1285)
  • Возврат кнопки «Новый разговор» в боковую панель на мобильных устройствах (1283)
  • Приведение стилей в соответствие с общими стандартами (1275)
  • Улучшение отображения списка групп в таблице функций при большом количестве групп (1254)
  • Корректировка стилей интерфейса артефактов (1240)
  • Более широкая панель поиска, граница, уменьшенный размер шрифта (1238)
  • Отображение переключателей ИИ-бота в разделе настроек ИИ-бота (1229)

discourse-akismet

Исправления ошибок

  • Отправка email пользователю, а не администратору, об удалении (168)

discourse-calendar

Новые функции

  • Добавлена поддержка предпросмотра событий в расширенном редакторе (708)

Исправления ошибок

  • Удаление символов двойных кавычек " при формировании маркера события… (716)

discourse-category-experts

Исправления ошибок

  • Обновление пользовательских полей при изменении владельца поста (197)

discourse-data-explorer

Новые функции

  • Добавлена возможность отправки индивидуальных отчётов в личные сообщения членам группы (369)

Исправления ошибок

  • Возможность объяснения запроса (371)

discourse-follow

Новые функции

  • Добавлена лента подписок в /filter (148)

Исправления ошибок

  • Регрессия при сохранении пользовательских настроек (149)

discourse-gamification

Исправления ошибок

  • Отключение начисления очков за решения, если плагин решений отключен (199)
  • Обновление начисления очков на основе таблицы (198)

discourse-just-chat

Изменения пользовательского интерфейса

  • Скрытие поиска (2)

discourse-login-client

Новые функции

  • Получение аватара пользователя (6)

Исправления ошибок

  • Использование «nickname» вместо «username» в OAuth-пакете (7)

discourse-open-graph

Новые функции

  • Добавление переопределения Open Graph для Discourse через плагин (1)

Исправления ошибок

  • Убедиться, что URL не переопределяется плагином (2)

discourse-prometheus

Новые функции

  • Обновление гистограммных бакетов для http_requests_queue_duration_seconds (147)
  • Введение http_requests_<typ_duration_seconds метрики (142)
  • Добавлена метрика sidekiq_queue_latency_seconds (139)
  • Добавлена метка success к (sidekiq|scheduled)_job_count (137)
  • Добавлена метрика process_cpu_seconds_total (138)

Исправления ошибок

  • Сломанная метрика scheduled_job_ran (140)

Производительность

  • Удалены пользовательские метки из метрик длительности очереди http (146)

discourse-ratings

Исправления ошибок

  • Удалена зависимость от handlebars (24)

discourse-reactions

Изменения UX

  • Расширение реакции discourse до 100% высоты для правильного выравнивания в действиях с сообщениями (359)

discourse-signatures

Исправления ошибок

  • Переопределение контроллера настроек после изменения в ядре (85)

discourse-solved

Исправления ошибок

  • Элемент каталога решений использовал создание сообщения вместо создания решения (361)
  • Принятие другого ответа не фиксируется (360)
  • Ошибка 500 из-за отсутствующего модуля (359)
  • Исключение удаленных тем и сообщений из решений в сводке пользователя (358)
  • Стандартизация определения того, что является решением (352)
  • Некоторые решенные темы не имеют ответов (350)
  • Несколько тем могут иметь одно и то же сообщение в качестве решения (348)

Изменения UX

  • Исправлено смещение для не-администраторов и анонимов + переход на использование переменных (349)

discourse-solved-reminders-plugin

Исправления ошибок

  • Исправлено минимальное значение для настройки remind_mark_solution_after_days (24)
  • Возврат значения с 1 дня к 14 дням (23)
  • Переопределение контроллера настроек после изменения в ядре (21)
  • Оптимизация и обновление запросов, более короткая частота (20)

discourse-subscriptions

Исправления ошибок

  • Размер баннера кампании при активной боковой панели (274)

Изменения UX

  • Улучшения макета баннера кампании (273)

discourse-templates

Исправления ошибок

  • Ошибка, когда группа разрешенных для частного шаблона — «все» (103)
  • Показ модального окна, если в редакторе скрыт предварительный просмотр (101)

discourse-theme-creator

Исправления ошибок

  • Удалено переопределение prepend (109)
  • Удалено сломанное расширение extra-locales-controller (108)

discourse-translator

Новые функции

  • Перевод категорий с использованием выбранного провайдера (282)
  • Показ индикатора для сообщений, изначально не написанных на языке пользователя (274)

Исправления ошибок

  • Убедиться, что идентификаторы непереведенных сообщений исключают те, которые уже переведены на целевой язык (285)
  • Обновление локализации вместо категории (283)
  • Включение части содержимого сообщения при определении языка заголовка (277)
  • Показ кнопки переключения, даже когда отображается исходный контент (275)
  • Не переводить новые сообщения, если show=original (271)
  • Пропуск региональной части локали для API Google Translate (263)

Изменения UX

  • Исправлено масштабирование кнопки переводчика в полосе прогресса темы (270)
  • Показ дополнительных сведений во всплывающем окне при сбое перевода (262)

discourse-video

Исправления ошибок

  • Максимальная длительность видео на основе уровня доверия (80)
  • Предварительные просмотры заполнителей в редакторе (79)
  • Сообщение может быть неопределено (78)
  • Сообщение может быть неопределено (77)

Все функции и исправления

Новые функции

  • Показ локализованного маршрута категорий (32464)
  • Установка локализаций категорий в настройках категории (32412)
  • Показ переведенных названий категорий из таблицы локализаций, если они существуют для локали пользователя (32380)
  • Реализация выбора группы тегов в выпадающем списке и множественного выбора при создании темы и предварительном просмотре при использовании шаблонов форм (32108)
  • Разрешение редактирования пользовательских флагов (32344)
  • Включение административного поиска для всех сайтов (32327)
  • Реализация предварительного просмотра шаблонов форм (32111)
  • Добавление расширения rich-редактора для сносок (плагин) (31719)
  • Ctrl+M для переключения между rich/markdown редактором (32266)
  • Добавление переопределения для тегов заголовка и описания для пауков (32259)
  • Разрешение поиска шепотов и ботов (32252)
  • Введение новой страницы списка компонентов (32164)
  • Prosemirror-codemark для фиктивного курсора границы в rich-редакторе (32165)
  • Автоматическое связывание/развязывание слов, похожих на URL, в rich-редакторе при вводе (32163)
  • Раздел шрифтов на странице брендинга (32031)
  • Динамический размер кэша ID горячих тем (32175)
  • Приоритет пользователя, получающего ответ, в автозаполнении (32086)
  • Настройки реакций в чате одним кликом (32150)
  • Подсветка найденных наблюдаемых слов в проверяемых элементах. (32167)
  • Копирование сообщений потока при копировании первого сообщения потока (32139)
  • Использование шрифта Jetbrains Mono для кода, когда включен rich-редактор (32122)
  • Markdown отображается моноширинным шрифтом, когда включен rich-редактор (32097)
  • Массовое сохранение настроек сайта (32013)
  • Автоматический контрастный цвет текста для категорий (32015)
  • Реализация транскриптов чата в rich-редакторе (31819)
  • Разрешение очистки данных отклоненных пользователей (31987)
  • Добавление значков и эмодзи в категорию (31795)

Исправления ошибок

  • Разрешение ограничения тегов только для администраторов (32493)
  • Компиляция ассетов в production после c62a4a47 (32491)
  • Удаление фильтра боковой панели (32485)
  • Также учет фиксированных позиций категорий при локализации (32486)
  • Убедиться, что баннер сайта скрывается, когда пользователь нажимает кнопку закрытия (32444)
  • Не обнулять атрибуты категории, если нет ключей параметров (32483)
  • Также показ локализованных категорий для пользователей, не вошедших в систему (32465)
  • Крайний случай обратного пробела для ссылок в rich-редакторе (32476)
  • Также показ локализованных категорий для пользователей, не вошедших в систему (32460)
  • Добавление значков заголовков категорий в коробочный макет (32395)
  • Корректный сброс панели при изменении размера окна (32437)
  • Делегирование silenced_till от анонимного пользователя к основному учетному записи (32416)
  • Разрешение отправки резервной копии по электронной почте, даже если резервное копирование отключено (32415)
  • Скрытие ненужных вкладок и кнопок, когда резервное копирование отключено (32396)
  • Пересчет учитывает уровень доверия приглашенного по умолчанию (32393)
  • Ошибка при попытке удалить значок из избранного (32369)
  • Удаление z-index из user-status в заголовке (32382)
  • Включение выпадающего списка черновиков в частных категориях (32370)
  • Вставка изображения в rich-редактор могла обрабатываться дважды (32356)
  • Нестабильный тест для FormTemplatesController (#32351)" (32359)
  • Удаление смешанных объявлений из header.scs (32357)
  • Нестабильный тест для FormTemplatesController (32351)
  • Отмена захвата проверяемых элементов после завершения. (32346)
  • Заставить работать опцию проверяемого элемента “Сохранить удаленное сообщение” (32345)
  • Удаление подсказки для сочетания клавиш поиска в браузере (32330)
  • Установка заголовка X-Robots-Tag для предотвращения индексации /safe-mode (32329)
  • Исправление утечки состояния модификатора метаданных (32316)
  • Экранирование символов регулярных выражений при вызове replaceText для ProseMirror (32280)
  • Ошибки при обновлении страницы после сохранения шрифтов (32282)
  • Ошибка JS на шаге логотипа мастера (32303)
  • Удаление новой строки из заголовка/альт вставленного изображения в rich-редакторе (32295)
  • Добавление хелперов для заголовка и содержимого для application.html.erb и crawler.html.erb (32290)
  • Реализация insertBlock в rich-редакторе (32288)
  • Позиция обработчика клика на узле details в rich-редакторе (32268)
  • Обновление отключенного состояния при переключении между текстами сайта (32262)
  • Переименование branding в logo и fonts (32264)
  • Избегание двойного базового пути в push-уведомлениях (32228)
  • Переключение на значок поиска на узком десктопе (32215)
  • Убедиться, что queryParams discovery не сохраняются невидимо (32178)
  • Убедиться, что загруженные CSV наблюдаемых слов конвертируются в utf-8. (32263)
  • Перемещение константы CORE_SVG_SPRITES в метод (32261)
  • Ослабление ограничений автоматизации (32238)
  • Установка last_read_post_number для импортированных пользователей, наблюдающих за темой (32229)
  • Приоритет автора при ответе на тему (32244)
  • Стиль значка категории отсутствует data-атрибут (32253)
  • Логирование времени, даже когда автоматизация вызывает исключение (32254)
  • Скрытие поля поиска на странице приглашений (32236)
  • Неверное сообщение флага при языке en_GB (32191)
  • Ошибка Safari в элементе списка rich-редактора (32243)
  • Добавление стиля значка категории в список категорий (32109)
  • Выбор родительской категории не должен очищать другие поля формы (32206)
  • Нестабильный тест admin_branding_spec раздел шрифтов (32209)
  • Нестабильный тест admin_branding_spec (32193)
  • Нестабильный тест admin_customize_themes_spec (32169)
  • Фоллбэк на #search-menu для поля поиска (32188)
  • Архивирование сообщений из группового входящего (32166)
  • Нестабильный тест admin_sidebar_navigation_spec (32168)
  • Последовательные сочетания клавиш для поиска (32099)
  • Сочетание клавиш для страницы административного поиска (32140)
  • Скрытие поля поиска на страницах аутентификации (32132)
  • Invite_link_max_redemptions_limit минимум 1 (32118)
  • Предотвращение дублирования значков категорий (32103)
  • Всегда разрешать редактирование цвета фона категории (32102)
  • Обновление счетчиков тем тегов при массовом удалении тегов (32095)
  • Создание UserHistory только при изменении настройки (32075)
  • Разрешение изменения размера textarea (32076)
  • Предотвращение распространения триггеров d-menu (32078)
  • Ошибка “Input data should be a string” в ProseMirror (32056)
  • Приоритет !important CSS в письмах (32061)
  • Повторное применение 94ee3554 (32020)
  • Обновление позиции значка чата на мобильных устройствах (32016)
  • Не @import .css ассеты для плагинов (32014)

Изменения UX

  • Исправление форматирования двух сочетаний клавиш (32479)
  • Исправление обрезки заполнителя rich-редактора на мобильных устройствах (32474)
  • Включение настройки сайта rich_editor (32455)
  • Настройка текста поиска (32467)
  • Лучшее разделение для темного режима (32450)
  • Крайний случай заполнителя rich-редактора (32448)
  • Добавление отсутствующего SVG-значка discourse-table (32447)
  • Локаль и имя не должны быть “необязательными” (32446)
  • Удаление стилей position & z-index (32445)
  • Исправление отображения контента над редактором (32443)
  • Не позволять редактору влиять на высоту окна чата (32423)
  • Удаление радиуса границы (32424)
  • Улучшение правил ввода для автолинков/ссылок в rich-редакторе (32366)
  • Корректировки дополнительных действий с сообщениями в чате (32404)
  • Избегание вложенных тегов параграфов, вызывающих слишком большие описания категорий (32403)
  • Эксперимент с анимацией (32341)
  • Небольшие исправления (32387)
  • Избегание конфликта автолинков с кодовыми метками в rich-редакторе (32365)
  • Очистка узлов rich-редактора Prosemirror / немного лучший UX (32361)
  • Приветственный баннер и настройки поиска для мобильных устройств (32362)
  • Не уменьшать моноширинный шрифт редактора на мобильных устройствах (32358)
  • Настройки поиска в заголовке (32354)
  • Автофокус ввода выбора эмодзи на мобильных устройствах (32353)
  • Поддержка мобильного поиска в заголовке - продолжение (32306)
  • Добавление визуального разнообразия к заполнителю скриншота темы (32077)
  • Удаление z-index (32319)
  • Настройка меток полей пользователя (32317)
  • Использование ‘unused’ вместо ‘active’ для компонентов (32284)
  • Использование описания ядра популярных компонентов, когда нет описания (32286)
  • Удаление сочетания клавиш поиска Ctrl+F (32281)
  • Сохранение контента в правиле ввода сноски rich-редактора (32296)
  • Быстрое мобильное исправление стилей цитат (32297)
  • Использование миксина для радиуса границы цитат (32294)
  • Радиус границы узла выбора prose-mirror (32292)
  • Удаление z-index (32289)
  • Сохранение согласованности стиля шрифта/цвета шепота между редакторами (32287)
  • html_block в rich-редакторе без экранирования и избегания \n\n (32269)
  • Радиус границы onebox & цитат (32242)
  • Избегание ведущего пробела при сериализации некоторых узлов из rich-редактора (32270)
  • Добавление всплывающей подсказки для сочетания клавиш переключения markdown (32278)
  • Поддержка мобильного поиска в заголовке (31711)
  • Переключение details в rich-редакторе только по клику курсора (32267)
  • Улучшение связанных учетных записей в настройках пользователя (32247)
  • Делая высоту редактора кода администратора более гибкой (32241)
  • Согласованность только эмодзи между rich-редактором и cooked (32245)
  • Цвет и стиль шрифта шепота в rich-редакторе (32239)
  • Улучшения клавиатуры обратного пробела в rich-редакторе (32234)
  • Улучшение обработки onebox в rich-редакторе (32221)
  • Обертка участников в элементе темы pm (32223)
  • Добавление отсутствующих заголовков страниц конфигурации администратора (32198)
  • Добавление flex к миксину упоминаний + обновление единиц (32145)
  • Исправления кнопок (32152)
  • Правильная ширина баннера несохраненных настроек сайта (32137)
  • Добавление flex к упоминанию для согласованного выравнивания и отступов (32105)
  • Делая настройку административного поиска видимой (32142)
  • Показ сочетания клавиш на полной странице административного поиска (31646)
  • Правильное выравнивание разделителя тегов при просмотре поиска в полноэкранном режиме (32133)
  • Настройка отступов между простыми тегами в предварительном просмотре настроек сайта (32125)
  • Настройка отступов, чтобы последняя настройка не скрывалась за баннером “Сохранить все” (32127)
  • Переименование кнопки входа Twitter в X (32123)
  • Обертка подкатегорий при редактировании категории (32110)
  • Конвертация emdash+дефиса в горизонтальную линию в rich-редакторе (32085)
  • Заголовок панели администратора (32022)
  • Улучшение макета тегов в списке тем на мобильных устройствах (32048)
  • Удаление выравнивания по базовой линии из обертки заголовка темы (32040)
  • Корректировки стиля эмодзи (32039)
  • Выравнивание редактора без предварительного просмотра с сообщениями (31960)
  • Переполнение содержимого статистики хранилища (31840)
  • Отображение состояния загрузки кнопки при отправке формы сброса пароля (32034)
  • Изменение focus на focus-visible (32021)
  • Улучшение выравнивания эмодзи хештегов (32019)
  • Проверка только класса toolbar-visible в mobileView (32018)
  • Перемещение значка заголовка чата (31951)
  • Добавление состояния загрузки к кнопке при подтверждении пароля (32012)

Изменения безопасности

  • Строгое соблюдение ограничений DM

Производительность

  • Компиляция основных локализованных пакетов just-in-time (32335)
  • Включение brotli в NGINX (32333)
  • Установка JOBS=1 для среды сборки с низкой памятью (32326)
  • Повторное использование существующей сборки ядра JS, где возможно (32311)
  • Реализация бесконечной прокрутки для новой страницы компонентов (32291)
  • Предотвращение запросов N+1 при загрузке описаний тем/компонентов (32305)
  • Установка JOBS=1 для сред сборки с низкой памятью (32171)
  • Установка cluster_concurrency 1 для Jobs::BackfillBadge (32121)

Доступность

  • Использование единственного числа в доступной строке category_tag (32492)
  • Добавление тегов H1 для скринридеров на маршрутах discovery (32422)
  • Заголовок приветственного баннера не должен быть H1 (32420)
  • Site-text-logo не должен быть H1 (32405)
  • Добавление aria-label к ссылке счетчика ответов в списке тем (32402)
7 лайков