Примечания к выпуску Discourse 2.6.0.beta2

Новые функции в версии 2.6.0.beta2

:warning: Обновление занимает больше времени, чем обычно

Благодаря улучшениям производительности поиска, установка этого обновления займёт больше времени, чем обычно. Это затронет как обновления через Docker Manager, так и пересборки через SSH.

Параметр сайта default_categories_regular

По умолчанию Discourse показывает все категории всем пользователям (с учётом настроек безопасности категорий). Некоторые сайты предпочитают обратное — не показывать категории пользователям, пока они сами не выберут их. Чтобы упростить работу администраторам, использующим параметр mute all categories by default, они могут добавить категории в новый параметр default_categories_regular, чтобы они были видны пользователям по умолчанию.

Позвольте опытным пользователям пропустить функции «Новичок в Discourse»

Вы опытный пользователь Discourse? У вас больше значков «первый лайк», чем вы можете себе представить? Устали думать, что вам ответили, когда на самом деле пришло очередное уведомление о значке? Теперь вы можете отключить обучающий туториал от discobot для новых пользователей, а также значки «Новичок в Discourse» при первом входе.

Существующие пользователи могут отключить это через пользовательскую настройку «Пропустить советы по первому знакомству и значки для новых пользователей» на странице «Интерфейс».

Улучшенная поддержка тёмного режима

Предпочитаете белый текст на чёрном фоне? Устали вручную включать тёмную цветовую схему на каждом посещаемом сайте Discourse? Теперь Discourse поддерживает автоматический тёмный режим. Система автоматически определит ваши настройки системы и выберет светлую или тёмную цветовую схему при необходимости.

Администраторы могут включить эту функцию, выбрав цветовую схему тёмного режима с помощью параметра сайта default_dark_mode_color_scheme_id. Также администраторы могут добавить отдельные логотипы для пользователей тёмной темы через параметры сайта logo_dark, logo_small_dark и mobile_logo_dark.

Если у вас есть пользовательская тема, возможно, потребуется обновить её, чтобы использовать пользовательские свойства CSS для цветов. Без этого тема может быть несовместима с автоматическим переключением тёмного режима.

Поддержка IMAP для групповых почтовых ящиков

Улучшения для модераторов категорий

Модераторы категорий теперь ещё более мощные. Помимо первоначальной поддержки просмотра тем в очереди проверки для категории, модераторы категорий теперь могут помечать темы как решённые, закрывать темы, архивировать темы, перемещать сообщения между темами, редактировать описание категории и добавлять уведомления от сотрудников. Модераторы категорий также получили иконку щита на сообщениях в своих категориях, а их сообщения имеют CSS-класс для сайтов, которые хотят дополнительно настроить стиль.

Новый виджет для цитирования с возможностью обмена

Администраторы сайта могут включить дополнительные опции при цитировании, чтобы пользователи могли делиться цитатами во внешних источниках.

Ограничение пользователей, которые могут отправлять вам личные сообщения

Хотите получать личные сообщения только от избранных пользователей? Теперь вы можете указать, какие пользователи могут отправлять вам личные сообщения, через пользовательскую настройку «Разрешить отправлять мне личные сообщения только определённым пользователям» на странице «Пользователи». Только пользователи из списка (администраторы и модераторы всегда могут отправлять личные сообщения) смогут отправлять вам личные сообщения.

Если вы не хотите получать никаких личных сообщений (исключая сотрудников), отключите пользовательскую настройку «Разрешить другим пользователям отправлять мне личные сообщения» на странице «Уведомления».

Области действия ключей API

Ключи API теперь поддерживают необязательные области действия, ограничивая использование ключа только определёнными конечными точками. Ключи API также можно дополнительно ограничить конкретными темами или категориями. В будущем планируется добавить дополнительные области действия, а плагины также смогут добавлять новые области действия.

Существующие ключи API будут автоматически преобразованы в глобальные ключи. Поскольку глобальные ключи API позволяют выполнять любые действия на сайте, доступные администратору, мы настоятельно рекомендуем создавать новые ключи API с ограниченными областями действия, когда это возможно. Если у вас есть ключ API, который не работает с существующей областью действия, обязательно сообщите нам об этом на Meta в категории #feature.

Новая платформа переводов — Crowdin

Мы перешли с Transifex на Crowdin в качестве платформы локализации. Подробнее о причинах этого изменения читайте по ссылке: Switching from Transifex to Crowdin. О том, как переводить Discourse, см. по ссылке: Contributing translations to Discourse.

