Discourse 2.3.0.beta3 Release Notes

New features in 2.3.0.beta3

:warning: Rebuild required. The rebuild will pick up on important NGINX changes required for letter avatar caching, and must be completed if the site has not be been rebuilt from the command line in the last 2 weeks.

Theme improvements

Discourse now supports editing settings and translations via the editor on theme-creator.discourse.org. When creating/editing a theme, users can access the settings and translations tabs right from the editor, no need to edit the theme locally.

Theme creator also now supports editing all theme metadata information, including license URLs, authors, and supported Discourse versions. Specifying supported versions allows theme creators to prevent themes from being used on Discourse versions which are missing support for theme features due to being too old, or from running on newer versions which may have breaking changes. If the Discourse version is outside the support versions for a theme, the theme will automatically be disabled.

Smooth J/K navigation when using keyboard

Discourse supports many keyboard shortcuts. Type ? when browsing Discourse to see them. For those that like to read Discourse with just the keyboard, navigating between posts via j/k is indispensable. However, this navigation didn’t work well with long posts, as it would jump to the next (or previous) post, even if the entire post didn’t fit onto your screen.

Now, j/k will scroll within long posts, so you can read the entire post before jumping to the next one. For complete details and to provide feedback, see Smooth J/K navigation when using keyboard.

Improved image resizing discoverability

When large images are uploaded, Discourse automatically scales them to fit within the post stream. Users can click on the image to view the image full size, and to download it.

Sometimes, users do not want images to take up the full-width of the post stream, so Discourse supports resizing images. To do so users must add ,xx% to the image dimensions. To make this more discoverable, users can now resize images to common percentages (100, 75, & 50%) by hovering over the image preview and selecting the size they want. To make more specific adjustments, users can then edit the raw image markup.


Via markup, you can also use pixels to resize to a specific width or height.

Example (width at 200px, auto-height):

