3.2.1: Релиз с исправлениями безопасности и ошибок

Стабильный релиз Discourse 3.2.1

Discourse настоятельно рекомендует всем сайтам использовать ветку tests-passed по умолчанию. Ветка «stable» больше ориентирована на отсутствие изменений, чем на отсутствие ошибок — все релизы, включая те, что находятся в ветках tests-passed и beta, готовы к использованию в продакшене.

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

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

  • Раскрытие существования секретных подкатегорий (CVE-2024-24748)
  • DoS-атака через наводнение пикселями (CVE-2024-24827)
  • DoS-атака через приглашения — отсутствие ограничения размера поля (CVE-2024-27085)
  • DoS-атака через журналы действий сотрудников (CVE-2024-27100)
  • Раскрытие существования секретных категорий с пользовательскими фонами CVE-2024-28242
9 лайков

Ещё больше!

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

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

discourse-activity-pub

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

  • Обеспечить существование коллекций тем для активностей full_topic (67)
  • Использовать полный slugPath для перезагрузки категорий с разрешениями (65)
  • Журнал сбоев задания доставки (64)

discourse-adplugin

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

  • Улучшение совместимости DFP / Ad-manager с Content-Security-Policy (201)

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

  • Расчёт отсутствия рекламы для групп на стороне сервера (200)
  • Добавление исключений групп для каждой рекламной платформы (197)

discourse-ai

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

  • Обмен беседами с ИИ через URL (521)
  • Быстрый семантический поиск с ИИ (501)
  • Добавление персоны и инструментов бота-помощника GitHub (513)
  • Поддержка claude opus и sonnet (508)
  • Возможность отправки поста в очередь ревью через ИИ-триаж (498)
  • Поддержка помощника ИИ на других языках (489)
  • Обработка защищённых загрузок в подписи к изображению (476)
  • Подпись к изображению с помощью ИИ (470)
  • Новая персона помощника Discourse (473)
  • Упоминаемые персоны и инструмент случайного выбора, ограничения контекста (466)
  • Разрешение персонам передавать параметры top_p и temperature (459)
  • Тонкая настройка отчёта LLM для более точного следования инструкциям (451)

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

  • Подсветка синтаксиса для общих преобразований ИИ при включённом CSP (532)
  • Обработка Unicode в токенизаторе (515)
  • Истечение срока действия ресурсов при изменении CSS
  • Отсутствие перевода на странице обмена (528)
  • Предотвращение некорректного отображения обмена беседами (526)
  • Фильтрация мягко удалённых тем при заполнении данных о настроении (527)
  • Ai-image-caption не должен падать при проверке currentUser.can_use_assistant (523)
  • Функция подписи к изображению должна учитывать группы помощника ИИ в редакторе (522)
  • Настройка вызова функций (519)
  • Улучшение полей ввода редактора персон ИИ и опциональной аутентификации через GitHub (518)
  • Предотвращение создания заголовков потоков чата ИИ до публикации ответов (517)
  • Избежание всех циклов обратной связи ботов (507)
  • Нажатие Backspace в пользовательском промпте редактора закрывает меню (505)
  • Сохранение персоны системы на других языках, отсутствие личных сообщений от ботов
  • Поддержка множественных вызовов инструментов (502)
  • Потоковая передача сообщений при прямом ЛС персоне (500)
  • Поддержка пробелов внутри аргументов для Open AI (499)
  • Вызов сервиса редактора нарушает совместное редактирование (494)
  • Уменьшение размера усечения для эмбеддингов Gemini (493)
  • Генерация изображений в Gemini была сломана (490)
  • Подпись ломалась при множественных последовательных вызовах (481)
  • Невозможность обмена беседами с пользователем-персоной (479)
  • Очистка результатов поиска ИИ при последующем поиске (469)
  • Улучшение заголовков потоков чата ИИ (467)
  • Использование отдельного промпта для заголовков потоков (464)
  • Явная проверка на пустую строку в миграции совместимости (463)
  • Скрытие связанных тем, когда модуль отключён (461)
  • Опечатка, вызывающая сбой text_embedding_3_large (460)
  • Улучшение генерации эмбеддингов (452)
  • Добавление имени таблицы для устранения неоднозначной ссылки на столбец в SQL (449)

Изменения UX

  • Добавление суффикса заголовка к общим страницам ИИ (531)
  • Добавление поддержки тёмной темы (529)
  • Обновление стилей и разметки для функции обмена (525)
  • Позиционирование помощника ИИ (506)
  • Небольшие корректировки размера и поведения подписи к изображению (484)
  • Небольшие корректировки стиля подписи к изображению (482)
  • Добавление отсутствующих описаний настроек (465)
  • Повторное введение валидаций настроек эмбеддингов (457)
  • Валидация настроек эмбеддингов (455)

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

  • Внедрение защиты SSRF при вызове сервисов из плагина (485)