Устаревшие, расистские термины удалены из Discourse.

Цитата Махатмы Ганди:

Ваши убеждения становятся вашими мыслями,
Ваши мысли становятся вашими словами,
Ваши слова становятся вашими действиями,
Ваши действия становятся вашими привычками,
Ваши привычки становятся вашими ценностями,
Ваши ценности становятся вашей судьбой

Здесь, в Discourse, мы верим в создание открытого и инклюзивного программного обеспечения, которым всем будет комфортно пользоваться. Как и многие другие в технологической индустрии, мы работаем над удалением из нашего продукта языка, который не является открытым и инклюзивным. Даже если наше использование такого языка не имело расистского умысла, он имеет негативный исторический контекст, который мы не хотим поддерживать. Мысли становятся словами, слова — действиями. Это не те действия, которые мы хотим. Поэтому во всём Discourse мы убрали использование терминов master & slave, whitelist & blacklist и подобных. Теперь вы увидите термины primary & replica, allow list & block/deny list и т.д.

И ещё многое другое!

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

37 лайков

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

В эту бета-версию включено 3 исправления уязвимостей, о которых сообщили участники нашего сообщества и HackerOne.

  • Ошибка 413 для запросов GET, HEAD или DELETE с телом запроса.
  • Ограничение объема работы, которую может выполнить embed#topics.
  • Добавление заголовка content-disposition: attachment для загружаемых SVG-файлов.

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

Множество плагинов

  • Исправление ошибок
    • Мы исправили множество ошибок во многих наших плагинах

Code Review

  • Пользовательская тема для категорий Code Review

Graphviz

  • Обновление до версии 2.44 (было 2.40)

Knowledge Explorer

  • Добавлена клавиатурная комбинация
  • Перемещение маршрута в /docs

Akismet

  • Добавлена задача по очистке базы данных перед удалением плагина

Checklist

  • Удалена поддержка флажков, отличных от [ ], [x] и [X]

Docker Manager

  • Добавлена поддержка проверки совместимости плагинов

Encrypt

  • Добавлена настройка для автоматического включения шифрования
  • Расшифровка заголовков уведомлений перед отображением

Translator

  • Исправление уязвимости безопасности

Data Explorer

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

Chat Integration

  • Добавлена поддержка Microsoft Teams

Subscriptions

  • Плагин стал официальным
  • Разовая покупка товаров
  • Поддержка платежей 3D Secure
  • Новый стиль пользовательского интерфейса
  • Отмена платежей в конце периода подписки, а не немедленно
  • Отображение даты продления для активных подписок

Assign

  • Новая страница «Сводка назначений» для групп

Calender

  • Дополнительные функции и улучшения для событий

Дополнительные функции и исправления

