Discourse 2.0.0.beta2 Release Notes


(Joshua Rosenfeld) #1

New features in 2.0.0.beta2

Improved HTML Pasting Support

Introduced originally in Discourse 1.9.0.beta16, in this beta we’ve improved support for complex table formats, as well as improvements to other types of complex HTML pasting

Invision Power Board Importer

Discourse has import scripts for many different forum software as well as other tools like Disqus comments and mailing lists. All our import scripts are open source, and thanks to contributor @pfaffman, we now offer an Invision Power Board script.

log personal messages views Site Setting

Site admins have always had the ability to view all content on their site, including personal messages sent by users. We’ve added a new site setting (default off) what when enabled will log when admins view personal messages they’re not a recipient of so viewing personal content is auditable.

Lock Post Editing

Discourse staff members now have the ability to lock posts. Locking a post prevents its author from editing it. Why would you want to do this? Sometimes a user posts something bad, so a staff member will go in and change it. Before this commit, there was no way to prevent a user from maliciously changing it back.

To lock a post, click the wrench under it and select “Lock Post”


When locked, a lock icon will be displayed on top of the post and the poster will not be able to edit it until it is unlocked.


Disable Emoji Shortcuts Site Setting

Discourse automatically converts emoji shortcuts like :) into emoji :slight_smile:. Some sites do not like this, so admins can now disable this automatic conversion via site settings.

Improve Category/Tag Dropdowns

First released in Discourse 1.9.0.beta15, @joffreyjaffeux has continued to improve our select boxes and dropdowns. For 2.0.0.beta2, he’s updated the category and tag filters, which now include support for searching!

Allow Sending Invites to Staged Users

Staged users can now be invited, allowing you to easily grant access to staged users even on invite only sites.

Grant Badges in Post Admin Wrench

Thanks to contributor @xrav3nz, admins can now grant badges to user right from the topic view. A new Grant Badge option is including to the post admin wrench.

It opens up a modal for the admin to choose a specific badge to be granted to the user. The “badge reason” will automatically be attributed to the post from which the “grant badge” action is triggered.

Font Size, Line Height, and z-index Improvements

Can you believe that we had over 50 different font sizes in Discourse!? Can you tell the difference between .929em and .93em? I couldn’t, and thanks to our incredible designer @awesomerobot our font, line height, and z-index systems have been cleaned up and improved. You can read all the details in Cleaning up our font system and Implementing a new z-index system with SASS.

These improvements also make small and large size font themes incredibly simple - just add a single line of css, html {font-size: YYpx !important;} (replace YY with your desired size, default is 14) and nearly your entire site will be scaled.

Security Updates

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

  • Email domain whitelist could be bypassed

Even more!

This beta has so many notable improvements they could not all be listed in 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.

Plugin improvements


  • Voters will now be shown on closed/archived topics


  • Improved tooltips
  • Updated README including instructions


  • Patreon account details now shown on user details page
  • Admin warning for invalid access token
  • Improved code tests
  • Bug fixes


  • New site setting to require a post be claimed before resolving

Ad Plugin

  • The ADVERTISEMENT label can be translated


  • Fix Sketchfab embeds

Additional Features and Fixes

Click to expand

New Features

  • Select-kit api to modify collection header
  • Allow plugins to register a new locale
  • Do not restrict categories filtering to only FULL permission type
  • Bump rbtrace to latest
  • Add topic posts count to webhook post serializer
  • Shorten setting name to max_reqs
  • Emit external_id field with user webhook
  • New modal to show flags received for a user
  • Plugins can send more data to Google Tag Manager
  • Show header search results on search log term details page
  • Keyboard shortcut to refocus composer
  • Much improved and simplified crawler detection
  • Add collapse button
  • Replace period-chooser by a select-kit component
  • Add setting to display tags by tag groups
  • Allow system api to target users via external id or user id
  • Display force_https warning in admin problems dashboard
  • Show create new topic link on mobile
  • Global rate limiter can bypass local IPs
  • Allow posting via email to read-only mailing list mirror category
  • Updates emojis to last revision

