Discourse 2.3.0.beta6 Release Notes

New features in 2.3.0.beta6

Add page for all group membership requests

There’s also news regarding groups. Now we have a dedicated page to handle requests to join groups:

User and group cards on mobile

The ability to open user cards on mobile with a tap on the user avatar has been now implemented in the Discourse core. At the same time the theme component Mobile user-cards has been deprecated.

Add every month / 6 months options to email digest

The frequency with which to send email digests has two new entries. Now you can choose to send the summary emails monthly or even every six months.

Allow categories to be prioritized/deprioritized in search

This is a request that has been made to us many times. It is now possible to increase or decrease (even exclude) the priority of a category in site searches from the settings of each category:

Custom colors for default letter avatars

We want to make Discourse as customizable as possible which is why we introduced the new site setting restrict letter avatar colors. It will allow site owners to choose the background colors that the default avatars can use.

Add more granular user option levels for email notifications

This feature migrates email user options to a new data structure:

  • email_messages_level , with options: always , only_when_away and never (defaults to always )
  • email_level , with options: always , only_when_away and never (defaults to only_when_away )

The respective default site settings have also been migrated.

Exposing a way to add a generic report filter

We have added a filter in the Top Uploads report that will allow you to filter the attachments based on the extension and sort them by size and type of extension

Enforce two-factor authentication

Another addition to the 2 Factor Authentication feature. The new site setting enforce second factor will allow site admins to request the 2FA for all users or just for staff.

Support custom icons in themes

This feature enables developers to add their own custom icons in their themes. To do so, simply add an SVG sprite file in your assets, and reference it in about.json, like so:

"assets": {
    "icons-sprite": "assets/icons-sprite.svg"

The sprite file should contain a list of <symbol> elements with ids, each of which will be automatically registered and added to the site’s icon set.

This function also automatically registers any custom icons added via plugins.

Add tag classes to topics in topics list view

This feature allows you to select and then customize only the topics based on tags. This improvement has been discussed in Highlighting certain topics in topic list view.

Delete accounts that have never participated, are trust level 0 and have not been seen in 2 years

Discourse now includes a new site setting called clean up inactive users after days this is set 730 days by default.

Once a day Discourse will find all user accounts that

  • Never posted anything on Discourse

    • If you posted something and then deleted it you will not be eligible for clean up.
  • Have not been seen for clean up inactive users after days

  • Are trust level zero

This change is in place so Discourse default protects end users and removes emails of completely unused accounts.

If you wish to disable the feature, set clean up inactive users after days to high number.


Even more!

But wait, there’s more! We do our best to highlight new features and changes for you, but there’s always too many changes to detail. For a full list of new features, bug fixes, UX improvements, and more, be sure to review the Additional Features and Fixes listed below.

Security Updates

This beta includes 1 security fix for issues reported by our community and HackerOne.

  • Properly validate return URL for SSO

Plugin improvements

Assign Plugin

  • FIX: adds auto-route to avoid losing queryParams on successive clicks
  • FIX: ember 3 support
  • FIX: Check if topic is assigned before assigning again

Solved Plugin

  • FIX: Staff users can accept posts in deleted topics
  • FIX: Include the serializer fields only if plugin is enabled

Discourse Oauth2 basic

  • FEATURE: Add site setting to override user email address during login

Akismet Plugin

  • FIX UI and remove #target calls
  • FEATURE: Hide the old akismet review queue when the reviewable api is present
  • FEATURE: Use new plugin API to attach ReviewableAkismetPost type
  • FIX: Added some tests. Tested and fixed some corner cases
  • FEATURE: Calculate system user score
  • FIX: Fetch only one ReviewableAkismetPost
  • FIX: Avoid breaking the build when the reviewable API is not present
  • FIX: ReviewableAKismetPostSerializer needs to be loaded conditionally for backwards compatibility
  • FIX: Add missing reviewable_serializer require_dependency

Canned Replies plugin

  • FIX: Exit initializer earlier when plugin is disabled
  • FIX: ember 3 support
  • FEATURE: Add Ability to Give Groups Access to Canned Replies

Voting Plugin

  • FEATURE: Allow ‘Votes’ as default topic sort order
  • FIX: Don’t use number 1 for quantity one in localization because french and few other languages will use ‘one’ key for zero quantity.

Ad Plugin

  • FIX: wrong size setting being used for post-bottom desktop

Spoiler Alert

  • FIX: Reduce icon jitter in Safari. Sometimes a blurred image would cause SVG icon jitter on scroll, this hack that forces GPU acceleration seems to fix it

Staff Notes

  • UX: Display staff notes popup instead of redirecting to user page

Additional Features and Fixes

Click to expand

New Features

  • Add Armenian language
  • Unconditionally update Topic updated_at when posts change in topic
  • Change layout of escaped_fragment_ topic page to table one like live discourse
  • Allow auth providers to define specific icons
  • Unified popover implementation
  • Implements a Well-Know URL for Changing Passwords
  • Improve avatar education link
  • Add scheduled job to purge expired ignored users
  • Locale support for seeded categories and topics
  • Post notices become old after 14 days
  • Clean up inactive users
  • Display notification count in title for logged in users
  • Adding early relase unicode emojis
  • Allow users to fetch a customized manifest on PWA install
  • Updates emoji to latest 12.0 version
  • Add IgnoredUsersSummary daily job
  • Enable experimental Badging API
  • Fetch email from auth provider if current user email is invalid

Bug Fixes

  • Moment.js uses a more specific language code for Armenian
  • Upload.migrate_to_new_scheme undefined error when external image fails to download.
  • Switching composer action shouldn’t trigger abandon popup
  • Re-download hotlinked optimized images
  • Download local images, even if download remote is disabled
  • Staff action records now also accepts action_name as filter
  • Corrects link to moderators_activity report
  • Failed to show details about some bounced emails
  • Check can_create_tags on mini-tag-chooser as tag-chooser
  • Better styling with popover
  • Uses aria-label instead of title as it’s useless with popover
  • Flaky test in reports
  • Send only one post request when changing topic notification level
  • Forcing permissions of seeded categories shouldn’t fail
  • Post blurb incorrect when search contains a phrase match.
  • Destroy optimized image if attempting to migrate to new scheme fails.
  • Skip validation when saving in Upload#migrate_to_new_scheme.
  • More explicit grid layout
  • Remove duplicate site settings and add unique index
  • Make migration resilient against duplicate site settings
  • Dry run broken for uploads:migrate_to_s3.
  • Fixed changing composer mode escaping title
  • Onebox discourse user not respecting enable names
  • Always include custom fields in CategorySerializer
  • Set text for titles in custom push notifications
  • Prevent sending multiple summary emails due to Sidekiq delays
  • Clear unsaved groups when switching user
  • Prevent critical emails bypassing disable, and improve email test logic
  • Destroy OptimizedImage record even if Upload record is invalid.
  • Handle BBCode in migrate_to_s3 task as well.
  • Suppress autocomplete on group filter
  • Rebake lightbox and use short upload urls in migrate_to_s3.
  • Add sassc-rails for plugins using sprockets to compile scss
  • Discourse client should know about Logster (simpler approach)
  • Respect the disable_emails=non-staff site setting correctly
  • Topic with no tags
  • Upload watched words should use UTF-8
  • Destroy optimized images in upload:migrate_to_s3 rake task.
  • Do not update last seen notification ID when forced to enable 2FA.
  • Fixed failing discourse-prometheus-alert-receiver plugin specs
  • Don’t override .is-hidden on mobile
  • Staff should be allowed to ignore users
  • Do not show post notices for bots.
  • Disable buttons when loading more results on full page search.
  • Use same weights for calculating rank and searching for posts.
  • Search spinners hides all results when loading more.
  • Improve UX for second factor enforcement.
  • New account modal too narrow in Safari
  • Login modal too narrow in Safari
  • Use default frame size for Instagram login
  • Don’t push browser state if navigated from root url to home page url and vice versa
  • Don’t redirect incorrectly after full screen login
  • SES webhook wasn’t parsing the message
  • Reindex post for search when post is moved to a different topic.
  • Don’t ignore category in search when using category filters.
  • Seed data classes couldn’t always be found
  • Windows has no country flags
  • Show ‘emails disabled’ to staff users when disabled for non-staff
  • Fixed edit category description redirecting without saving
  • Prettier for lightbox.js
  • Only change content of meta tag
  • Prettified code
  • Made reorder more convenient by clamping the entered number
  • Fixed reorder categories by number not working correctly
  • Respect permalinks starting with “/category”
  • Don’t check system uploads in migrate_to_s3 rake task
  • Bumps emoji cache version
  • Brings back [+ New Topic] btn from share-popup post action
  • Set default returning_users_days to 120.
  • Prevents overflow on emoji picker on mobile
  • Emoji sets were inverted due to unicode order change
  • Use correct emojis for Twitter and Facebook
  • Ensures add/remove btn is shown if you can only invite
  • Use correct sprite path for non-local setups
  • Do not trigger post alerts for empty posts.
  • Update user options in rake task
  • Prevents duplicate error on instragam migration
  • Images:compress rake task
  • Skip create_post_notice when importing
  • Prevents quote shortcut key to show in composer before quote
  • Migrate old null override for upload site settings.
  • Outsourced erb part from emoji.js.es6
  • Topic filters persist when navigating to home page
  • Migrate old blank override for upload site settings.
  • Ruby bench script no longer working
  • Allow banner topic posts to be moved to regular topic (and vice versa)
  • Backwards compatibility for SiteSetting.queue_jobs
  • Failed to detect existing category permalink
  • Optimise querying Post’s serializer ignored attribute
  • Upload#migrate_to_new_scheme should not migrate system uploads.
  • StaticController#favicon reads from disk when using local store.

UX Changes

  • Prevent images and lightboxes from extending outside blockquotes
  • Hide link to incoming email when there is no bounce key
  • Improve mobile search
  • Show spinner during text replacement
  • Inherit badge icon color
  • Indent category badges to indicate sub-categories.
  • Add more tag classes to topic view
  • Add padding to hidden content link
  • Show if webhook is disabled
  • Enabled sorting for more columns in admin user list
  • Better emoji escaping for topic title
  • Use a less technical term (“replace”) for reseeding
  • Improve user profile header layout on mobile
  • Hide mobile header notification badges if title is visible
  • Set color to gray for old post notices.
  • Order categories based on latest activity for all page styles
  • Don’t reload page after saving settings when editing category.
  • Show spinner when searching on full page search.
  • Add tag classes to topics in topics list view
  • Enabled pinch to zoom for lightbox
  • Add instructions to update email when sso_overrides_email is enabled
  • Update brand color, some login adjustments
  • More height for when there are recently used
  • Order categories based on recent activity when using categories_and_latest_topics layout


  • No need to select entire group just to find name
  • No need to select the full theme just to get color scheme
  • Add index to speed up scopes for UserSecondFactor.
  • Add index to speed up User#number_of_flagged_posts.
  • Reduce number of queries and size of payload when searching.
  • Avoid loading ActiveRecord objects when checking for second factor.
  • N+1 queries admin users pages.