2.8.0.beta9: Tag Descriptions, Recent Searches, Sticky Avatars, and more

New features in 2.8.0.beta9

Tag descriptions

Staff can now add descriptions to tags, just like categories. Descriptions are displayed when hovering over a tag in the topic list.

To add/edit a tag description, as staff, navigate to the tag page, click the wrench, and then the edit pencil.

Display pending posts on user’s page

Previously, when post approval was enabled, users would be shown a message that their post needs approval, along with a count of pending posts. However, there was no way to see what was pending after the fact.

Users can now navigate to their activity page to see their pending posts.


Recent searches

Discourse now displays the five most recent topic/post searches completed, making it quick and easy to re-run a search.


Highlight tag changes in post revisions

Tag changes are now highlighted when viewing a post revision.

Notify responders of post removal

Admins can now enable (default off) users to be notified if their post is removed due to being a reply of a flagged post. When enabled via the notify_users_after_responses_deleted_on_flagged_post site settings, users will receive a PM explaining that their post was removed, along with details on why the parent post was removed, and the parent post content.

@here support

Users can now mention @here to notify 10 people who replied to the topic. Admins can manage permission to use the @here mention, and the number of users mentioned, via the max_here_mentioned and min_trust_level_for_here_mention site settings.

Show browser search tip when discourse search is used

In long topics, Discourse does not load all the posts at once. Posts are loaded automatically as the user scrolls. Due to this, using native browser search (Ctrl/Cmd + F) does not work as not every post is loaded. In such topics, Discourse search is opened instead, to ensure all posts are searched. Help text is now shown when this occurs so users know how to open browser search should they want to.


Show a confirmation modal when “Dismiss all” would dismiss an important notification

When dismissing notifications, if green notifications - PMs, assigns, etc - would be dismissed a warning is first shown to ensure they’re not accidentally cleared.


Display warning when sharing a topic in a restricted category

When sharing a topic, a warning is displayed if the topic is not public, and thus only visible to select groups.


Sticky Avatars

When reading a long post, the post author avatar now scrolls along with the post, so you can see at a glance who wrote the post, even if scrolled down to the end.


Pasting links on a selection will apply a link format

Thanks to community contributor @gwwar, when text is highlighted and a URL is in the clipboard, pasting will automagically turn the text into a link, rather than overwriting the text with the link. More details in Idea: Paste links in the editor - #20 by sam

Improved mobile scroll performance

We’ve updated all our scrolling logic to make use of ‘passive’ event listeners. This should significantly improve the user experience on mobile, especially on older devices.


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

  • Only show tags to users with permission
  • Strip unrendered unicode bidirectional chars in code blocks
  • Remove ember-cli specific response from application routes

Plugin improvements

Many plugins

  • Translations
    • We’ve updated the translations in many of our plugins


