# Discourse Version 2.7

**URL:** https://meta.discourse.org/t/discourse-version-2-7/166607
**Category:** Announcements
**Tags:** release-notes
**Created:** [October 8, 2020, 1:51am UTC](https://meta.discourse.org/t/discourse-version-2-7/166607 "2020-10-08T01:51:07Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [October 8, 2020, 1:51am UTC](https://meta.discourse.org/t/discourse-version-2-7/166607/1 "2020-10-08T01:51:08Z")

</div>

### Focus

- ✅ Improve “Markdown Typographer” so it is easier to modify and add `->` to → rule(s). @Roman

- ✅ Switch inline oneboxing from default off to default on

- ✅ Optionally allow [users to know when they were rejected](https://meta.discourse.org/t/account-rejection-email/103112). @kris.kotlarek

- ✅ Rebuild topic timer UX to match bookmark reminder UX @martin

- ✅ Improve login / signup UX @jordan.vidrine

- ✅ Better handle login required sites under extreme load per [topic](https://meta.discourse.org/t/incorrect-notification-about-extreme-load/156688/10) @nbianca

- ✅ Add linked words and replaced words into `admin/logs/watched words`, plus [move auto silences](https://meta.discourse.org/t/move-auto-silence-first-post-regex-to-the-watched-words-section/162197/3) per [topic](https://meta.discourse.org/t/how-to-replace-text-in-the-composer/159526/2) @nbianca

- ✅ add “Do not Disturb” as an experimental feature @markvanlan

- ✅ Support “Sign in with Apple” per [topic](https://meta.discourse.org/t/sign-in-with-apple/122790/62) @david

- ✅ General overhal of invite system per [topic](https://meta.discourse.org/t/improve-invite-system/173756) @dan

- ✅ Expose read history on user profile

- ✅ Alert on dashboad for new Discourse features @pmusaraj

- ✅ Support bulk actions for PMs @nbianca

- ✅ Change composer icon (and submit button) based on selected action @osama

- ✅ Automatically add anchor link IDs to markdown headers @nbianca

- ✅ Warn in docker manager when an official plugin appears forked, per [topic](https://meta.discourse.org/t/forks-of-official-repos-still-marked-as-official/155621/6) @nbianca

- ✅ For more intentional admin and staff security around site settings, create a new HTML Site Setting type, and explicitly default all existing text Site Settings to plain text @Roman

- ✅ Fire a webhook when a user is added or removed from a group @vinothkannans

### Codename

- ~~[Baudot](https://meta.discourse.org/t/discourse-version-2-6/151394) v2.6~~
- [Strowger](https://en.wikipedia.org/wiki/Strowger_switch) v2.7 ←

### Start date

Dec 1, 2020

### Release date

May 18, 2021

---

<div class="post-metadata">

### Author: ![neil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neil/32/102150_2.png) [@neil](https://meta.discourse.org/u/neil)
#### Post date: [May 18, 2021, 6:05pm UTC](https://meta.discourse.org/t/discourse-version-2-7/166607/2 "2021-05-18T18:05:10Z")

</div>

## NEW FEATURES

- Add English (UK) as locale
- Do not disturb
- Use the site’s small logo as the system user’s avatar
- Enable inline onebox for all domains by default
- Optional filtered replies view
- Add new features section in admin dashboard
- Rename ‘[Discourse SSO](https://meta.discourse.org/t/13045?silent=true)’ to [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)
- Topic timer UI revamp
- Various improvements to invite system
- Autotag watched words
- Mailing list mode default disabled
- Move site updated modal into a less obtrusive prompt
- Allow setting avatar flair for automatic groups
- Add anchor links to headings
- Bookmark pinning
- Admins can flag posts so they can review them later
- The ability to search users by custom fields
- New API hook to allow for client side upload transforms
- Ability to register custom filters for posts
- Allow sending a message with invite
- Add email\_encoded parameter to accept inbound base64 encoded emails
- Add more class names to latest-topic-list-item
- Add support for like webhooks
- Always insert images on new lines and add newline after
- Small improvements to the topic list embed
- New ‘trim\_incoming\_emails’ site setting
- Include avatar flair on the avatars listed in a user summary’s “Most…” sections
- TL4 & category moderators can merge posts
- Add reviewable score updated webhook
- Allow using ‘top’ view for topic list embed
- Share Topic modal improvements
- Ignore anonymous page views on private sites
- Allow theme tests to be run in production
- A low priority filter for the review queue
- New share topic modal
- Show a notice if video cannot be rendered
- Show a textarea in advanced mode
- Allow pausing animated images in posts
- Make `category-navigation` outlet tagless
- Watch title for automatic tagging
- Review every post using the review queue
- Topic count in category boxes
- Add plugin outlet for category-box-below-each-category
- Show the slow mode indicator in composer
- In the slow mode dialog make “Enabled Until” mandatory
- Tweak slow mode messages and intervals
- Allow setting postgres connection variables via environment
- Reduce invite key length
- Auto-activate users invited by email
- Category setting to allow unlimited first post edits by the owner of the topic
- Send an email notification when a post is approved
- Adds last day to about page stats
- Add user\_confirmed\_email to user event webhook
- Make the tag\_groups#search endpoint public
- Trigger webhook when a user added/removed in a group
- Use SVG icons for some oneboxes
- Treat site settings as plain text and add a new HTML type
- Introduce theme/component QUnit tests
- Retrieve an existing link only invite
- Add maximum limit for secondary emails
- Copying invite link triggers a save
- Use appEvents instead of jQuery for composer resizing progress
- Show an educational message in the quick access menu for personal messages when there are none
- Oneboxer cache response body
- Allow admins to pre-populate user fields
- Implement nonces for Google Tag Manager integration
- Add new :topic\_tags\_changed DiscourseEvent
- Treat emoji or similar characters as one
- Import and export watched word
- Add CSP frame-ancestors support
- Add a typographer rule to replace ¶ with ¶
- Implement browser update in crawler view
- Check email availability in signup form
- Add `admin-area` class to HTML tag
- Allow users to save draft and close composer
- Allow using invites when [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) SSO is enabled
- Obfuscate emails on invite show page
- Replace markdown-it replacements rule
- Fallback to system users when creating new TopicEmbed
- Improve expired invites tab
- Allow a cluster\_name to be configured and used for /srv/status
- Add above-timeline plugin outlet
- New DiscourseEvent trigger for likes
- Enable contact picker on new invite modal
- Flag to disable [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) CSRF protection
- Add tag-custom-settings plugin outlet
- Always show tag dropdown when tagging is enabled
- Implement bulk operations for PMs
- Allow category group moderators to pin/unpin topics
- Allow search engines to index tag pages
- Allow invites redemption with Omniauth providers
- Change very high/low search priority to rank at absolute ends
- Add newly loaded topics to bulk-select automatically if Select All is on
- Add opt-in screenshots to the web app manifest
- Move security related user preferences to different tab
- Add year to relative time picker
- Add a site setting to allow emojis to come from an external URL
- Include details about S3 backup storage errors
- Filter reviewables by id
- Add site description for the webmanifest
- Add disable\_onebox\_media\_download\_controls hidden site setting
- Use the “time\_read” stat to flag users as suspicious
- Quick theme installs via query parameters
- Use diffhtml to update composer preview
- Support `mark` tag
- Relative time input for timers and bookmarks and promote auto-close after last post timer
- When moving posts to existing topic auto-select single topic
- Allow onebox images to be used as topic thumbnails
- Add “Recently read topics” tab to user activity page
- Allow post/topic thumbnails to be prioritized via markdown
- Ability to dismiss all new topics
- Support keyboard back/forward navigation on DiscourseHub
- Allow overriding the backup location when restoring via CLI
- Ability to dismiss new topics in a specific tag
- Handle user agent push subscription change events
- Allow durations `< 1 hour and `\< 1 day for topic timers where duration is specified (auto delete replies, close based on last post)
- New way to dismiss new topics
- Check `blocked_onebox_domains` setting for inline oneboxes
- Improve group settings and members management
- Add daily job to check for new features
- Add contact emails metadata entry to optional plugin meta
- Add extra response headers to nginx log format
- Create notification schedule to automatically set do not disturb time
- Give user menu icons alt attributes
- Support DISCOURSE\_SMTP\_FORCE\_TLS option
- Replace single dash arrows when the typographer is enabled
- Reason to reject user signup
- IMAP detect spammed email and delete associated Discourse topic
- Log when a group is deleted
- Add before-groups-index-container outlet
- Allow disabling self-deletions of posts
- Warn admins when installing a theme that’s already installed
- Send notification emails when users leave do not disturb mode
- Disable post deletions by setting max\_post\_deletions to zero
- Replace arrows when the markdown typographer is enabled
- Add dash warning for using S3 without CDN
- Introduce skip\_auto\_delete\_reply\_likes site setting
- Explicitly ban outlier traffic sources in robots.txt
- Special shortcut for searching for own posts
- Adds support for the WEBP image format
- Allow plugins to show custom HTML via renderTags
- Allow plugins to preload custom data on search
- Include post number in inline Onebox titles
- Allow plugins to register demon processes
- Allow IP anonymization via admin user controller API
- Automatically disable slow mode
- Allow category group moderators to list/unlist topics
- Add likes, flags to user data export
- Increase maximum watched word length from 50 to 100 chars
- Support for GitHub Codespaces development
- Link to text customization when editing system badges
- Adds back button to theme editor
- Add after-topic-list-body plugin-outlet
- Reviewed by filter
- Non-staff users can use shared drafts
- Silently close topic
- Allow Category Group Moderators to edit topic titles

---

<div class="post-metadata">

### Author: ![neil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neil/32/102150_2.png) [@neil](https://meta.discourse.org/u/neil)
#### Post date: [May 18, 2021, 6:06pm UTC](https://meta.discourse.org/t/discourse-version-2-7/166607/3 "2021-05-18T18:06:11Z")

</div>

## BUG FIXES

- Removes legacy Ember.keys usage causing a crash
- Make replace watched words work with wildcard
- Previewing themes didn’t work in Ember CLI
- An unresolved blank uri should attempt an alternate Oneboxing strategy, if available
- Automatically load more reviewable items.
- Allow `file-change` events soon after reloading
- Skip upload if HTML cannot be parsed
- Make autotag watched words case insensitive
- Wrong scope used for notification levels user serializer
- Layout of date input in poll builder
- Delete unconfirmed emails first if available
- Missing iframe closing tag in discobot certificate
- We should include resumable.js in the admin bundle
- Make truth-helpers work in Ember CLI
- Support pausing inline animated images
- Various invite system fixes
- Flaky specs after topic view custom filters
- Properly filter ember-cli args
- Recalculate scores only when approving or transitioning to pending.
- Ember-cli proxy subfolder fix
- Check trust level of user creating invite for group
- Catch UndefinedConversionError for inbound emails
- Remove auto-route from topic-link
- Access to styleguide in subfolder install
- Allow webp format on themes by default as well
- Core templates should never overwrite theme/plugins
- `crypto.randomUUID` is only available in newer node releases
- Shared drafts should be disabled if Uncategorized was selected.
- Do not try to show logo if it does not exist
- Cache missing inline oneboxes
- Prevent infinite loop when replacing watched words
- Base topic details message on current category and tag tracking state
- `{{ace-editor}}` was buggy in Ember CLI release
- Use the no-sandbox flag when running Ember CLI tests.
- Limit visible revisions history to last 100
- Pressing back from topic in bookmark list takes user to /
- Make the docker:test task install dependencies before calling yarn ember test.
- Temporarily skip flaky future-date-input tests
- Hide Uncategorized unless allow\_uncategorized\_topics
- Link notification to first unread post
- Show required only when full name is required and lint fix
- Tag control styles should apply to desktop
- Remove invite based associated object
- Topic might be night at this stage
- Show warning only if new value is different
- Hide “Next Week” in future-date-input on Sundays
- Prevents exception when text input is nil
- Correctly use timeouts in `FileHelper` and `FinalDestination`
- Wizard locale change wasn’t applying to some elements
- Update max-width of staff log cells
- Light color scheme picker should default to user selection
- Looking up translation overrides by symbol failed when `count` is used
- Prevents malformed href to crash TopicEmbed
- Excludes .svg-as-img from JS sizing
- Keep filter UI after editing post
- Do not cut off long polls
- Gracefully handle inline images in emails
- Add theme field errors
- Avatar flair wasn’t displaying on the user summary page
- Improvements to animated image pausing
- Ensures successive topic hydrates doesn’t override category
- Recent regression meant we were proxying qunit when we shouldn’t
- Ember CLI Live Reload was not supported by the CSP
- Remove whitespace from theme git versions
- No JIT when quoting a mention
- Handle charset=windows-1252 in mbox import script
- Replace use of regular expression
- Make diffHTML handle external changes
- Show staff bulk actions only to staff
- Skip notifications about beginner badges
- Bug when scrolling in iOS Safari with composer open
- Forward all the HTTP headers through when we bootstrap Ember CLI
- Ensures successive tags can be renamed
- Allow moderators to access /admin/customize/watched\_words
- Ensure tag topic lists are not scrolled to an incorrect position
- Do not add CSS transition effect to animated images
- Send a different message if export fails
- When a flag is handled archive message for moderator group
- Exclude emoji images from JS sizing
- Invalid Date on “last” shortcut for timer + bookmarks
- `TagDrop` uses `currentCategory` now
- Blank avatar on user card if flair url is undefined
- Allow finding non-lowercase tag groups
- Fall back to hardcoded version when period check disabled
- Do not dump schema during production database migrations
- Use CDN urls for theme settings of type upload
- Revert color of post-map
- If we want a `.json` path, don’t bootstrap
- Use CDN urls for theme uploads
- User group message route should not be case-sensitive
- Clientside validate min tags for required tag group
- POP3 polling shouldn’t stop after exception or old email
- Enforce tag group count validation before sending to review queue
- Allow CodeCommit-style theme .git url format
- Update database\_restorer to avoid shell use
- Whitespaces when copying code blocks
- Ensure plugin’s gems are in the gem path
- Generate unique HTML heading names
- Docking mixin was not cleaning up timers
- Remove old usercard styles, fix bg img class
- Show invite validation errors to users
- Improve error messages for invites
- Ensure the top 6 categories are shown in the user summary
- Already sent headers error in Ember CLI
- `this.loading` is undefined, it should be `state.loading`
- Handle permalinks with query parameters
- `ember build` was not adding digests to additional bundles
- Don’t show the get a room composer message in private categories
- Use Nokogiri and Loofah consistently
- Improve anchor links
- Software update prompt fixes and improvements
- Topic user bookmarked column is out of sync after post moves
- Allow raw-view classes to be resolved from themes/plugins
- Only send user suspension emails if email message provided
- Allow restoring non-subfolder backup to subfolder site
- Automatically timeout long running image magick commands
- Remove superfluous spaces from CJK blurbs
- When user has already hit bookmark limit, do not error for clear\_reminder! or other updates
- Ensure group flair upload is present when deciding type
- Dismiss new button for tags on top
- Behaviour → behavior spelling in default US translation
- Mobile topic list number alignment
- Ensure software-update banner is only shown after 24 hours
- Prevent double slashes in Ember templates paths
- Make HTML scrubber work with deep HTML
- Small tweaks to “no messages” education
- Include watched topics from muted categories in digests
- Keep current filter while navigating posts in a topic
- Retain tags when loading a topic draft in composer
- Show sign up modal when local logins are disabled
- Clear state after creating new topic
- New Topic button regression in tag page
- Simplify send PM to email settings
- Bulk select on full-page search
- Rake themes:update should fail if a theme update fails
- With vanilla js .href and getAttribute(“href”) are not equal
- Rake themes:install error if theme cannot be updated
- Downloading watched words was broken
- Better error message for redeemed invite
- “confirm new email” emails were failing for EmailChangeRequest records with blank requested\_by\_user\_id field
- Post merging was failing silently
- Title when YouTube is pasted as the title to composer
- Autocorrect values for dropdown imported user fields
- Reload messages after a bulk operation
- Handle staged users as unregistered users for external auth
- User fields are case insensitive in bulk CSV
- Redirect to provided origin after auth
- Improve error messages if user cannot send PM emails
- AdditionalOpts update and change to function
- Show error messages when adding permalinks in the admin UI
- Prevent UniqueViolation exceptions when syncing group mentions
- Set the “hasTargetGroups” attribute in the composer when clicking the group message button.
- Isolate modal and global key-binds
- Bookmark topics were not being updated when the post moved
- Allow dismissing Discard Drafts modal via ESC
- Add all the keys that should be allowed in user\_notifications
- Replace ‘Chromebook’ with ‘Chrome OS’
- Allow pasting invitees in invite modal
- Composer save button should be ✏ Save Edit when editing a PM post
- Remove @discobot likes feature on public topics
- `uploads:fix_missing_s3` rake task used wrong SHA1
- Delete orphan post revisions
- Add topic\_diff to PostRevisor
- Make mobile back/forward keybinds work for anons
- Error overriding user notification string with valid keys
- New-topic route with sub-category and tags were broken
- 404 error when editing an expanded reply
- Rake db:validate\_indexes was broken
- Correct mailing list migration
- Perform better email validation
- Add migration to set correct redemption\_count
- Regression in colors used by non-default theme
- Bulk “archive” and “move to inbox” for group messages was broken
- Replace censored watched word consistently
- Do not show duplicate\_link notice for quotes
- Never display the invite show page form if [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) enabled
- Don’t attempt to delete non-existent bookmark
- Anons should see the Topic slow mode notice.
- Ensures popper’s autocomplete instance is destroyed
- Improvements to email styles
- Ensures invisible link is not interfering with UI/tab order
- Restore client.zh\_TW.yml
- A never created listener was removed
- Tests were broken in Firefox
- Clear draft modal correctly when switching topics
- Ensure 100-logster initializer is run before 101-lograge
- Only refresh the review count when the user can see the review queue.
- Improve handling when email is obfuscated
- Delete invalid web push subscriptions
- Do not fail if Postgres is not available
- All staff members (regardless of TL) should be able to pin/unpin topics
- Browser-update should work with old browsers
- Do not treat code tag as block level element
- Delete post action from permanently deleted posts
- Be able to handle long file extensions
- In components, fall back to default theme color variables
- Do not raise if post no longer exists
- Viewing some tag routes wasn’t rendering the list without JS
- Tests in `admin/tests` were not running
- Fix narrative bot settings in multisites
- Allow group owners manage group flair
- Escape Font Awesome icons
- Mention notification takes precedence over group
- Correctly use invite to topic email templates
- Do not convert format for site setting uploads
- Deprecation warning - initialization autoloaded the constant
- Move PWA App shortcut for bookmarks to new path
- Allow additional valid theme .git url formats
- Kernel.open is deprecated
- Show a proper error message when trying to bulk award a disabled badge.
- Show link in invite panel
- Invite acceptance tests were broken in Ember CLI
- Make sure tag-based topic list uses its own preload key
- Do not block `uploads` path in robots.txt
- When destroying a topic, destroy its associated published page.
- Include `json_schemer` in prod
- Nav items not recomputing on query param change
- Add amazon sites to force\_get\_hosts
- QUnit tests could time out based on load order
- Update excerpt after process\_post
- Ensure the signup boolean is passed when started via \_autoLogin
- Bump aws-sdk-s3 and aws-sdk-sns
- Do not add same email multiple times
- Validate user email only once
- Add translation string for clear all watched words
- Do not clean up uploads when they’re used by theme settings
- Incorrect parameter when using omniauth providers on invites page.
- Race condition in draft sequence updates
- New topic indicator on the mobile categories page
- Subfolder prefix should work even if url starts with the prefix
- Ensure UserField changes are reflected instantly in webhooks
- Mobile app notification urls w/ subfolder
- Make `email` a required param when accepting invite links.
- Message bus when group private message
- Missing quote in emoji cdn setting caused by 83f332b
- Remap old S3 endpoints during backup restore
- Typo in emoji path caused by 83f332b
- Remove list double padding
- Sort topic timer and bookmark time options
- Check min tag count requirement when change category
- Remove unused JS from “finish installation” page
- Add href to user avatar in group cards
- `Topic#invite_group` failed to notify users on newly created topic
- Components mobile-specific CSS was missing
- CSS tweaks so bookmark + timer modal work on mobile
- Skip sending PM email for user silence
- Add appropriate classes to `html` element including `lang`
- 100% Width for logout button
- Use `addRawTemplates` even when compiling `.hbr` files
- Update digest when updating color definitions in theme component
- Do not output empty style tags for components
- Exclude users with posts from purge\_unactivated query
- When using Ember CLI theme Javascript/HTML was not being inserted
- Incorrect URL for tag pages inside category in subfolder setup.
- Reintroduce auto\_silence\_first\_post\_regex
- Don’t display error if only error is a missing image
- Ignore enter key press on “move to existing post” search field
- Send notification in user’s locale if available.
- Allow adding user to PM when inviter is in allowed list (even
- Strip whitespace from URL before validating
- Login modal max-width wasn’t specific enough
- Paste table with multiline cell
- Detect installed themes using URLs instead of names
- Unsubscribe from topic presence when navigating between topics
- Pass ajax function to loadOneboxes
- Ensure badge description is updated when routing without loading state
- Allow entering blank values in relative-time-picker
- Improve error message when login\_required sites are under load
- Emails.rake-use domain when sending mail test
- Don’t update `posts_read_count` when the post is from a PM.
- Log warning when context is missing when a user is destroyed
- Allow mobile-nav to work without loading transitions
- Adding a custom scope should not modify the original ones.
- Avoid Safari service worker error on back navigation
- Don’t show “bulk” icon on group-index for unauthorized users
- Do not send rejection emails to auto-deleted reviewable users
- Make email\_valid handling consistent
- Close navigation dropdown when item selected
- Reduce the time\_read threshold to one minute.
- Subfolder replace should only affect URL prefix
- Sort admin dashboard new updates by latest
- Don’t require a rejection reason if the user is a spammer.
- Do not allow bookmarks to use post date in past for reminder
- Ensure corrected migration runs
- Optimise MoveNewSinceToTable
- Use the S3 CDN for the Group flair
- NewPostManager should respect category\_group\_moderator settings
- Limit post read time to the max integer value
- Remove top gradient from signup modal
- Delete topic timers far in the future
- Remove unnecessary OR from dismiss service
- Bump max topic timer duration to 20 years
- Dismiss new when topic\_user exists without last read
- Allow plugins to correctly extend API key scopes.
- Hide sso payload behind a button click and log views
- Auto close topic from category settings based on topic created\_at
- Force refresh staff action logs when transitioning from site settings
- Category redirect to correct slug should not loop
- Fix subcategory, tag drops and none values
- Update topic\_count when updating visibility
- Use autocomplete=discourse in select-kit to disable autocomplete in Chrome
- False for service workers to stop log spam via workbox
- Do not mark group\_flair images as secure on upload
- Clean up topic-timer-info CSS classes, add edit button, and improve UI
- Adds google tracking to page publishing
- Restoring backup via UI was broken
- Do not show SSO last payload to moderators
- Dismiss new with better migration
- Should\_alter\_quality should respect png\_to\_jpg\_quality
- Regression in admin new features
- Allow all tags in site/theme settings, ignore tag group restrictions
- Validate duration minutes values for topic timer
- Optimize move to dismiss\_new\_topics migration
- Adjust width to avoid horizontal overflow
- Don’t add a slug to constructed quote urls
- When adding a quote when the composer is closed, add a newline
- Handle empty email address from authentication provider
- Login UI Fixes
- Do not notify when the hidden tag is added or removed
- Restoring could fail due to missing path
- Restoring backup could fail due to missing uploads
- Return 404 `not found` error if a topic is deleted.
- Check if post.topic exists before publishing topic updates
- Some error messages used wrong translation key
- Correct server error for starting SSO login, and add spec
- Topic progress bar should be on the left in RTL layouts
- Topic timer duration\_minutes was not backfilled correctly
- The invite success email translation variable was renamed
- Select earliest post when aggregating posts in a topic for search.
- Don’t cancel filtering on second “n replies” tap
- Improve SCSS handling in components
- Process new invites when existing users are already group members
- Save updated remote theme, only update enabled themes/components
- Composer upload icon regression because of WEBP
- Don’t create email invites when SSO is on or local logins are off
- Don’t invite new users via group with SSO on or local logins off
- In FastImage 2.2.2 an error is raised with a `nil` path
- Include extra SCSS in child theme
- Restore support for pasting multiple PM recipients
- Avoid pulling hotlinked images of post that have been deleted.
- Refresh category order after save
- Ensures rects is present before using it
- Show bookmark name in quick access hover
- Make discobot certificate faster/non blocking
- Skip shared drafts logic if disabled
- Emoji search/autocomplete should respect selected skin tone
- Existing shared drafts should be accessible
- Return the CDN’s URL when using the site’s small logo as the system’s user avatar.
- Stop trying to set values on destroyed bookmark component
- IMAP allow unknown senders to reply to group topics via email
- Invisible is not the opposite of visible
- Approving a user was not sending an email
- Allow a single invite per email address
- Translated button title didn’t work
- Do not cache translated trust level names in site settings
- External auth account creation in iOS app
- Ensure ‘tr’ is called on a string.
- Can’t remove selection from group chooser in tag group settings
- Restore user summary’s delete button behavior.
- Polls extending in post reply histories
- Move post\_search\_data migration into onceoff job
- Support version in new feature payload
- “Customize text” link was broken on badges admin page
- Only de-prioritise exact matches in mentions
- Un-prioritise inactive users in user search
- Destroy associated user api keys when making a user anonymous.
- Cleanup authentication\_data cookie after login
- Dismissing unread topics with a tag
- Ensures timeline\_lookup includes last tuple
- Reindex\_search job should work on model with no search data
- Remove rendering UX from bookmark model
- Cannot find currentThemeColorSchemeId when no themeId is present
- Check the confirmation result before deleting SSO record
- Remove scheduled DND timings when schedule is disabed
- It seems sometimes shims are evaluated by older JS engines
- Print raw html of logo image to skip unwanted html encoding
- Update categories without full page refresh
- Broken URL when username contains subfolder.
- Share popup is positioned incorrectly in RTL locales
- Embedded comments should only return regular posts
- Show the fallback locale warning when both settings are enabled.
- Change default for IncomingEmail#created\_via to 0 (unknown) and make NOT NULL
- I18n couldn’t find translations.
- Allow max\_redemptions\_limit to be 1
- Polish lang label
- Don’t try to focus on a missing element
- Support for single use invite links
- Always show overriden colors filter
- Remove rendering UX from ember models
- Unescape emoji when pg headlines is used for search result blurb.
- Do not email group user with user\_private\_message notification
- Make sure login required skipped for confirm new email routes
- CurrentUser was missing `appEvents`
- Add Retry-Header to rate limited responses
- Do not test bookmark rate limiter message
- Do not process pop3 mails \> 1 week old
- Add bookmark limits
- Check for user presence before granting badge
- Allow users to opt-out of using the site’s small logo as the system user avatar.
- Acceptance/bookmarks test date issue
- Make sure current user timezone is used for bookmark reminders from post dates
- Remove migrate\_from\_s3 task that silently corrupts data
- TopicTrackingState was initialized after Site
- Url:refresh triggered when query params change
- Stop incorrect emailing of group email from PostAlerter
- Prevent users from converting the default theme to a component
- IMAP post alerter race condition and code improvements
- Render fancy title correctly in composer
- Render topic fancy title in review queue
- Make category change work with shared drafts
- Prevents debouncing and query to override each other
- Use ImageMagick to detect animated images
- Safari iOS page title and url regression when sharing
- Users can remove themselves from a PM even if they can still access it through a group.
- Use the same time moment for related Redis calls in rate limiter
- Sliding window end time in rate limiter
- Make category slugs lowercase
- Do not downsize or crop GIF images
- Discobot exception when site\_contact\_username is promoted
- Publish DND ends\_at updates in httpdate format
- Hiding a post should not trigger the duplicate check
- Show unassigned component warning when installing multiple components successively
- Reset theme install modal state on close
- Hidden tags returned in extras of tags index json
- Always truncate uncomplete emojis in excerpts
- Broken emojis in topic excerpt
- Do not include URL query in auto-generated CSP header
- Don’t error topic RSS when posts are deleted
- Don’t count HTML comments when calculating reply length.
- Tab key should autocomplete like enter key does
- Recurring was not working for some cases (eg: hours and unit \> 1)
- Fix bg color of header on published page
- Hide notification count on document title in Do Not Disturb
- Validate type when picking an avatar.
- Group SMTP email improvements
- Inline Onebox should use encoding from Content-Type header when present
- Prevents autocompoete of username to appear on right
- Ensures defined expired\_in is passed from write to write\_entry
- Correctly set scroll position when viewing a tag’s topic list.
- Increase inventory lag for s3 to 2 days
- Ensures recurring works when setting a start date in future
- S3 CDN warning was showing wrong warning message
- The `title` attribute of the diversity scales was incorrect
- When the user is deleted anonymise category post
- Show all topic statuses on full page search.
- Use Redis replica host and port
- Allow for final sigma in suggested usernames
- Don’t enqueue imported users when there’re multiple custom fields.
- Disallow zero-width and other non-printing characters in tags
- Handle badge grant for deleted badge
- Search topic title headline being truncated.
- Missing PG topic title headline when pg headlines is enabled.
- Autoplay videos must always be muted
- Show restricted tags in bulk select
- Re-run remove flag and queued post web hook migrations.
- Make find\_by\_slug\_path work with default slugs
- Clear in-process theme cache after clearing DB cache
- Missing default notification level on group creation
- Scroll to the last position when navigating back to the tag topic list.
- Bypass `AnonymousCache` for `/srv/status` route.
- No email when the category is muted and mailing list is on
- Do not forbid tags in /new-topic on mobile
- Clear WordWatcher cache after topic\_spec
- Show quote replies when filtering
- Show correct avatar in post stream bar
- Users without shared drafts access can still have access to the category.
- Make Oneboxer#apply insert block Oneboxes correctly
- Show retina avatars on Chrome
- Posts with Staff Colors were excluded from the group activity
- Show ‘New’ filter when ‘none’ subcategory set
- Normalize links by converting them to lower case
- Build correct topic list filter
- Logout redirect should only be `/login` for login\_required sites
- Use sql\_fragment instead of sanitize\_sql\_array
- `notify_file_change` was outputting a command to vim
- Correct tracking when mute all categories
- Don’t raise an error if a custom emoji image was deleted
- Only block local edits for git-sourced themes
- Prevent error when primary email is missing
- Only cache reports with exceptions for 1 minute
- Prevent usage of `composer-action-undefined` CSS class
- Replace Vimeo iframes with a link in emails
- Avoid clock skew issues when logging in with Google
- Allow for cateogry edit routes of unknown depth
- Remove custom ‘error’ action on build-category-route/discovery
- Actually error when topic timer time is in the past
- Removes extra slashes from URL
- Generate correct prev and next topics page URL
- Correct casing of whitelisted SVG elements
- Restore dismissing the first notification
- Local dates showed incorrect timezones with extra whitespace
- Follow open in new tab site setting for bio links
- Stop category 404s from breaking the router
- Hide user id when hide\_email\_address\_taken
- Adjust reviewable menu placement on mobile
- Include locale in cache key for not\_found\_topics
- Use CDN for custom emojis
- Group#flair\_url must be a real URL
- Do not replace smiling\_face by slight\_smile
- Trigger an event when a post is bookmarked.
- Stop using duplicate composer button ID
- Correct link in the notification about moved post
- Load .js files from plugins in qunit testing env
- On invite redemption only update pending ReviewableUser record
- URL encode tag name
- Show/hide ignored users preferences
- Don’t error-index category job when missing category

---

<div class="post-metadata">

### Author: ![neil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neil/32/102150_2.png) [@neil](https://meta.discourse.org/u/neil)
#### Post date: [May 18, 2021, 6:06pm UTC](https://meta.discourse.org/t/discourse-version-2-7/166607/5 "2021-05-18T18:06:28Z")

</div>

## UX CHANGES

- Return correct error message if reviewable user is deleted already.
- Improve category controls on smallest devices
- Admin watched words UI tweaks
- Update copy on the notifications empty panel
- Allow saving with cmd+s/ctrl+s with Ace editor
- Hide the list of file extensions on the upload dialog
- Add CSS classes on body tag based on topic statuses.
- Anticipate anchor link hover
- Refactor security modals
- Reduce the number of columns on invite page
- Fix styling for long label in multi-select choices
- Minor tweaks to insert-hyplink modal
- Ensures toolbar gear button has identic color and height
- The Site’s logo is the selected option when changing the system’s user avatar.
- Fix positioning of back button on progress bar
- Consistent topic timer message button order
- Mobile consistency for topic status messages
- Improve alignment and spacing of category headers
- Correctly shows outline around focused input time
- Improve copy when no results in bookmarks and notifications quick access panel
- Stop presence indicator hop, space consistency
- Do not pre-select blank tag on append tags bulk action
- Uses native date picker when possible (eg: not safari)
- Prevent topic progress bar from overlapping
- Fix layout of group header buttons on mobile
- Fix focus style for post edit history button
- Update positioning of mobile post controls
- Improve user card control layout for long text
- Wider drop down for top page select kit
- Update signup cta styles
- Show error message instead of disabling save button on tag groups page
- Displays a descriptive error when theme is not allowed
- Smoother timeline footer animation, padding fix
- Mobile styling for discard draft modal buttons
- Prevent some composer buttons from receiving focus
- Full height composer on mobile Android
- Minor styling improvements to invites
- Moves from summary/details to a button to expand github body
- Improve poll builder UI
- Adds styling for new github PR body details/summary
- Shows a hint when there are more tags than displayed
- Always display remove emoji btn from emoji-value-list
- Icon instead of text for hiding mobile preview
- Better position for search bulk select button
- Move logs/watched\_words to customize/watched\_words in admin section
- More consistent user control button width
- Remove reference to contact form in settings
- Login modal adjustments
- Fix tab list alignment in emoji popup
- Let users know they disabled discobot and they can’t interact with it.
- Emoji popup layout adjustments
- Display a tooltip when trying to delete an automatic group.
- Make sure staff logs don’t break the layout
- Rename button with a duplicated name.
- Composer actions menu header should display the icon of selected action
- Show first unique letters in invite link
- Improve topic footer alignment and layout
- Move modal footer into better container
- Add image uploader widget for uploading badge images
- Reduce opacity of code copy button
- Show Topic column in invites pending tab
- Show the `Dismiss New` button at the top of the topics.
- Add class to body on first unread notification
- Respect “prioritize username in ux” setting wherever possible
- Add bell emoji for better unread education
- Pasting a twitter link into composer title will not set the title
- Consistent labels in invite form
- Fix broken styling on login modal when local login is disabled.
- Login; smaller titles, more consistent spacing, other fixes
- Minor improvements to invites
- Remove duplicate title from watched words page
- Add class to email div on login
- Fix bulk select button height on search page
- Clean up tag styles to improve alignment
- Restore autofocus on login inputs
- Add link for email login below username, remove button
- Remove redundant focus style
- Use default browser focus styling for checkbox and radio inputs
- Styling adjustments for admin new features
- Allow select-kit to have an autofocus option
- More consistent group mention style
- Remove emoji step in wizard
- Tweak `group` layout to fix button alignment
- Skip github commit avatars for topic/post thumbnails
- Make tag input full width for PMs
- Implements a new tags-intersection-chooser
- On very short screens switch quick-access-profile to 2-columns
- Show bullets for some composer lists
- Adjust padding on create account modal
- Publishes page, on public change, only when page is published
- Remove margin from security key login button
- Change emailLogin to info class when empty
- Adjustments to admin theme editor
- Add editing guidance for remote themes
- Fix excess line breaks in login modal alerts
- Relative-time-picker should use pluralized strings
- Fix local-dates styling
- When auto-selecting topic make sure the focus is on selected topic
- Second Factor + Alert Display
- Show plugin descriptions on admin plugins page
- Trim `@` char from start of the username string in search.
- Remove pluralization in single category notification types.
- Specify social button styling
- Prevent badges on usercards from overflowing
- Improve tag and assign display in search
- Adjust focus styles for autocomplete input
- Hide external login column when account creation in progress
- Adjust gradient, icon hover, capitalizations
- Remove Convert option for system themes
- Changes to new features section in admin dashboard
- Remove 2px border from some select-kit buttons
- Remove Helvetica from our font stack
- Small fix for Chrome focus style on replies button
- Show caret icon on user notification dropdown
- Don’t display tag notification menu on category page.
- Fix reply where modal layout
- Clarify user rejection modal
- Fix & clarify bulk notification change modal
- Use bright color for primary button hover on dark schemes
- Adjust focus styles for topic post menu, composer cancel
- Popup menu buttons need focus style
- Add a confirmation modal to “Remove All Tags” action
- Remove unneeded margin from user stream
- Fix button alignment on log-in required page
- Ensure category breadcrumbs have consistent height
- Uniformize styles for focus states
- Always show confirmation dialog when converting themes/components
- Remove border from certificate due to iframe
- Allow some overflow in composer preview
- Fix bulk select top positioning
- Make desktop category page topics match mobile
- Small tweak to category delete warning
- Respect `email_editable` site setting in user activation page.
- Simplify narrative bot bio
- Makes the theme editor display placeholder correctly for RTL languages
- Show onebox error preview image as favicon
- Specify width and height for onebox preview error image
- Warn about messages to be orphaned while deleting a group.
- Make moment.js produce Arabic numerals instead of Hindi numerals in the Arabic locale
- Fallback locale warning improvements.
- Use uniform style for tag counts
- Text customization for different languages.
- Show a warning on the category edit page when category style is none and colors are disabled.
- Stop attempts to convert the default theme to a component by removing button
- Ellipsis hamburger menu link text when overflowing
- Add space between links and text in labels
- Remove extra word from approval\_not\_required client string
- Improve color scheme choices in user prefs
- Refactor topic list nav
- Autocomplete suggestions should be unselected by default
- Allow quick access profile content to scroll
- Allows to copy/paste a list of | separated values in sk
- Transition to edit URL when adding a category
- Move do not disturb to profile panel
- Text overflow user-{primary,secondary}-navigation
- Move reply filter button on mobile
- Adjust default menu width
- Blend header colors
- Don’t wrap menu text under icon
- Add title attribute to watched word input
- Make theme install modal more responsive
- When input placeholders are too long, truncate with ellipsis
- Remove timeline from print view, fix header in crawler view
- Tweaks to filtered replies
- Show required indication consistently on signup
- Fix unreachable buttons on menus in Safari iOS
- Add full date title to fps-result date
- Category Onebox styling changes
- Makes sk components full width on users admin page
- When requiring user fields at signup, also mark default fields as required
- Fix invite checkbox width issue

## SECURITY CHANGES

- Bump Rails to 6.1.3.2
- Improve theme git import
- Fix is\_private\_ip for RateLimiter to cover all cases
- Prefer Loofah for processing cooked HTML
- Attach [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) (SSO) nonce to current session
- Rate limit MFA by login if possible

## PERFORMANCE

- Preload `JsLocaleHelper.load_translations` for default locale.
- Preload `LetterAvatar.image_magick_version` in master process.
- Ensure locales are always handled as symbols internally
- Make stylesheet max\_file\_mtime calculation more efficient
- Add timeout to theme import git commands
- Improve theme stylesheet compilation performance
- Remove N+1s from ThemeController#update and #show
- Properly preload emails to speed up user exports
- Async notify users after inviting group
- Improve category moderators query
- Avoid regex on uploads table
- Avoid lookbehinds when replacing links in imported emails
- Batch expensive post-migration
- Migrate search data after locale rename
- Improve cook\_url performance for topic thumbnails
- Optimize homepage and topic performance
- Add indexes to speed up profile pages
- Run user merging task in a background job.

## ACCESSIBILITY

- Category logos are decorative, set empty alt
- Makes replies count a button and not a link
- Make th keyboard accessible + aria attribs
- Do not use positive tabindex in composer
- Makes search results count readable by screen reader
- Improves avatar menu focus/active states
- Associates lists with labels on interface page
- Links change username input to its label
- Switch tabs using the keyboard
- Improve the header menu “view all” title.
- Deselect focused choice when using enter in multi-select
- Gives autocomplete in search a more accessible name
- Makes other and color, fieldset/legend elements
- Makes edit username and avatar accessible
- Ensures avatar image in site header has alt attribute
- Add rowheader to topic title TDs
- Makes select-kit header a listbox
- Adds support for aria-current through d-navigation-item
- Makes aria-owns an ID and not a data attribute
- Sets has-popup as menu for select-kit components
- Makes quote controls accessible
- Sets the html lang to user’s locale when possible
- Correctly sets a name on combo-boxes for single selects
- Adds support for aria-expanded and aria-controls to btn
- Makes user notifications list more accessible
- Hamburger menu aria-{expanded,haspopup} and user title
- Correctly sets role=dialog and aria-labelledby for d-modals
- Uses role=button and supports ariaPressed for tapTile
- Structure user menu as tabs.
- Makes post-edits-indicator a button instead of a link
- Improves search-in-options filter accessibility
- Makes advanced search and html heading
- Associate search controls with their labels
- Add aria-label to input clear button
- Update selected name role to button
- Improve the quick access menu accessibility.
- Accessible user menu icons
- Add aria-labels to search inputs and search button

---

<div class="post-metadata">

### Author: ![neil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neil/32/102150_2.png) [@neil](https://meta.discourse.org/u/neil)
#### Post date: [May 18, 2021, 6:06pm UTC](https://meta.discourse.org/t/discourse-version-2-7/166607/6 "2021-05-18T18:06:50Z")

</div>