Нажмите, чтобы развернуть

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

  • Обеспечена повторная обработка (rebake) сообщений при исправлении проблемы с отсутствием данных.
  • Автоматическое воспроизведение GIF-анимаций из Twitter в формате onebox.
  • Разрешено управление статусом «не беспокоить» для категорий и тегов через членство в группах.
  • Уведомления об изменении тегов для личных сообщений больше не отправляются.
  • Введены задачи для работы с устаревшими поврежденными загрузками.
  • Вкладка разрешений для категорий в группе.
  • Блокировка вибрации в Firefox для Android.
  • Использование ts_headline в PostgreSQL для подсветки заголовков тем в поиске.
  • Добавлен расширенный порядок сортировки в поиске.
  • Уведомление для плагина голосования.
  • Установка уровней уведомлений при добавлении в группу.
  • Версия 2.0 разбора результатов опросов (Poll breakdown).
  • Добавлен category_id в TopicViewWordpressSerializer.
  • Новый выходной узел (plugin outlet) для заголовка категории.
  • Приглашение по электронной почте в группы из модального окна «Добавить участника».
  • Добавлен раскрывающийся список скрытых категорий на странице /categories.
  • Отображение кнопки входа на странице ошибки, если пользователь не авторизован.
  • Клавиши g, j и g, k для перехода к следующей и предыдущей теме.
  • Разрешено использование HTML-элемента <picture> в сообщениях.
  • Возможность отображения диаграмм по дням/неделям/месяцам.
  • Разрешено указание произвольного адреса прослушивания Unicorn.
  • Поддержка конвертации изображений HEIF в JPEG.
  • Добавлен отслеживаемый фильтр в списки тем.
  • Отправка сообщения из предпросмотра мобильного композера.
  • Добавлены параметры запроса в журналы действий персонала.
  • Добавлена поддержка фильтра top на странице тегов.
  • Добавлена функциональность закладки «Удалить при ответе владельца».
  • Событие user_updated теперь срабатывает при изменении адреса электронной почты.
  • Улучшено выравнивание метаданных заголовка и обрезка текста с помощью CSS Grid.
  • Загрузка скрытых сообщений сегментами.
  • Разрешены атрибуты тега <video> для видео-гифок.
  • Добавлен поиск в списке закладок пользователя.
  • Введен глобальный лимит скорости для анонимных поисков.
  • Парсинг изображений в подписях к электронной почте.
  • Добавлена опция «самый маленький» в предпочтениях размера текста пользователя.
  • Добавлено действие композера reply_as_new_group_message.
  • Создание резервной копии только на SQL, если нет загрузок.
  • Опциональное пропускание всплывающего окна создания учетной записи для внешней аутентификации.
  • Sso_overrides_(email|username|name) для всех методов аутентификации.
  • Событие user_updated теперь срабатывает при изменении имени пользователя.
  • Настройка сайта для постоянного отображения определений категорий.
  • Возможность отключения дополнительной инъекции терминов в поиске.

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

  • Опция user_option может быть nil для новых пользователей.
  • Заголовки пользователей, полученные из переведенных названий значков, автоматически отменялись.
  • SiteSettings::LocalProcessProvider не работал в режиме мультисайта.
  • Настройка Default_tags_muted должна работать и для анонимных пользователей.
  • Отправка ЛС через флаг на удаленном сообщении.
  • Сообщение об ошибке при включении обязательной 2FA с использованием социальных сетей.
  • Удаление неиспользуемых тегов больше не удаляет теги, принадлежащие группам тегов.
  • Отмена лайка собственных сообщений при передаче прав собственности.
  • Опросы можно цитировать и загружать.
  • Отмена раннего завершения поиска в тестах.
  • Отображение метки, когда тема использует стандартную цветовую схему.
  • Не переопределять разметку логотипа при загрузке страницы в темном режиме.
  • Исправлены проблемы с CSS-переменными.
  • Метод group_show_serializer#is_group_owner теперь соответствует стандартам.
  • Всегда ждать выполнения промиса при загрузке темы.
  • Более эффективный и устойчивый виджет выпадающего списка (widget-dropdown body).
  • Добавлен компонент bookmark-list.
  • Регрессия иконки загрузки в композере из-за HEIC.
  • При удалении загрузок очищаются фон карточки и профиля.
  • Добавлен атрибут playsinline для GIF-анимаций из Twitter.
  • Разрешено Safari загружать и автоматически воспроизводить видео в сообщениях.
  • Рефакторинг сломал мастер (wizard).
  • Пропуск рендеринга видео из Twitter, если не найден соответствующий формат.
  • Ошибка при отсутствии iconList.
  • Замена iframe на <video> для видео из Twitter.
  • Клик по строке автодополнения категории.
  • Предотвращение ошибок на /tags, когда существует тег с именем constructor.
  • Оставляет пустую группу примеров в режиме TRAVIS.
  • Уведомление об автоматическом закрытии публикуется с системной локалью.
  • Выпадающий список добавления группы на мобильных устройствах был сломан.
  • Отложенная тема была сломана.
  • Контроллер application не используется карточкой.
  • DEV: Введен декоратор @bind.
  • Слушатель событий вставки (paste) был добавлен повторно вместо удаления.
  • Добавлены расположения скриптовых ресурсов в директивы CSP worker-src.
  • Задача Generate_topic_thumbnails бесконечно выполнялась для поврежденных изображений.
  • Обновление предпросмотра при клике на автодополнение.
  • Предотвращение конфликтов LockOn.
  • Перемещение queryParams в каждый контроллер обнаружения, а не использование общего.
  • Обновление не работало.
  • Сохранение якорей при переходах по постоянным ссылкам.
  • Удаление неиспользуемой категории «Другое».
  • Улучшены спецификации для обеспечения успешного пересмотра.
  • Генерация краткого содержания темы при перемещении сообщений в новую тему.
  • Убедитесь, что предпочтения пользователя по открытию внешних ссылок в новой вкладке работают для кратких описаний списков закладок.
  • Не требовать включения тегов для архивирования и удаления IMAP.
  • Разрешено плагину закреплять отсутствующие коммиты.
  • Ошибки AWS S3 не всегда включают сообщение.
  • Изменено имя метода контроллера в соответствии с его новым названием.
  • «Призрачный» тест с таймингами тем.
  • Разрешено модераторам выбирать ограниченные категории в качестве родительских.
  • Выбор цветовой схемы с нестандартной темой.
  • Подсветка заголовков PG для всех результатов поиска.
  • Ограничение генерации описания поиска на основе заголовков PG до 200 символов.
  • Попытка стабилизировать тест topic_tracking_state_spec.
  • Замораживание iOS/iPadOS при изменении уровня уведомлений в подвале темы.
  • Использование правильной настройки сайта при загрузке изображений.
  • invalidация кэша при обновлении цветов цветовой схемы.
  • Убедитесь, что «Загрузить больше элементов каталога» имеет URL с расширением .json.
  • Возврат 422 при создании тем с тегами без разрешения.
  • Включение защищенных URL-адресов медиафайлов при ссылке на загрузки сообщений.
  • Обновление цветов для плагина присутствия.
  • Уменьшенный размер шрифта заголовка для опубликованной страницы.
  • Включение имени и ID в суффиксы имен файлов стилей цветовой схемы.
  • Синхронизация количества обзоров при открытии гамбургер-меню.
  • Удаление persistedQueryParams, так как он должен работать из коробки.
  • Указание конфигурации при генерации tsquery с использованием ts_headline.
  • Обновление списка участников ЛС после приглашения.
  • Отсутствующая нижняя граница в настройках списка цветов select-kit.
  • Тесты предпочтений пользователя не всегда вызывали Pretender.
  • Остановка синхронизации состояния отслеживания при фильтрации списка.
  • Выбрасывание только правильных сообщений об ошибках "error".
  • Ошибки Pretender подавлялись.
  • Выбрасывание ошибок для поврежденных ответов Pretender в тестовом режиме.
  • Замена fullPath при переписывании URL-адресов /my/.
  • Обеспечение наличия у shadow атрибута last_posted_at перед сравнением с настройкой сайта.
  • Попытка вывести полезное сообщение об ошибке.
  • Отображение all_results, если текущая категория настроек не имеет результатов.
  • Отключение одновременной миграции для multisite:migrate.
  • Не запускать seeds, если миграция мультисайта не удалась.
  • Краткие описания длиной более 999 символов не поддерживаются.
  • Карта тем неправильно подсчитывала действия назначения.
  • Отображение сообщения «Запрещено членам группы» на мобильных устройствах.
  • Переписывание URL-адресов /my/ должно работать и на сайтах в подкаталогах.
  • Разрешено изменение уровня уведомлений группы пользователя.
  • Предыдущее исправление внесло не то и было сломано :frowning:
  • Исключение общих черновиков из дайджестов.
  • Отсутствует текущее значение иконки flair в интерфейсе управления группой.
  • Загрузка базовой цветовой схемы, когда стандартная тема не установлена.
  • Проверка выбора аватара с SHA1.
  • Исправление архива IMAP и унификация кода почтового ящика списка групп.
  • Неподобающий раздел флагов Discobot.
  • Ошибка при совместном использовании вне темы.
  • Получение правильного выбираемого аватара по URL.
  • Исключение методов DELETE из недопустимых запросов с телом.
  • Сброс параметра запроса max_posts.
  • Уважение параметров запроса для latest.rss.
  • Установка mailing_list_mode в false при отписке от всего.
  • Уникальность обновления электронной почты IMAP по группам и незначительные улучшения.
  • Удаление ошибки в консоли в тестовом режиме.
  • Должно разрешать не-ASCII суффиксы для страниц категорий.
  • Сброс параметра запроса filter при клике на элемент навигации.
  • Сохранение имени категории в URL при фильтрации.
  • Разрешение использования c как тега.
  • Определение s3_helper в задаче EnsureS3UploadsExistence.
  • Переименование метода закладки delete_when_reminder_sent? во избежание конфликта с AR.
  • Добавлена защита при удалении автоматического удаления закладок сообщений.
  • Убедитесь, что закладка темы пользователя синхронизирована при автоматическом удалении закладок.
  • Разрешено playsinline для видео в сообщениях.
  • Убедитесь, что правильная локаль установлена во время ответов RenderEmpty.
  • Уменьшена высота диаграмм.
  • Предотвращение переопределения базового сериализатора группы сериализатором group show.
  • Устаревание вычисляемого свойства.
  • Страница: changed иногда сообщала неверный URL.
  • Возврат перенаправлений групп.
  • Обновление onebox до версии 2.0.1 для исправления приоритета движка.
  • Обработанный фрагмент сырого текста в Topic.similar_to.
  • Обработка случая, когда Post#raw пуст в Topic.similar_to.
  • Улучшение Topic.similar_to с лучшими совпадениями Topic#title.
  • Улучшение миграции столбца allowed_path.
  • Решение проблемы, когда удаленные спам-темы, помеченные как «Не спам», не восстанавливались.
  • Избежание ошибки проверки при удалении пользователей с заблокированным уровнем доверия.
  • Использование заголовка темы для заголовка в head опубликованной страницы.
  • Уменьшение количества терминов, вводимых для лексемы хоста.
  • Улучшение регулярного выражения для сопоставления лексемы версии.
  • Не вводить дополнительные термины для лексемы версии.
  • Добавлен перевод уведомления о реакции.
  • Резервирование ID для уведомлений о реакциях.
  • Использование терминологии «allowlist» и «blocklist».
  • Тесты, использовавшие старые пути.
  • Загрузки не тестировались должным образом.
  • Передача siteSettings в большем количестве мест.
  • Добавлена глобальная переменная enable_email_sync_demon и отключен демон EmailSync по умолчанию.
  • Добавлен метод strip_secure_urls в GroupSmtpMailer.
  • Не показывать вкладку «Электронная почта» для настроек группы, если не включены IMAP + SMTP.
  • Тесты для reindex_search_spec проходят независимо от seed.
  • Отображение правильного статуса на странице отписки.
  • Перемещение констант и переводов для настроек автоматического удаления закладок.
  • Восстановление навигационной панели в списке тем тегов.
  • Включение разрешенной локали в анонимный ключ кэша.
  • Сделать set_locale действием around_action, чтобы избежать утечки между запросами.
  • Улучшение стиля электронной почты для блоков кода.
  • Удаление трюка iOS для предотвращения прокрутки при фокусировке на вводе.
  • Обзоры, автоматически скрытые доверенным флагманом спама, всегда должны иметь достаточный вес.
  • Удаление границы у плейсхолдера миниатюры YT.
  • Применение трюка предпросмотра видео только для Safari.
  • Добавление системных шрифтов в мастер.
  • Разрешено пользователю восстанавливать/удалять сообщение, если он может просмотреть тему.
  • Опечатка в NotificationsController#index, не обнаруженная тестами.
  • Игнорирование удаленного столбца закладок delete_when_reminder_sent.
  • Остановка двойного добавления window.location.origin к URL-адресам медиафайлов.
  • Тест для fillGapBefore.
  • Удаление username_lower из административного сериализатора.
  • Сохранение проверки by_users в инвентаре S3.
  • Удаление синонимов в темах, если целевой тег уже добавлен.
  • Улучшение логики инвентаря S3.
  • Ошибка «Неопределенный метод» для класса nil в серверах дляking.
  • Присвоение эмодзи ширины/высоты для предотвращения предупреждения о ленивой загрузке.
  • Обработка режима только для чтения PG в Auth::DefaultCurrentUserProvider.
  • Не выбрасывать ошибку при сбое добавления в кэш в режиме только для чтения.
  • Событие before upload срабатывает после сохранения и перед загрузкой, чтобы убедиться, что загрузка действительна.
  • Пользователи должны иметь возможность удалять свои собственные сообщения в очереди.
  • Тесты фокусировки ненадежны в qunit.
  • Наша тестовая сборка highlight.js была сломана.
  • Использование сырого jQuery в тестах.
  • deleted — это вычисляемое свойство темы.
  • Отчет перезаписывал вычисляемое свойство (CP).
  • Тесты category-drop были сломаны и перезаписывали CP.
  • Перезаписанные вычисляемые свойства.
  • Отсутствующая иконка-заглушка (favicon) в тесте.
  • Listing тем с muted смешанными тегами.
  • Отсутствующий трассировка приложения в цепочке логгеров.
  • Неправильное перехватывание PG::ServerError.
  • Правильный счетчик потока при загрузке большего количества сообщений.
  • Меньше сломанных путей к изображениям в тестах.
  • Не использовать расширения прототипа, такие как .observes.
  • Тесты, связанные с датами, выводили предупреждения.
  • passwordRequired — это вычисляемое свойство.
  • Тесты опросов перезаписывали несколько вычисляемых свойств.
  • Больше запросов 404 для изображений в тесте.
  • Ошибка в тестовом режиме с отсутствующим topic.
  • Не загружать изображения, которых не существует в тесте.
  • Всплывающая подсказка больше не используется.
  • Discourse.Site устарело.
  • Отображение фоновых изображений для обоих форматов суффиксов.
  • Отсутствующий заголовок при вставке гиперссылок.
  • Исправления поиска по закладкам.
  • Переиндексация сообщений при изменении Topic#title или Category#name.
  • Возврат заголовка темы в choose-topic.
  • Обновление иконки meh-o до far-meh.
  • Убедитесь, что используются одни и те же единицы измерения при сравнении размера миниатюры.
  • Меньше ошибок 404 в JS-тестах.
  • Больше ошибок записывается в тестах.
  • Устаревание: usernames теперь recipients.
  • Удаление еще нескольких устанавливаемых вычисляемых свойств.
  • Устаревание: usernames теперь recipients.
  • Перезапись еще большего количества вычисляемых свойств.
  • Удаление установки вычисляемого свойства из теста гамбургер-меню.
  • Не использовать jQuery напрямую в тесте.
  • Установка вычисляемых свойств в тестах.
  • Удаление устареваний i18nPrefix.
  • Удаление user_deleted, когда персонал восстанавливает сообщение.
  • : Событие user_updated срабатывает только если адрес электронной почты изменился после создания пользователя.
  • Поиск in:title должен искать только по первым сообщениям тем.
  • Позиция кнопки массового выбора на странице поиска.
  • Подсчет новых и непрочитанных учитывает скрытые категории.
  • Предотвращение генерации миниатюр, если изображение слишком большое.
  • Применение обходного пути предпросмотра видео для iOS.
  • Регрессия в генерации защищенных URL-адресов, продолжение 36bad0c.
  • Предзагрузка метаданных для аудио/видео при включенном защищенном медиа.
  • Трюк для загрузки предпросмотров видео в Safari.
  • Ошибка на единицу-слэш в topic.notifications.reasons.
  • Добавлен заголовок noindex на страницу сводки пользователя.
  • Не перезаписывать вычисляемое свойство maxlength.
  • loaded — это CP и не может быть перезаписано.
  • Отключение ошибок исходных карт route-recognizer в режиме разработки.
  • Отключение предупреждения исходных карт ember-qunit.
  • Добавлен исходный код popper.
  • Правильная загрузка исходного кода ember в режиме разработки.
  • Нельзя устанавливать url для тем, он вычисляется из суффиксов.
  • Ошибка с currentCategory.
  • FilterPlaceholder — это вычисляемое свойство.
  • topic.details — это не обычный JS-объект.
  • Разрешить компиляцию highlightjs-worker.
  • Игнорирование длины документа при поиске при ранжировании по релевантности.
  • Предотвращение перенаправления, если кнопка масштабирования изображения находится внутри ссылки.
  • Поиск по релевантности может возвращать неверный номер сообщения.
  • Добавлена защита на случай, если тема не установлена.
  • Исправление URL-адресов профиля пользователя в представлении краулера /about.
  • Удаление параметров запроса из URL-адресов при индексации для поиска.
  • Ввод дополнительных лексем для лексемы хоста.
  • Поиск по полным URL-адресам не работал.
  • Улучшения для импорта ванили.
  • Убедитесь, что агрегированный поиск показывает сообщение с наивысшим рейтингом.
  • Различные улучшения интерфейса модального окна закладок.
  • Неправильное описание поиска при использовании расширенных фильтров поиска take2.
  • Получение только правильного заголовка свертки в электронных письмах.
  • Не удалять noopener из onebox.
  • Не награждать «Нового пользователя месяца» в неправильном месяце.
  • Удаление иконок социального обмена из частных контекстов.
  • Проверка существования последнего автора перед использованием.
  • Установка атрибутов html lang/xml:lang в электронных письмах.
  • Пропуск шепчущих сообщений при обновлении счетчика лайков темы.
  • Небольшое уменьшение фиктивной задержки пользователя Discobot.
  • Регрессия панели последнего посещения.
  • Разрешена регистрация, когда провайдер аутентификации не предоставляет адрес электронной почты.
  • Замена ссылок на удаленные загрузки в обзорах плейсхолдером.
  • Не отображать включенные поля ввода, когда имя пользователя/имя заблокировано.
  • Синхронизация поведения клиента и сервера для поиска хэштегов категорий.
  • Иконка закладки и атрибуты в меню сообщений не обновляются при клике на уведомление.
  • Миграция topic_users.bookmarked в false, когда оно неверно true.
  • Вывод теста, связанный с Discourse::VERSION.
  • Нестабильный тест.
  • Нестабильные тесты.
  • Неправильное исправление для сбоев приглашений, когда не выбрана группа.
  • Приглашения, когда не выбрана группа.
  • Перехват всех видов исключений при обработке электронной почты.
  • Разрешение коротких URL-адресов в cook-text.
  • Принудительное чтение роли ActiveRecord, если Redis недоступен, часть 2.
  • Принудительное чтение роли ActiveRecord, если Redis недоступен.
  • Не отправлять системные письма приостановленным пользователям.
  • Устаревание getURL.
  • Кнопка «Отправить все приглашения повторно» не работала как ожидалось.
  • Ограничение имени закладки 100 символами и усечение существующих имен.
  • Остановка обновления столбца закладки из TopicUser.update_post_action_cache.
  • Неправильное описание поиска при использовании расширенных фильтров поиска.
  • Отключение ключей безопасности одновременно с 2FA TOTP.
  • Предлагать отключение 2FA только администраторам.
  • Ярлык закладок ведет к новым закладкам с напоминаниями.
  • Не подсвечивать большие блоки кода.
  • Установка значения по умолчанию для поля результата опроса.
  • Перенаправление пользователя на URL с правильным суффиксом категории.
  • Обеспечение согласованности порядка категорий.
  • Добавление правил CSS для таблицы normalize.
  • Исправление состояния гонки при разрешении хэштегов тегов и категорий.
  • Улучшение поиска хэштегов категорий.
  • Улучшение поиска хэштегов категорий.
  • Под-под-категории могут упоминаться, используя только два уровня.
  • Удалена поддержка хэштегов трех уровней.
  • Установка значения по умолчанию для поля результата опроса.
  • Ошибка nil в массиве при генерации миниатюр темы.
  • Обработка случая, когда загрузка исчезает во время уменьшения размера.
  • Не перерисовывать виджет выпадающего списка при всех кликах.
  • CookText может исчезнуть до разрешения промиса.
  • OptimizedImage#filesize.
  • Сделать Email::Styles работать с HTML-документами, а не фрагментами.
  • Обеспечение отображения секунд при использовании с датами.
  • Обновление CSS normalize с 3.0.1 до 8.0.1.
  • Пропуск скрытых сообщений при генерации канонического URL.
  • Загрузка существующего изображения как настройки сайта.
  • Загрузка изображения как настройки сайта.
  • Автодополнение эмодзи не срабатывает правильно.
  • Увеличение времени DOWNLOAD_URL_EXPIRES_AFTER_SECONDS до 5 минут.
  • Отрицательные значения лимита не должны вызывать ошибку 500.
  • Фильтрация уведомлений прочитанных/непрочитанных на стороне сервера.
  • Удаление связанных данных поиска, когда запись была удалена.
  • Возврат CDN-URL для загрузок, если доступен.
  • Поддержка корневых путей, опускающих завершающий слэш и имеющих параметры запроса.
  • Поиск не учитывал мультисайт.
  • Скрытие опции publish_read_state от пользователей без прав администратора.
  • Иногда не весь вывод psql записывался во время восстановления.
  • Emoji_autocomplete_min_chars не работал, когда не 0.
  • Обновление полей темы при обновлении из ThemesInstallTask.
  • Загрузки не могут быть сопоставлены из-за того, что атрибут элемента cook-text равен null.
  • Идентификация URL-адресов тем без суффиксов повсюду.
  • Исправление логики сравнения версий при сравнении стабильной версии с бета.
  • Сериализация пустого массива, если нет предложенных тем.
  • Seed должен запускаться перед оптимизацией иконок сайта.
  • Published-page-header должен быть соседом published-page-body, а не родителем.
  • Сломанные спецификации.
  • Удаление путей из robots.txt в пользу заголовка noindex.
  • Совпадение триггеров Discobot с обработанной версией.
  • Неверные URL-адреса не должны ломать store.has_been_uploaded?.
  • Избежание маркировки уведомлений как просмотренных в режиме только для чтения.