Bug Fixes

  • Improvements for assign to post
  • Adjust mobile list for recent topic list changes
  • Update aria-labels on mobile / dropdown
  • Current_user serializer not throwing error
  • Selecting a user was clearing search terms
  • Broken assigned topics search
  • Use customOptions property
  • Pin plugin version when running discourse `<= 2.8.0.beta7
  • No error when assigned post is deleted
  • Update Re-assign view permissions

UX Changes

  • Have mobile icons match desktop
  • Update reassign dropdown styles


New Features

  • Open chat links from category/tag show
  • Store server-side cooked messages

Bug Fixes

  • Ensure the user remains ‘present’ in notification-routing channels
  • Navigate to full-page in mobile view
  • Chat channel title in full-page links to chatable
  • Show excerpt in reply-to line
  • Preview button for nested channel
  • Implement emoji picker
  • Enabling chat live reloads, and clicking chat icon joins channel
  • Unify font size of chat channel title
  • Correct chat notification URLs
  • Return on mobile shouldn’t send message
  • Client side chat message notification translation

UX Changes

  • More tweaks
  • Spacing + Notification changes
  • Use tertiary color for message send button icon on mobile
  • Do not reserve space for presence indicator (take 2)
  • Do not reserve space for presence indicator
  • Align title elements


New Features

  • Disallow unsafe CSP if plugin is enabled

Bug Fixes

  • Ensure bots can send encrypted messages


Bug Fixes

  • BCC Sending to email addresses


New Features

  • Better detect mouse/touch using event-from


Bug Fixes

  • Exclude blocked charges in campaign total
  • Include one-time purchases in campaign total


New Features

  • Consolidate notifications

Bug Fixes

  • Post expanding in activity stream was causing reload
  • Don’t include invalid emojis in post reactions field.


Bug Fixes

  • Avoid using GlobalSetting for crowd_custom_html


UX Changes

  • Adjust topic list item spacing

Additional Features and Fixes

Click to expand

New Features

  • Show user cards for ‘replying…’ users
  • Replace Crawl-delay directive with proper rate limiting
  • Send a ‘noindex’ header in non-canonical responses
  • Support i18n in Ember CLI plugin tests
  • Add email normalization rules setting
  • Adds uploads scope for API keys
  • Allow theme settings to request refresh
  • Log only topic/post search queries in search log
  • Apply rate limits per user instead of IP for trusted users
  • Local chunked uppy backup uploads with a new uploader plugin

Bug Fixes

  • Native File object was not passed to uploadHandler
  • Broken css in #15141
  • Do not suggest “user1” as a username to invited users
  • Adds 422 status code to bootstrap json
  • Allow staff to upload when they should and authorized_extensions is blank
  • Ensure widget hooks always call the correct instance
  • Treats ipad as mobileView for popper positioning
  • Global log notice regressed in #15000
  • Setting bookmarks in some cases was broken
  • Don’t throw errors on duplicate keys in Yaml
  • Software update prompt position on themes with extra header
  • Use CDN URL for internal onebox avatars
  • Delete unconfirmed AND expired email tokens only
  • Don’t crash the browser when tapping autocomplete suggestions on Android/Gboard
  • Strip Auto-Submitted email header from group SMTP emails
  • Do not fail-stop if theme update fails
  • Git should not prompt for credentials
  • Keep existent tags when editing tag topics
  • Don’t hit permalink-check if not authorized
  • Allow invites if must_approve_users is true
  • Don’t publish polls on message bus when there are no polls
  • Don’t publish notifications to MessageBus for inactive users
  • Allow poll feature to be disabled in discourse-markdown
  • Remove ‘Open Draft’ label after topic draft deleted
  • Ensure mobile topic-list links are treated as Ember transitions
  • Infinite recursion when calling a refresh() action on routes
  • Add a confirm and cancel button when editing alt text
  • Validate number of votes allowed per poll per user.
  • Don’t overwrite computed property for loading spinner fix
  • Topic list separator fix
  • Exclude moderator_action post for reply count in user summary.
  • Incorrect title and chevron when filtering by post number.
  • None and all categories filter
  • Cache all watched words
  • Clear previous errors on second factor form display
  • Register customOptions as select kit filter
  • Convert URLs embedded topics to absolute form
  • Error when SMTP enabled in PostAlerter with no incoming email
  • Clean up emoji name which is file name
  • Include all categories in sortedCategories
  • Adjust topic list header alert
  • Ambiguous column in downsize_uploads
  • Additional fixes for last-visited on topic list
  • Fix regressions introduced in ae16b0a
  • Adds missing class for last visit separator
  • Redirect to homepage if no posts exist
  • Exclude topics from muted tag in category featured list.
  • Emoji uploader not using data.name on uppy upload
  • Use correct group out of multiple for SMTP sender
  • Drop malformed CC addresses in GroupSmtpEmail job

UX Changes

  • Fix alignment in group navigation bar
  • Tweak mobile composer styling
  • Tweak composer styling
  • Add title attribute to reports cells
  • Closes multi-select on selection when maximum=1
  • Fix extra indent on lists when supporting mixed text direction
  • Add additional tests for pasting a link on a selection
  • When pasting a link use linkify rules
  • Timestamp should not hide handle of topic timeline in mobile.
  • Fallback to regular title if screen-reader title is unavailable
  • Make banner full-width
  • Lower digest suppress period from a year to 6 months
  • Fix fast edit save button color in dark schemes
  • Move share topic warning to modal flash alert
  • Add more search aliases for emojis.
  • Launch full page search on second Enter hit
  • Mobile topic list fixes follow-up to 0e371d4


  • Update widget hooks to avoid global scroll-blocking events
  • Update scrolling mixin implementation
  • Disable ember touchstart listener
  • Use passive event listeners for touchstart, touchmove
  • Set --header-offset property only when changed
  • Updating first unread PM for user not respecting limits.
  • Use more efficient text-direction check in select-kit init
  • Reduce records queried in UserStat.update_first_unread_pm.
  • Move preload hints to the <head>
  • Improve JS app boot speed by optimizing customResolve()