discourse-akismet

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

  • Ошибка 500 при редактировании PostVotingComment (127)
  • Отсутствие перевода для review_tl1_users_first_post_voting_comment (128)

discourse-automation

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

  • Разрешение использования custom_fields или user_fields в триггере (253)
  • Автоматическое создание поста при обновлении пользователя (249)

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

  • Обновление способа передачи значений в ModalJsonSchemaEditor (257)
  • Корректное форматирование плейсхолдеров (255)
  • Расчёт следующей ежедневной повторяющейся задачи от текущего момента (248)

discourse-cakeday

Изменения UX

  • Исправление макета страницы, очистка (123)

discourse-calendar

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

  • Использование новых опций из downloadCalendar (549)

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

  • Редактирование пользовательского поля события не работало (550)
  • Обновление теста для корректировок праздников (541)

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

  • Скрытие приглашённых от пользователей, не имеющих права видеть пост события (544)
  • Запрет самоприглашения на приватные события (543)

discourse-client-performance

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

  • Использование правильного имени плагина в PLUGIN_NAME

discourse-data-explorer

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

  • Добавление типа параметра group_list (283)

discourse-global-filter

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

  • Пустая матрица категорий путём конвертации в glimmer (133)

discourse-group-membership-ip-block

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

  • Не раскрывать пользовательские поля других плагинов (13)

discourse-jira

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

  • Обновление поля Jira до Component API (61)
  • Опечатка (58)

discourse-kolide

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

  • Новый чекбокс для отметки устройства как мобильного при онбординге (89)

discourse-math

Изменения UX

  • Скрытие тоста загрузки MathJax (78)

discourse-microsoft-auth

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

  • Письма от Microsoft не проверяются (72)

discourse-multilingual

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

  • Падающие тесты из-за i18n.default (3)

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

  • Добавление максимальной длины для пользовательского поля content_languages

discourse-oauth2-basic

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

  • Разрешение указания обязательных путей при получении информации о пользователе (96)

discourse-post-voting

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

  • Проблемы со следующей страницей с краулерами (193)

discourse-reactions

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

  • Подсчёт всех реакций как лайков с исключениями, управляемыми настройкой сайта (267)

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

  • Прекращение запроса дополнительных реакций, когда их нет (282)
  • Не показывать лайки на эндпоинте reactions-received (279)
  • Просмотр реакций активности других пользователей (278)
  • Вызов функции _allowHover() (277)
  • Наведение на иконку реакции, вызывающее ошибку, приводило к флуду AJAX-запросов (274)
  • Не показывать пользователей, поставивших реакцию, под постом в меню «…» (275)
  • Не показывать лайки с реакциями в списке полученных лайков (273)
  • Обработка null post.user_id для синхронизации UserAction (270)
  • Требование отсутствующего запланированного задания в plugin.rb (269)

discourse-solved

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

  • Вложение комбобокса в элемент LI (280)

discourse-steam-login

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

  • Стилизация кнопки и её метка (79)

discourse-subscriptions

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

  • Обеспечение удаления продукта после подтверждения (195)

discourse-templates

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

  • Добавление ссылки на исходную тему шаблона (70)

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

  • Медленная работа при списке шаблонов и категории шаблонов (67)

discourse-vk-auth

Изменения UX

  • Улучшение дизайна кнопки для соответствия другим входам (29)

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

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

  • Автоматическая генерация и отображение превью видео (25633)
  • Настройка сайта для включения поста в сообщения о штрафах (26026)

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

  • Установка чёрного фона для видео (25744)
  • Добавление рамки вокруг кнопки воспроизведения плейсхолдера видео (25727)
  • Воспроизведение видео на iOS (25513)
  • Origin WebAuthn был неверен для настроек подпапок (#25651) (25654)
  • Корректное сохранение приглашений в группы (стабильная версия) (25567)
  • Обновление кэша JavaScript тем после выполнения миграций тем (25564)
  • Тип ввода целого числа для настройки сайта (25488)

Изменения UX

  • Исправление CSS спиннера видео (25770)
  • Тонкая настройка CSS кнопки воспроизведения (25754)

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

  • Ограничение длины параметров приглашений
  • Добавление ограничений скорости для загрузок
  • Генерация большего количества CSS категорий на клиенте
  • Предотвращение DoS из-за крупных действий персонала
  • Не раскрывать существование секретных подкатегорий
4 лайка