Bug Fixes

  • Don’t blow up on badly encoding incoming email body
  • System user edits should not generate notifications
  • 404 page when clicking a badge notification from before changing username
  • BBCode to Markdown conversion in phpBB3 importer was broken
  • PhpBB3 importer imported some users as anonymous users
  • Allowed href scheme link can start with a +
  • Inline oneboxer min title length of 2
  • Show label beside confirm user fields, and fix spacing around them
  • Time read on users directory was not rendering correctly on mobile
  • Remove old unused text
  • Missing translation
  • Emoji-picker improvements
  • Hides upload link on mobile
  • Don’t allow username update via update route
  • Select-kit category dropdown issues in IE11
  • Redirect to original URL after social login
  • Improves UI state when no extensions are allowed for upload
  • Makes sure allowUncategorized is passed to category-selector
  • Enabling verbose localization for session didn’t work
  • Featured links are ‘undefined’ in suggested topics
  • CTRL+mouse-left-click / CMD+mouse-left-click or mouse-middle-click should open link in new tab
  • Remove all notifications of staged user during sign-up
  • Show message from discobot when staged user signs up
  • Application should not crash when selected locale is missing
  • Server didn’t use default_locale as fallback locale
  • Uploads not working on themes admin page
  • Makes sure allowUncategorized is passed to underlying component
  • Force full width on mobile for cat and tag drops
  • Mods should be able to grant badges in post wrench
  • Censored regex words were replacing other text that shouldn’t be censored
  • Larger tag-drop
  • Tweaks to tag and category drops
  • Improvements to category-drop when used with a subcategory
  • Better handling of collection height
  • Alignment for box/bullet tag styles
  • Uploads:migrate_from_s3 wasn’t destroying records before creating new ones
  • Badge group edit modal controller is missing modal functionality
  • Creating new message via link was failing for anon user
  • Missing footer on groups pages
  • UX improvements for system messages when PMs are disabled
  • Don’t show suggested messages if private messages are disabled
  • Users column too wide on tablet
  • Tag alignment
  • Space below post-actions
  • Regression, missing 404 page
  • Don’t link icon to the private messages page if they are disabled
  • Disable the keyboard shortcut if private messages are disabled
  • Flags notification badge becomes too narrow when menu is open
  • Support for generating excerpt when nesting <details> blocks
  • Category badge when using box style on long category names
  • Caret clone div position for RTL locales
  • Prevent users from moving whispers to new topic
  • Migrate_from_s3 rake task not working
  • Ensure proper header transfer (except for cache control)
  • Preventing presence users from overflowing window
  • Notify_about_queued_posts_after copyedit
  • Allow plugins to register importers
  • Encode image filename so ‘[', ']’ and ‘|’ doesn’t break the markdown
  • Invalid SQL in vanilla_mysql import script
  • Margin below topic-map
  • Support recovering images using ‘upload://’ scheme
  • Makes sure mousedown is stopped only on select-kit element
  • Jump to original post when expanded posts are collasped
  • Prevent <big> nesting abuse
  • Correctly log topic timings as background
  • Never flush timings while in progress
  • Wrap similar topic titles at narrow widths
  • Increasing z-index on topic-avatar
  • Cache_file storage cleanup logic was wrong
  • Don’t create new like notifications for deleted topics
  • Box badges on 404 page not displaying correctly
  • Allow shared CDN for s3 and assets
  • Badge with box mode having incorrect background size
  • Mbox importer didn’t detected already indexed files
  • Validate presence of ‘top menu’ setting
  • Topic and category exporters were only exporting users who created the first post
  • Subfolder: top referred topics report was missing subfolder in links
  • Subfolder support was broken
  • Adds support for selection-indicator
  • Category topic count alignment
  • Graphs should go to zero for missing dates
  • Invalid cache for parent category with limit_suggested_to_category
  • When deleting a tag, the warning modal has the wrong topic count
  • GitHub auth always asking to verify email for new users
  • Return 429 when admin api key is limited on admin route
  • Rescue login required / broken images
  • Suspension / Silence reasons were incorrect on save
  • Fix category-link spec failure
  • Category badges css refactoring/fixes
  • Disable by default limitMatches
  • Support for watched_words_regular_expressions when censoring words
  • Allow plugins to override admin component templates
  • Makes rake qunit:test task work on macOS
  • Show create new topic link when there are no search results
  • Don’t downcase watched words on input since it can break the watched_words_regular_expressions setting
  • Censored words should support * as wildcard
  • Handle invalid password reset token
  • Adds select-kit api to modify header computed content
  • Add guard to prevent a primary UserEmail from being reassigned.
  • Source admin locale from cdn
  • Cache admin locale file for 24 hours
  • Broken test
  • Google Calendar oneboxes weren’t working
  • URI must be ascii only for URI.parse command
  • Broken select badge as user title
  • Broken select badge as user title
  • Render error message when backup download fails
  • Do not validate messages sent to mailing list mirror
  • Never mark emails sent to mailing list mirror as auto-generated
  • Facebook deprecated facebook messenger emojis
  • Correct shushing_face name
  • Do not create duplicate topics
  • Don’t raise error if I18n key is not found

UX Changes

  • Input and search cleanup
  • Prevent anons from clearing pins :pushpin:
  • Generic ‘no invites to show’ message
  • The delete button is also a dropdown
  • Adding a sticky footer to the post history modal, removing bootstrap columns
  • Removing some old references to the star feature
  • Trim selected text while copying to the link building modal
  • Copy selected text to the link building modal
  • Additional protections to prevent tag nesting exploits in posts
  • White text for social login buttons, regardless of theme
  • Very long tag names should truncate
  • Improve description of s3_use_iam_profile
  • Adjustments for embedded reply collapse button
  • Small adjustments to similar topics popup
  • User column heading needs a width
  • Implementing a z-index system
  • Modal; Moving cancel further away from confirm
  • Removing width: auto; in mobile autocomplete so long strings truncate
  • Button styling
  • Styling embedded post collapse button
  • Tag alignment and size in topic titles
  • Switch to quartlerly period view for search log term graphs
  • Increasing contrast on composer elements
  • Line-height should be larger with single-line titles
  • Increase post meta font size
  • Type system rebuild
  • Don’t use a chevron when a dropdown is just an icon
  • Switch back to line chart
  • Put the HR in the correct place
  • Adding a little space after oneboxes
  • Show bar chart for admin graphs


  • Ability to crawl for titles without extra HEAD req
  • Slow down optimizing images per host
  • Guard so we only create one optimized image per process
  • Reduce memory usage for post alerter
  • Run post timings in background
  • Bypass theme handling on static routes
  • Add frozen string literals to app controller
  • Reduce queries required for post timings
  • Avoid expensive OR clause query info more efficiently
  • Improve perf of topic suggested query with limit_suggested_to_category
  • Handle debounce in redis cause SQL can be slow
  • Bypass omniauth unless in an auth path
  • Add frozen strings
  • Calculate topic_counts for tags in an async job so tag queries that include counts are much faster
  • Cache messages so re-opening composer on same topic does not issue a req
  • Use cdn for extra locales
  • Enable gzip on proxied requests
  • Defer message bus on hidden tabs so only one in 1.5 seconds happens
  • Add some minimal caching to javascripts folder
  • Conserve memory while rebaking posts