Example (height at 200px, auto-width, useful especially for multiple same-height images side-by-side):
![image|655x499,x120](upload://pXpXLe1RRYOaNVm8LT5ncp03Jo4.jpeg) ![image|655x499,x120](upload://pXpXLe1RRYOaNVm8LT5ncp03Jo4.jpeg)

Merge share and invite actions together

Want to share a topic or invite a user? The share and invite actions have been merged to a single modal. Select the “:link: Share” button from the topic footer to access the share/invite modal. This change also adds support for inviting users on mobile, as topic invites were previously a desktop-only feature.


iPad composer improvements

Unfortunately Apple does not provide support for JavaScript to detect if a hardware keyboard is attached, or if a software keyboard is visible. For this reason, Discourse has to assume there’s a software keyboard visible. For more details, see iPad with external keyboard connected can't see post when replying, and check out the bug report filed with Apple: 176205 – On webkit ios there is now way for accounting for virtual keyboard height.

However, we’ve continued to make changes to improve Discourse usage on an iPad, despite the limitations. In this beta we added a new user preference which allows users to specify that a physical keyboard is connected. We also added support for using Alt + Enter to submit a post, and for focus to be set in the composer textarea.


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 2 security fixes for issues reported by our community and HackerOne.

  • Bypass long GET requests
  • Do not leak private group names.

Plugin improvements


  • Bug fixes
  • Faster event expiration

WP Discourse

  • Improve copy for plugin settings
  • Don’t allow comments to be viewed for drafts
  • Don’t return Discourse comments from Rest Route for password protected posts

Code Review

  • Bug fixes


  • Remove duplicated instructions, add link to meta topic.


  • Add multisite support for sidekiq paused metric


  • Bug fix: Don’t use topic reply count as answer count in ‘Question’ schema


  • Bug fix: Display top menu item ‘Votes’ only if the plugin is enabled

Canned Replies

  • Increase width of edit modal, limit height


  • Remove duplicated instructions, add link to meta topic.

Ad plugin

  • Bug fixes


  • Bug fix

Docker Manager

  • Force docker base image update
    • The rebuild will pick up on important NGINX changes required for letter avatar caching
  • Support API requests

Additional Features and Fixes

Click to expand

New Features

  • Import script for AnswerBase
  • Introduce Ignore user
  • Allow wildcard in allowed_user_api_auth_redirects setting
  • Add localized timezone names
  • Mini_sql upgrade
  • Add f and t search shortcuts for first post / title
  • Add ability to clear previously set mobile_view with mobile_view=auto
  • Allow moderators to change topic timestamps
  • Add missing autocomplete suppressions
  • Improve handling of backup storage errors
  • Do no search for groups unless a term is specified
  • Autocomplete usernames early in topic based on participation
  • Bump onebox dependency
  • Trigger an event after a backup restore
  • Always update docker image for dev prior to launching
  • Allow blocking emojis
  • Trigger user profile create and update event
  • Add APIS for unpausing all sites
  • By default exclude thumbnails from backups
  • AWS SNS bounce notifications webhooks
  • Setting for excluding optimized images from backups
  • Makes create-account userfields using dropdowns accessible
  • Setting for compression level of upload in backups
  • Calculate CSP based on active themes
  • Color-palettes component
  • Hidden site setting to always include topic excerpt

Bug Fixes

  • Allow underscore and dash in username search
  • Prevent default event and stop bubbling up when card popup is closed in mobile
  • Don’t add bottom padding for avatars in composer preview
  • Staff/admin shouldn’t be able to create uncategorized topics
  • When posts are moved to a message then small action post should not be publicly visible
  • Only profile owner can see links to watched/tracked/muted topics
  • Shows invite panel on mobile from topic footer buttons
  • Styling for resizable image wrapper in editor preview
  • Polls acceptance tests
  • Preload poll voters
  • ManagedAuthenticator should automatically update last_used time
  • Use field name to name files in theme export.
  • Make it possible to use backup code everywhere where 2FA required
  • Use * when apply italics in the editor instead of _
  • Escape_comma wasn’t working in CSV exports
  • Group_names field wasn’t properly serialized
  • Prevents double network calls and other quirks on admin emails
  • Prevents autocomplete from going over search input
  • Do not update tag name on /tags/intersection
  • Ensures topic’s category allows topics tags
  • Attempts to fix an error with EXTEND_PROTOTYPES
  • Users list show was loading multiple times with different params
  • Strip invalid byte sequences
  • Hide ‘show associated accounts’ button if moderators can’t see emails
  • Rtl topic progress wrapper position
  • Heisentest - Stored uploads don’t always start with 1X
  • Heisentest - don’t memoize on a class variable
  • Outgoing emails were not disabled after restoring backup
  • Send test email doesn’t show a status
  • Allows {{d-button}} to set a form attribute
  • Live refresh parent themes when editing child themes
  • Allows right-click on post-date sharing link
  • Prevents other tests from leaking modified theme color
  • S/isMessage/isPM
  • Allows invite modal from topic-map post-actions
  • Use s3_endpoint in migrate_to_s3 when not using S3
  • Don’t update gravatar if the user has no email
  • More reliable native sharing
  • Stricter window.navigator.share check
  • Ensures panel’s shareUrl is not erased by topic’s shareUrl
  • Ensure local images use local CDN when uploads are stored on S3
  • Use CDN for optimized loading images.
  • Create and consume temp table inside a transaction
  • Race condition in SidekiqPauser.
  • Use autocomplete=“discourse” to disable Chrome address autofill
  • An <a> with a target of _blank wants a new window
  • Hide advanced theme fields behind a flag, pending UI improvement
  • Should be possible to save an empty theme_field in the editor
  • Don’t try to rename group when username is taken
  • Always rename groups with the default locale instead of using the user’s locale
  • Slow test (deadlock)
  • Refactor to prevent themes affecting core stylesheets
  • Removes legacy browsers-refresh button
  • Moment_js locale files for zh_CN and zh_TW were not found
  • Moment_js locale files provided by plugins were ignored
  • Should not generate payload until active webhooks are exist
  • Stricter matching on local-dates
  • Do not show “move to new PM” option to moderators
  • Don’t import parts of the email address as name
  • Add missing translation.
  • Push notifications could fail with UnauthorizedRegistration
  • Delete push subscription on MismatchSenderId error
  • Stop autocomplete for invalid usernames.
  • Unable to create new categories
  • Remove ‘backfill_etags’ keyword argument from ‘uploads:missing’ rake task
  • Fix failing test.
  • Run the rake task only for uploads created before a day from inventory date
  • Logspam due to 404s on CSS files
  • Validate parent category/subcategories permissions
  • Make composer full screen shortcut work when inputs have focus
  • Tags added while editing a pending approval topic do not show up
  • Add multisite support to Sidekiq::Pausable.
  • Add onceoff job to remove double quotes from s3 etags
  • OptimizedImage model doesn’t have ‘created_at’ date column
  • S3 inventory can have duplicate etags
  • S3 inventory data can be splitted into multiple csv files
  • Upload emojis sequentially to prevent rate limit
  • Sets categoryId but do not scope when replying as new topic
  • Reverse consolidated pageviews stacked chart order
  • Add support for missing verbs in user api key
  • Translate bootbox confirmation dialog
  • Remove extra periods
  • Bump onebox version to include imgur security fix
  • Heisentest - suspicious logins report was not ordered by date
  • Clear the cache after destroying theme_fields
  • Allow unbaked theme fields to be destroyed
  • Unpause sidekiq before adding uploads to backup
  • Scale down swipe in detection to 20px from edge of the screen
  • Only respond to menu open swipes on Andorid
  • Some posters were not getting added to topic_allowed_users when moving posts to a new PM
  • Display post updated date in non-JS view for crawler
  • Do not treat TIFF, BMP, WEBP as images
  • Allow restore when latest migration is a post_migration
  • Allow reverting theme/text settings from cookie back to default
  • When disagreeing with a flag that silenced a user, unsilence them
  • Allow subexpressions in raw handlebars helpers
  • Prevent duplicate params for raw template theme handlebars helpers
  • Position invite footer button before archive
  • Improves positioning of footer buttons on mobile
  • Remove double quotes from etag value in API response
  • Hides topic-footer-mobile-dropdown when no content

UX Changes

  • Don’t link to theme source unless it’s http(s)
  • Correct locale key for theme compatibility error
  • Don’t add padding bottom for emojis in composer preview
  • Use official Facebook logo
  • More consistent table header styles, removing duplicate styles
  • Don’t override unset flair color
  • Puts back share-panel as floating pane on post actions
  • Apply new-user color to full name and username
  • Better alignment of similar topics in composer
  • Make composer resize work on touch devices
  • Improve moderator icon alignment
  • Puts more emphasis on the shared url on share panel
  • Increase width of hamburger menu to 320px
  • Better wrapping of group header elements
  • Disabled lightbox expand button when loading image meta.
  • Default user facing routes to /g instead of /groups.
  • Lightbox support for image uploader.
  • List popular themes and components in admin panel
  • More spacing between social links
  • Make “Category” in topic validation errors translatable
  • Moderator post wasn’t completely translatable
  • Allow users to see filename in image-uploader component.
  • Moves wizard’s “Finish” button to the left of back and next
  • Reduce subcategory badge spacing
  • Make adding permissions more visible and intuitive to click.
  • Reduce font size on about pages
  • Signup form labels were too constrained, minor cleanup
  • Embedded post collapse button hover color fix
  • Show envelope when tag is only used in PM
  • Use regular envelope instead of solid envelope
  • Alignment fix for names with emoji
  • Hide branch/private repo options in admin theme import modal
  • Modifications to admin/customize layout


  • Reduce N+1s on theme admin page
  • Include content-length header for CDN
  • Do not include suggested topics when loading new posts
  • Reduce hit to Redis server when keeping a site in reaonly mode.
  • Restore exists? in favor of blank?.
  • Only require aws-sdk-sns gem when it’s being used
  • Cache build_not_found_page
  • Add text/javascript to NGINX gzip_types