Изменения UX

  • Улучшенная формулировка, когда нет неиспользуемых тегов для удаления.
  • Помощь пользователям в понимании значения каждой области действия.
  • Использование одного и того же форматирования для биосов карточек пользователей и групп.
  • Предзагрузка списка скрытых категорий для предотвращения задержки рендеринга.
  • Обеспечение переноса результатов поиска на мобильных устройствах.
  • Установка silence_reason с использованием системной локали.
  • Обновление цвета фона заголовка в веб-вью мобильного приложения.
  • Обеспечение загрузки CSS-переменных в стиле мастера.
  • Рефакторинг стиля кнопок «назад/вперед» месяца в pikaday.
  • Рефакторинг тени при наведении в лайтбоксе.
  • Единые стили фокусировки для полей ввода/текстовых областей композера.
  • Разрешено навигация по выпадающему списку виджета с помощью клавиш Tab и Enter.
  • Исправление отступов предпросмотра композера на мобильных устройствах.
  • Последовательное уменьшение композера при нажатии «Готово» в iOS.
  • Улучшение выравнивания и согласованности на странице полного поиска.
  • Исправление отступов кнопки обмена цитатой.
  • Улучшенное сообщение об ошибке, если модератор не имеет права приглашать в группу.
  • Не показывать опцию приглашения в группу, если модератор не является владельцем ни одной группы.
  • Исправление отсутствующей иконки при слиянии выбранных сообщений.
  • Использование group-chooser в модальном окне приглашения.
  • Исправление макета для длинных заметок к закладкам.
  • Упрощение редактирования шаблонов электронной почты за счет наличия всегда значения по умолчанию.
  • Добавление ссылки на настройки электронной почты пользователя в административном представлении.
  • Удаление дополнительного пробела, добавляемого элементами управления изменением размера изображений в предпросмотре композера.
  • Восстановление границ таблицы.
  • Скрытие кнопки входа во время создания учетной записи с внешней аутентификацией.
  • Подавление раздела «В ответ на» в электронных письмах по умолчанию.
  • Усечение длинных названий значков в мобильной карточке пользователя.
  • Добавление кнопки «Войти» на странице ошибки 403, если пользователь не авторизован.

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

  • Одновременное удаление индекса idx_regular_post_search_data.
  • Удаление idx_regular_post_search_data во время миграции.
  • Улучшение производительности миграции post_search_data.
  • Обеспечение минимального размера транзакции.
  • Добавление частичного индекса для поиска, не являющегося ЛС.
  • Предпочтение соединений подзапросам для User#private_posts_for_user.
  • Удаление лишнего подзапроса в поиске.
  • Переключение на upsert в ActiveRecord в SearchIndexer.
  • Более быстрый расчет необходимых ответов на продвижение TL3.
  • Улучшена производительность задачи notify_reviewable за счет выполнения только 1 запроса.
  • Ограничение символов, используемых для генерации заголовка для описания поиска.
  • Использование заголовков PG для генерации описания и подсветки в поиске.
  • Замена ссылок на видео и аудио в описании поиска во время индексации.
  • Оптимизация ActionView::Helpers::TextHelper#excerpt.
  • Освобождение записей post_upload, когда загруженное изображение удалено.
  • Перемещение регулярного выражения URI в GroupSearchResults.blurb_for в константу.
  • Удаление одного лишнего вызова Redis при поиске.
  • Предзагрузка данных инвентаря S3 для кластеров мультисайта.
  • Избежание парсинга Post#cooked с помощью Nokogiri для каждого поиска.
  • Объединение avatar_lookup и primary_group_lookup в user_lookup.
  • Уменьшение размера полезной нагрузки поиска за счет удаления неиспользуемых атрибутов темы.
  • Перемещение highlightjs в фоновый рабочий процесс и добавление кэша результатов.
  • Подсчет участников в представлении Topic_view: не отправлять список ID обратно.
  • Кэширование данных сводки пользователя.
  • Добавление условия user_id, чтобы можно было использовать другой индекс в запросе.
  • Загрузка закладок темы для пользователя в user_post_bookmarks.
  • Удаление восстановления post_upload в ежедневной задаче EnsureS3UploadsExistence.
  • Не включать информацию о миниатюрах в полезную нагрузку списка тем по умолчанию.
  • Использование номера сообщения для создания канонического пути в мега-темах.
  • Обновление etag только при изменении.
  • Рефакторинг декоратора лайтбокса с использованием querySelectorAll.
  • Более эффективная проверка видимости модального окна.
  • Исключение image_url и thumbnails из SearchTopicListItemSerializer.
  • Кэширование всех метаданных в течение 60 секунд.
  • Мемоизация триггеров cooked.
  • Остановка добавления дополнительных тем в поиск, когда это не нужно.
25 лайков