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.
- Do not expose banner data in login_required sites
- Remove auto approval when redeeming an invite
Plugin improvements
Assign
Features
- Register assigned link under sidebar topics section.
- Promote polymorphic bookmarks
- Shows note in moderator post
- Show note in tooltip
- Add assign note
Bug Fixes
- Include users who were assigned to a post instead of topic.
- Only assign when suggestion is clicked
- Assigning a user without notes assigns and closes the modal
- Polymorphic bookmarks support
- Rename button
- User link on post assign/unassign
- Hide footer action button when user cannot assign
- Broken reviewable filter
UX Changes
- Don’t mention the group when no one is assigned.
- Show posers on group assign list
- Show posters on assigned topic list
Performance
- Speed up
User.assign_allowed
SQL query
Discourse Chat
Features
- Move bookmark button to chat message quick actions
- Implement oneboxes for chat
- Add a button to switch back to small chat
- Chat notification emails
- Chat message bookmarks
- Chat-composer-buttons API
- Move chat messages to another channel
- Make original message the reply excerpt if prettified excerpt is empty
Bug Fixes
- Ensures a deleted message can be marked as read
- Requests larger avatars for onebox
- Tests were broken following core change
- Prevents the jump when loading more
- Onebox should only show active users
- Make sure chat uploads have correct URL in template
- Undefined uploads error when attempting to cloneJSON
- Dev populate breaks with missing admin user
- Refresh chat state when tab gains visibility
- Add extra chat shortcut help text
- Ensures we attempt to fill the current pane with messages
- Ensures chat has correct height on composer resizing
- Ensures staged message is not using uploads array ref
- Ensures we unsubscribe from /chat-reply in draft mode
- Issues with deleted messages and incorrect last read
- Prevents destroyed/deleted chatable to crash admin page
- Message order consistency
- Serialize dates using ISO8601
- Add ChatChannelFetcher specs and fix issues
- Use message full_url in summary emails
- Send_unread_mentions_summary is a class method
- Make the bookmark row highlight work with sidebar
- Fix filter in chat channel fetcher
- Don’t hide the new messages’ separator besides the channel header.
- Ensures composer transition is over to compute height
- Minor fixes to msg-actions
- Reduces margin before dots of replying indicator
- Workaround electron quirk
- Prevents 2 rows when only one is needed in firefox
- Composer disabled state was incorrect
- Update user last read endpoint.
- Add channel ID attribute to chat quotes
- Make get channel by name work with chatable name
- Nicer error message when reacting without membership
- Immediately queue notification jobs
- Excerpts for complex messages
- Composer uploads were appearing in the last message
- ChatMessageClasses has too many arguments
- Add gallery to collapser
- Ensures mentions are correctly highlighted
- Don’t hide the new messages indicator beside the channel header
- Do not show Move Messages button in DM channels
- Do not assume name exists for channel
- Don’t hide the new messages indicator beside the channel header.
- Loads populate only on development env
- Ensures separator is correctly translated
- Shows edited text if editing a collapsible into a collapsible
- Ensures collapsing is working on legacy
- Ensure edits are shown, with tests
- Decorates lazyYT only once
- Get + computed causing issues on legacy
- Ensures widget is re-rendering when router changes
- Fix overflowing github oneboxes
- Scope chat image/onebox styling to
.chat-message
- Following public channel doesn’t return channel
- Ensures channels are refreshed when creating channel
- Resize images within oneboxes
- Ensures we don’t double subscribe to updates
- Correctly acknowledge for deletion in unread_counts
- Use @service router to fix chat quoting on mobile
- Enable quoting in all cases
- Scope updating ChatMessageEmailStatus records to current_user
- Default channel setting not working
- Ensures html pasting works
- Reset dm-creator state on channel change
- Ensures we focus when creating from a dm
- Improves channel switching when upserting
UX Changes
- Ensures sticking to bottom loads from last message
- Reduces spacing between avatars in channel onebox
- Split each summary’s message into its row.
- Tweak the archived channel UI
- Changes chat composer dropdown button to use times icon
- Raises DM limit to 20 in every cases
- Hide msg actions on mouseleave
- Slightly improve look of message actions on desktop
- Vibrate on devices supporting it
- Disable text selection on more elements
- Make some UI elements unselectable
- Display staged message when creating channel
- Uses pencil icon for browse channels button
- Uses cog icon for editing channels btn
- Reduces replying indicator vertical padding
- Ensures progress bar reaches done state
Performance
- Only parse HTML once during isCollapsible
- Update all decorators to use decorateChatMessage api
- Only decorate messages when cooked changes
Voting
Bug Fixes
- Logs category setting changes when voting is enabled/disabled
- Do not recreate database record for category setting
Templates (formerly Canned Replies)
Features
- Includes variables
%{topic_title}
and%{topic_url}
- Return 422 in /canned_replies/id/use if id does not belong to canned reply
- Limit max replies retrieved as a safe guard
- Added rake tasks to migrate data from v1 to v2
- Check category permissions to see if user can use canned replies
- Filter out topics with unwanted status from replies list
- Unified desktop and mobile selection UI
- Remove replies CUD code and UI elements
- Allow user to filter canned response by tag
- MVP - Fetch replies from category topics
Bug Fixes
- Fixes regression in templates variables starting with reply_
- Renamed migration to reate_discourse_templates_usage_count
- Default usage_count to 0 while migrating from v1
- @computed in CannedTagDrop was causing test to fail
- Test if the filter input was found before setting focus
- Removed unnecessary inline style in canned-replies-modal.hbs
- Use POST to update reply usage
- Removed unused settings
- Fixed lint errors
Calendar
New Features
- Allow admins to view holidays by region
- Add events calendar on the category page
Bug Fixes
- Don’t initialize on logged-out login_required
- Make region visible to current user too
- Do not hide upcoming events calendar when navigating away from page
UX Changes
- Fix timezone picker and multi-person logic
- Do not show scrollbar when there’s no scrolling required
Security Changes
- Correctly escape event name
Group Tracker
Bug Fixes
- Correctly handle posts of deleted users
Data Explorer
Bug Fixes
- Edit button shouldn’t be visible for seeded queries
Perspective API
Bug Fixes
- Prevents test failure when using set on destroyed
- Promise finally error for perspectiveSave
Encrypt
New Features
- Promote polymorphic bookmarks
Bug Fixes
- Try to post process a post only if it exists
- Polymorphic bookmarks support
- Use object methods to set properties of Draft
Steam Login
New Features
- Allow steam authenticator to be revoked
Kolide
New Features
- Promote polymorphic bookmarks
- Add username in user alert topic’s title.
Bug Fixes
- Add polymorphic bookmark support
- Skip PM alert update if user not found.
Video
New Features
- Add support for downloading mp4 version
Bug Fixes
- Link to the correct mp4 filename
Yearly Review
Bug Fixes
- Add polymorphic bookmark support
Code Review
Bug Fixes
- Make Git trailers parsing stricter
- Wait 30 seconds before syncing commits
- Escape Git trailers present in last paragraph
UX Changes
- Separate profile buttons to fix hover state
Subscriptions
Bug Fixes
- Duplicate payments showing up in discourse UI
Policy
New Features
- Support multi group policies
Bug Fixes
- Ensures builder state is correctly set
Reactions
Bug Fixes
- Max reactions reached error message should be at par with core
- Prevents a bug when clicking multiple times
- Stores reference to expanded widget
- If previous popper, ensures it’s hidden before destroying
- Simplify popper lifecycle
- Various minor fixes
- Always uses actions as parent widget
- Publish old and new reaction on toggle
UX Changes
- Slightly delay picker expand to prevent fast movements
- Minor tweaks to expanding/collapsing panels
OpenID Connect
Bug Fixes
- Add 10s timeout to all outbound requests
Translator
New Features
- Update supported languages for Google Translate
Automation
New Features
- Adds a user_granted_badge trigger
- Add close_topic script
- Add interval option for recurrence trigger field.
Bug Fixes
- Remove
INTERVAL
param fromRRule
in weekday calculation.
User Notes
Bug Fixes
- Make sure the user is an EmberObject.
Salesforce
New Features
- Sync Salesforce lead/contact on user account creation.
Bug Fixes
- Use translations for login button
Docs
New Features
- Register docs link under sidebar topics section.
Chat Integration
Bug Fixes
- Respect core settings when rendering user names/usernames
UX Changes
- Admin controls alignment
Gamification
New Features
- Row highlighting for currentuser + number formatting
- Add leaderboard styling
Bug Fixes
- Rank numbers being hidden
- Anon users where causingexceptions
- Fix missing avatars in leaderboard table
UX Changes
- Admin styling
- Add missing formatting for cheers
- Number shorthand on mobile-only
- Downscale podium + locale fixes
Additional Features and Fixes
Click to expand
New Features
- Add new/unread counts to tags section links exp sidebar
- First pass tags section for experimental sidebar.
- Display new/unread count for tracked categories in exp sidebar
- Add section links to categories section to exp sidebar
- Create upload_references table
- Propagate user status via message bus
- Highlight None option by default for bookmarks
- User status
- Make S3 presigned GET URL expiry configurable
- Pull hotlinked images immediately after posting
- Site setting for blocking onebox of URLs that redirect
- Promote polymorphic bookmarks to default and migrate
- Allow locals to be passed in server_plugin_outlet
- Add page title to 404 pages
- Restore scroll on user activity pages
- Promote the “delete group” staff action log.
- Polymorphic bookmarks pt. 3 (reminders, imports, exports, refactors)
- Validate setting combination between exif strip and img opt
- Add fallback to suggested value when auth_overrides_username
- Introduce a sitewide setting for disabling suggesting weekends in time pickers
- Optionally skip using full_name when suggesting usernames
- Scope search to PMs when in that context
- Detect emoji from Emoji 14.0
- Polymorphic bookmarks pt. 2 (lists, search)
- Show prompt for required tag groups
- Site setting to cap the recipient list in notification emails
- Block indexing the embed topic list
Bug Fixes
- Ensure that extract_upload_ids works with all short URLs
- Skip CSRF token check on webhook routes
- Display translated fallback as the group name for custom emoji groups
- Allows image to be displayed at the right size
- Twitter onebox keeps whitespace for expanded links
- Send quote notifications to correct users when prioritizing full names
- Cleanup invalid historic site setting data
- Handle empty string in theme_settings for upload_references
- Make disabling TLS in mail possible again
- Escape youtube title when constructing onebox preview html
- Missing tracked sub category topics from tracked topic list
- Correctly handle invalid auth cookies
- Seed multisite dbs after migrating in development
- Email Send post has already been taken error
- Restore automatic style preview in wizard
- DiscourseConnect login did not auto approve based on email domain
- Ensures composer is not pre-filled with none/all tags
- Don’t throw errors on wizard dropdowns
- Approves user when redeeming an invite for invites only sites
- Do not use SVGs for twitter:image metadata
- Keep composer draft when go back and forth between PM and New Topic.
- Harmonise category body class generation on server/client
- Show suspended by user
- Make f query param sticky when navigating between nav items
- Topic list nav items count not respecting tracked filter.
- Change event target on select kit row
- Tracked filter did not account for max_category_nesting of 3
- Fallback to default push notification icon if none exists
- Do not looks for plugin test js in production
- Add bookmark quick access tests and fix username
- Correctly handle nested quotes in to-markdown
- Respect user timezone in emails about silencing and suspending
- Changing date should recompute input
- Incorrect URL for bookmark quick action menu
- Further refine duplicate bookmark delete query
- Delete extraneous topic bookmarks
- InlineOneboxer watched word censor error
- Apply censored words to inline onebox
- Improve bookmark-icon title
- Limits for PM and group header search
- Skip pulling hotlinked images for nil user bio
- Applying default user options didn’t work for boolean flags
- Site setting changes for boolean should be logged as true/false
- Refactor placement of plugin outlet & index use
- Clear inline onebox cache when a post is rebaked
- Pass empty hash for view locals by default
- Apply ‘allowed_href_schemes’ to all src/srcset attributes
- Allow users to select “regular” categories
- Use CSS transition to make room for composer
-
acted
state in post action like could desync with multiple likes - Apply ‘hide email account’ for invites
- Prevent all kinds of login in readonly mode
- Add safari 12 to ember-cli build targets in production
- Make read only errors respect the request format
- Handle quote rendering for external Discourse instance
- Checked allowed tag when editing Reviewables
- Auto margins cause too-narrow content
- Show error message if extensions cannot be created
- Do not log category custom fields changes if the value is unchanged
- Create PostgreSQL extensions before migrating
- Use our header value instead of custom header on duplicates
- Use registered bookmarkables for BookmarkManager
- Allow .ics for polymorphic bookmarks
- Store scroll position when using Back button
- Apply watched words to user fields
- Polymorphic bookmarks for bookmark report
- Use hidden site setting for batch presign rate limit
- Use polymorphic bookmarks for in:bookmarks search
- Add support for pipelined and multi redis commands
- Background like count update didn’t account for own user actions
- Prioritize names and usernames consistently
- Limit pan event handler to fix scrolling in TOC
- Use proper ActiveRecord method in import scripts
- Ensures d-popover closes when clicking on popper
- Polymorphic bookmarks for new user narrative bot
- Prevents double user_badge_granted event
- Prevent admin theme settings from blowing up
- Validate post’s polls as acting user
- Topic view breaks with topic timer to publish to restricted category.
- Users with unicode usernames unable to load more topics in activity
- Add email to admin user list when show_emails is enabled
- Missing translation when translation override contained a
%{key}
- Skip invalid custom_field json in hotlinked_media migration
- Validate permalink_normalizations setting
- Handle enum types during database restore
- Destroys instance when hiding date popover
- Handle invalid JSON from downloaded_images custom fields
- Handle duplicates in hotlinked_media migration
- Updated filtered replies when replies exist
- Ensure post_hotlinked_media index does not exceed size limit
- Avoid concurrent usage of AR models
- Closes popover when downloading calendar
- Uses tippy for popover
- Show group in filter only if user can see the members list.
- Ensure values are escaped in select-kit dropdowns
- Prepare data before creating chart to avoid side effect
- Remove refresh seconds override on cache_critical_dns
- Cache_critical_dns - add TLS support for Redis healthcheck
- Prefers computed over discourseComputed
- Correctly handle the print param on topics#show.
- Check 2FA is disabled before enabling DiscourseConnect.
- Properly clean Thunderbird emails, don’t remove links
- Ensure lazy-load-images does not remove entire
img.style
- Use username for nested quotes
- Show footer on the categories page
- Replaces discourseComputed by computed
- Showing icons on future-date-input options
- Do not error when json-serialized cookies are used
- Show footer at the end of topic list
- Add missing translations for medium format
- Skip upload extension validation when changing security
- Don’t allow DiscourseConnect logins in readonly mode
- Return a 404 when a sitemap request doesn’t have a format
- Ensure ‘crop’ always returns requested dimensions
- Check if bookmarkable column exists before adding
- Issues with incorrect unread and private message topic tracking state
- Warn_exception expect hash as second arg
- Show dismiss all modal in user-notifications page
- Do not show visibility topic if visible
- Don’t validate and render the polls inside a quoted post.
- Email styles for Gmail app dark mode
UX Changes
- Remove limit for emoji search in composer
- Larger images in mobile emoji picker
- Hide select-kits when the parent element is outside the viewport
- Don’t tether popper to the viewport if reference is out of the viewport
- Update chat menu popover styling
- Show message if rebake fails
- Make YouTube playlist onebox full width to match video onebox
- Reordered topics in INSTALL-cloud.md to add a ‘Before you start’ section
- Align the trash button on the bookmark modal
- Update hljs-builtin-name colour
- Update hljs-builtin-name highlight
- Consistent spacing on group interaction form
- Fix status icon size in suggested topics
- Add back link on taggroup page
- Fix various login modal issues on mobile
- Allows to close popover on escape
- Prevent user grid blowout on full page search
- Remove horizontal scoll from narrow screens
- Ensure
#main-outlet-wrapper
takes full width. - Fix hover state for flat buttons in WCAG schemes
- Add a brief accessibility summary to the README
- Display user.username on user cards
- Reset
mark
element highlight for WCAG schemes - Add time_shortcut.now translation
- Improve the list of options on the slow mode modal
- Move post date under title in share-modal
- Larger clickable area for mobile topic list
- Fix topic admin menu layout for short screens
- Tweak topic-admin-menu alignment/size
- Prevent group mention from wrapping
- Ask for confirmation when deleting a post using shortcut
- Fix a few WCAG color scheme contrast issues
- Organize topic admin menu into groups
- Show all pie legend options for long polls
- Add title to read time stats from user page
- More descriptive moderator manage setting
- Improves select-kit body placement when vertical space is short
- Add more detail to remove full quote site setting description
- Minor email group chooser alignment fix
- Minor adjustment to login/signup close position
- Improve small action button alignment
Performance
- Improve to-markdown speed, update the code
- Lazily lookup emoji-picker selected-diversity
- Speed up secure media and ACL sync rake tasks
- Update all user_histories with one query in UserDestroyer
Accessibility
- Add keyboard support for do-not-disturb modal
- Keyboard access for
/u
table headings - Fix WCAG contrast for notification header