# Discourse Version 2.6

**URL:** https://meta.discourse.org/t/discourse-version-2-6/151394
**Category:** Announcements
**Tags:** release-notes
**Created:** [May 13, 2020, 9:40pm UTC](https://meta.discourse.org/t/discourse-version-2-6/151394 "2020-05-13T21:40:17Z")
**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: [May 13, 2020, 9:40pm UTC](https://meta.discourse.org/t/discourse-version-2-6/151394/1 "2020-05-13T21:40:17Z")

</div>

### Focus

- ✅ Automatically use dark and light modes depending on OS settings @pmusaraj

- ✅ Add font selection theme step to the setup wizard @nbianca

- ✅ Improve category moderation. Category moderators should have TL4 like rights on moderated category. @jamie.wilson

- ✅ Rename `allow moderators to create categories` to `moderators manage categories and groups` [Allow moderators to create groups - #40 by sam](https://meta.discourse.org/t/allow-moderators-to-create-groups/41408/40) @jamie.wilson

- ✅ Allow users to opt out of badge notifications: [Let experienced users skip "new to Discourse" features - #36 by sam](https://meta.discourse.org/t/let-a-user-disable-badge-notifications/63137/36) @vinothkannans

- ✅ Remove tags bulk action: [Bulk Actions: "Remove Tags" in addition to "Change Tags" - #4 by jomaxro](https://meta.discourse.org/t/bulk-actions-remove-tags-in-addition-to-change-tags/52145/4) @techapj

- ✅ Allow staff to manually trigger a “slow mode” in topics per [Post Rate Limit Trigger for a topic that's heating up](https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294) @Roman

- ✅ [ADA / WCAG compliant contrast theme](https://meta.discourse.org/t/wcag-high-contrast-color-palettes-for-low-vision/168795) shipping by default

- ✅ Allow merge user to work on accounts with lots of posts [Merge users - core feature vs plugin - #4 by sam](https://meta.discourse.org/t/merge-users-core-feature-vs-plugin/153802/4) @vinothkannans

- ✅ Add auto-close after {x} replies and [create new linked topic](https://meta.discourse.org/t/linked-topics-splitting-and-managing-megatopics/168992) as an optional site setting to deal with megatopics @techAPJ

- ✅ general oneboxing feedback improvements due to instagram / facebook changes @jamie.wilson

- ✅ move the (extensive) category settings to a dedicated page rather than a dialog for cleaner, more organized UI

### Codename

- ~~[Greek](https://meta.discourse.org/t/discourse-version-2-5/125302) v2.5~~
- [Baudot](https://en.wikipedia.org/wiki/Baudot_code) v2.6 ←

### Start date

June 25th, 2020

### Release date

November 30th, 2020

---

<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: [November 30, 2020, 9:58pm UTC](https://meta.discourse.org/t/discourse-version-2-6/151394/2 "2020-11-30T21:58:18Z")

</div>

## NEW FEATURES

- Add plugin js / plugin test js to bootstrap.json
- Add users:log\_out API key scope
- Onebox local categories
- Update onebox and add styling for githubfolder onebox
- Add user update, anonymize and delete API scopes
- Add ‘all subcategories’ option in category-selector
- Add site setting to restrict ignore feature to trust level
- Search filter for searching all PMs on a site for admin.
- Add an API key scopes for handling incoming email.
- Add auto update field to themes
- Create revision when bulk moving topics
- Link site setting titles directly to their change log
- Improve errors when title is invalid
- Implement edit functionality for post notices
- Allow /u/by-external to work for all managed authenticators
- The ability to permanently destroy the private message
- Add Google Universal Analytics v4 as an option
- Allow category group moderators to delete topics
- Change default so log\_out\_strict is default disabled
- New setting to create a linked topic on autoclosing mega topics
- Batch process topic bulk actions
- Add a CSS class to the HTML element on background connection error
- Allow admins to opt out of chunked encoding
- Ask user to confirm topic deletion when views exceed a certain amount
- Include rejected queued posts in the user archive export
- Disable default bing throttle
- Allow category group moderators to edit posts
- Add detection of post date to use in bookmark modal
- Add non\_automatic group type param to groups index API
- CTRL-SHIFT-ENTER and SHIFT-Click do not scroll on post
- Show a placeholder instead of videos in preview
- Topic slow mode
- Use “no-referrer-when-downgrade” as our embed policy
- When we fail to ship topic timings attempt to retry
- WCAG compliant color schemes
- Add penalty options for take action
- Add category slug to body class on tag pages if it is part of a category
- Add weekly bookmark cleanup code
- Upgrade analytics.js to gtag.js
- Respect tags\_sort\_alphabetically setting when display tags
- Bulk remove tags
- Separate base and heading font site\_settings
- Explain why invites are disabled to staff users
- Add the title attribute to polls
- Composer option to reload page and force save draft
- Advanced search option for max posts count
- Add alias for min\_post\_count search filter
- Support using system font in wizard font step
- Dark-mode-friendly wizard
- Add a site setting to control automatic auth redirect
- Advanced search filters for view count
- Change default size for search recent posts
- Make search filters case insensitive
- Review posts with media
- Diffrentiate between group + individual mentions
- Hidden `SiteSetting.keep_old_ip_address_count` to track IP history.
- Default allow embed secure images in email to true
- Allow admins to delete user SSO records in the UI
- Allow to extend topic\_eager\_loads in Search
- Remove user topic timers and migrate to bookmarks with reminders
- Adds support for mobile view on page publishing
- Add support for not persistent sessions
- Moderators allowed to view groups which members can see.
- Add bookmarks to the user export
- Show existing tag name on rename modal
- Add user opt to select bookmarks as home
- Allow email image embed with secure media
- Add css classes to stylesheet link elements
- Add stylesheets to bootstrap.json endpoint
- Add below-static plugin outlet
- Deprecate lodash so we can remove it.
- Add site setting and wizard step to set base font
- Allow specifying platform name for platform specific gems
- Add category tracking state to user archive export
- User selectable color schemes
- Additional control of iframes in oneboxes
- Add dismiss unread topics button when filtered by tag.
- Added sort by username for directory items
- More API scopes
- Allow plugins to register parameter-based API routes
- Add `regular_categories` field in site setting & user option.
- Add option to skip new user tips in first notification.
- Ensure posts are rebaked when missing is fixed
- Autoplay oneboxed twitter GIF media
- Dark mode alternative logos
- Add new user option `skip_new_user_tips`.
- Allow group membership to unmute categories and tags
- Don’t notify about changed tags for a private message
- Introduce tasks for dealing with legacy broken uploads
- IMAP delete email sync for group inboxes
- Group category permissions tab
- Block vibration in Firefox Android
- Use PG `ts_headline` for highlighting topic title in search.
- Add advanced order to search
- Notification for vote plugin
- Set notification levels when added to a group
- Poll breakdown 2.0
- Allow users to opt out of automatic dark mode
- Add category\_id to TopicViewWordpressSerializer
- New plugin outlet for category-heading
- Invite emails to groups from add member modal
- Automatic dark mode
- Add expandable muted categories ui to `/categories` page.
- Show login button on error page if user is not logged in
- G,j and g,k to navigate to next and prev topic
- Allow picture HTML element in posts
- Allows to display charts by day/week/month
- Allow the specification of an arbitrary unicorn listen address
- Support converting HEIF images to JPEG
- Add tracked filter to topic lists
- Submit post from mobile composer preview
- Add query params to staff action logs
- Add support for `top` filter in tag page.
- Create logs for Group Moderator changes
- Add “delete on owner reply” bookmark functionality
- Allow List for PMs
- Allow group moderators to add/remove staff notes
- Optional quote sharing buttons
- Add scopes to API keys
- Trigger `user_updated` event if email changed.
- Improve header meta alignment and truncation with css grid
- Load hidden posts in segments
- Allow video tag attributes for video gifs
- Allow group moderators to close/archive topics
- Add hidden site settings for discobot to skip certain tutorials
- Add search to user bookmark list
- Implement support for IMAP and SMTP email protocols.
- Add global rate limit for anon searches
- Parse images in email signatures
- Add “smallest” option to user text size preferences
- Add reply\_as\_new\_group\_message composer action
- Create SQL-only backup if there are no uploads
- Optionally skip the create account popup for external auth
- Sso\_overrides\_(email|username|name) for all auth methods
- Trigger `user_updated` event if username is changed.
- Site setting to always show category definitions
- Allow disabling of extra term injection in search

---

<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: [November 30, 2020, 9:58pm UTC](https://meta.discourse.org/t/discourse-version-2-6/151394/3 "2020-11-30T21:58:55Z")

</div>

## BUG FIXES

- Ensure directory items appear in a consistent order
- No tags should be set if tag chooser is hidden
- Bump nokogumbo to 2.0.3 with patch
- Only use full slugs when compiling category backgrounds.
- Issues with frowning/grinning
- Add secure media url to SERVER\_SIDE\_ONLY list
- When quoting an attachment, keep the |attachment in markdown
- Rebake theme fields if upload changes
- Hides votes from regular users when poll is staff only
- Suggested Topics was being set inside a computed property
- Exclude muted results when suggested related topics at random.
- Checkbox value should not leak between themes
- Force string conversions to UTF-8 “bytes”
- Tests were using jQuery selectors
- Gracefully handle force pushes for remote themes
- Use `tag` model instead of tagId property.
- Improve email validation error handling for external logins
- Correct cdn path
- Stop including GlobalPath in default context
- Calculate email attachment size limit correctly
- Onebox image alignment
- Upload events happened outside of the runloop
- IconList is an array in production
- We shouldn’t debounce this in testing
- Tests were performing `data``` queries but without quotes
- Handle uncaught exception
- There are two elements with a `suspend-reason` class
- Remove error for PostCreator in a transaction without skip\_jobs
- Show better error if no bookmarks found from search
- Cached badge\_count isn’t updated after backfilling badges
- Modal methods should be wired up in `setupTests` not in module
- Selected Tag Group permission shouldn’t change during save
- Add missing translation for ‘views’ key.
- Precompile wizard stylesheet
- In newer embers, it’s `triggerKeyEvent` not `keyEvent`
- Do not allow a tag to be synonym of its own
- Use the correct key for the receive\_emails scopes
- Remove post-action when a post is permanently deleted
- IndexCategoryForSearch category\_id job exception
- Disable auto\_update for existent themes
- Save draft when either title or reply is present
- Inline avatar style for onebox when embedding secure images
- Show read indicator only for group PMs
- Disallow editing of remote themes
- Store Reviewable’s force\_review as a boolean.
- Paste the spreadsheet to the composer
- Do not optimize animated images in cooked posts
- Reset category edit page button state
- Add a way to cancel initialization of new draft
- Use `filters` parameter instead of `filter` for staff action log
- Add history icon to svg\_sprite list
- Ensure staff can see /tag/none
- Do not optimize uploaded custom emoji
- Precompile all plugin and color definition CSS assets
- Restore (deprecated) ability to overwrite a property
- Improve failover for multisite clusters
- When creating linked topics make sure they belong to same category
- Hide sso email behind a button click and log views
- Use more specific selector for header
- Show hidden posts to staff members.
- Remove duplicate category description
- Renaming and deleting tags
- Handle rapid concurrent SSO attempts more gracefully
- Make secure image onebox check more robust
- Do not use “max\_tags\_in\_filter\_list” setting for showing PM tags
- Small copy change in wizard
- Paths with categories and tags were being generated incorrectly
- Global setting needs to be coerced to float
- Improve errors when invite to topic fails
- Do not enable published page if secure media enabled
- Correct “no tags” route in tag drop-down
- Trim no-break space in to-markdown
- Inconsistency in S3 inventory config
- Include header offset relative to window
- Update review settings.
- Limit\_topics\_per\_day should only apply to regular topics
- Secure\_media stripping on lightboxes, non-image links
- Enqueue PostCreator jobs outside transaction block
- Group notification level cannot be null
- Stop bypassing email checks for invite emails
- Safely skip secure\_media steps when it’s not enabled
- Show error message if user is already silenced or suspended
- Remove 4 month limit on IgnoredUser records
- Hide ‘category read only banner’ in categories list page.
- Make all email subject vars available in notification subjects
- Make addNavigationBarItem subfolder compatible
- Disabled action buttons on newly-created category
- Show an example username in Review Settings
- Ensure oneboxed secure images which are optimized and also lightboxed optimized images are embedded in email
- Category drop shows undefined
- Use `<>` link instead of code for discobot backup image link
- Keep tag filter value when changing the category dropdown.
- Search filters text was not able to be overridden
- Support new Google Analytics id format
- Strip the trailing slash (/) of cors origins.
- The attribute is `discourse-url` not `data-discourse-url`
- Staff can create and edit posts even if a topic is in slow mode.
- Show ‘quote’ button when topic is closed but composer is open
- Pretty text allow list
- Ensure group SMTP and message builder always uses from address for Reply-To when IMAP is enabled
- IPad DiscourseHub app layout issues
- Hide delete button if user cannot delete and/or flag a post
- Capybara diet upgrade, can eat real 🌿 now
- Show title on results of all poll types
- Converts html to text to use it as title attribute
- Adjust user card position, follow-up to da5841d
- IPad app sticky header positioning
- Ignore PGP data in emails by MIME type
- Reset invite when resending it
- Prevent slow bookmark first post reminder at query for topic
- State is leaking between tests, causing flakey failures
- Only include last\_posted\_at if there’s a topic\_user object.
- Add check for youtube thumbnail
- Removes duplicate “ and adds ‘ and ’
- Properly handle quotes and backslash in `Search.set_tsquery_weight_filter`
- Invite users with sufficient trust level
- Optimizes sk body position in RTL mode
- Persist secure image width and height if is given
- Pass user to Email::Sender to avoid broken reply key for group\_smtp email
- Restore users#topic\_tracking\_state route to api session\_info scope
- Converts “ and ” to " in local dates
- Attempts to convert french quotes to regular quotes in dates
- Include font import for embedded comments
- Remove need for overflow hidden, follow-up to da5841d
- Ensure old uploads can have animated field updated
- Ensure slow mode duration is correctly edited and displayed.
- Loading container needs same width as posts, follow up to da5841d
- Moderators can add/remove group owners
- Enable “remove tags” button only when tagging is enabled
- Calculate page if page param is not given to TopicView
- “Sorry an error has occurred” was shown when flagging a post
- Only TL4 users and staff should be able to see the disable slow mode button
- Styleguide is only a parent url and is accessed with /styleguide
- Check for link target attribute on link clink
- Resolve issues running qunit via rake
- Sort using ruby to avoid N+1 queries
- Wizard theme preview when logo is missing
- Killing a Unicorn worker shouldn’t kill a running backup or restore process
- Backup didn’t work anymore after a running backup was canceled
- Error messages from editing user being swallowed
- Disabled option for sk was not working correctly
- Use new color variables in embed.scss, remove hardcoded colors
- Handle .discourse-compatibility syntax errors
- Observers weren’t working on admin email logs
- Second factor cannot be enabled if SSO is enabled
- Display correct reply count for crawler
- Include subfolder base\_path in web app manifest shortcuts
- Make browser-update work with IE`\<11
- Favicon count was not updated when window focus returned
- Use scope name when serializing UserApiKeys
- Ensures insert hyperlink works with mailto
- Ensures category chooser is working with non english char
- Confirm new email not sent for staff if email disabled with “non-staff” option
- Scheduled jobs not showing up in /sidekiq/schedule in dev.
- Missing SVG mask asset in wizard
- Group Requests loading was broken
- Respect show\_category\_definitions\_in\_topic\_lists in category lists
- Include topics from subcategories in tracked list
- Compare Jobs::UserEmail type argument as string
- Use getAttribute instead of dataset
- When admin changes an email for the user the user must confirm the change
- Fixes regression where wizard dropdown couldn’t update
- Correctly render title-less poll widgets
- Find noscript element with crawler content
- Handle poll titles when headings are present
- Escaped `mailto` URLs would raise an exception
- Disallow email invites if enable\_local\_logins is disabled
- Always let moderators to see their group PMs
- Deprecated overwriting of computed property
- Validate category name on parent change
- Makes dashboard periods use current day and weekly 7 days
- Preload uploads in groups#search to stop N+1
- Hide empty popular/recent sections in 404 page
- Build was broken because uglify can’t accept `let` or `const`
- Stripping lines from incoming email shouldn’t fail for blank body
- Remove whitespaces around inline HTML tags next to text.
- Use topic title headline in search menu result.
- Clear notification of skipped narrative bot PM
- Move hp request from /users to /token
- Allow staff to use HTML in the category read only banner
- Migration should only update ReviewableUsers where the user is not approved.
- Allow .otf fonts to be delivered via cdn
- Better error message if invite is expired
- Deprecation overwriting `translatedText` CP
- Make bundler CI cache setup explicit
- Correct value of auto and adds nohighlight to the description
- Invalid URLs could raise exceptions when calling UrlHelper.rails\_route\_from\_url
- Use correct locale for error messages
- We were overriding the `canCreateTopicOnCategory` computed property
- Empty highlighted\_languages resulted in `["", "auto", "nohighlight"]`
- Correct corrupt encoding in emails containing attachments
- Respect force download when downloading secure media via lightbox
- Admin change email for user process improvements and fixes
- Prevents scrollbar jumping in the emoji picker
- Removes time from date in calendar range at midnight
- When the user is promoted to TL2 invite to advance training
- Deprecate whitelist constants
- Dismiss unread respects tracked query param
- Don’t include category in quote topic title, if present
- Don’t skip the new user badge
- `mouseEnter` is deprecated in newer Ember releases
- Email always settings were not being respected
- Remove category id from category class name
- Only staff can edit topic details when first post is locked
- Allow editing in composer before a category is selected
- Use scrollY for current scroll position
- Unexpected return during system\_message\_sent event
- Prettier popular-themes.js
- Replace broken Material Design preview link
- TL2 promotion message and advance training
- Don’t error Topic#similar\_to when prepared raw is blank
- Do not downcase group name in notification payload
- Respect moderator group permissions in guardian
- Error “unknown attribute verified” in uploads rake tasks
- Use normal logo in published pages if small not available.
- If no group is found, raise correct error
- Compensate for typographer
- Nested quotes in BBCode
- NotificationLevels import was incorrect
- Missing / after basePath was causing the URL to be relative
- Ensure multisite DB is set correctly when spawning backup process
- Whitelist marker elements when uploading SVGs
- Forking prevented notifications from being sent after backup
- Hidden was defined as static instead of relying on attribute
- Provide better API for registering custom upload public types
- Do not downcase group name in current user serializer
- Use asset\_hostnames in rails\_multisite
- Fix verification\_status migration for uploads
- Group tag notifications included for all users
- Don’t show Tags tab in group management if tags are disabled
- N+1 for admins viewing groups page
- Uses get() on properties of groups/badges which could be POJOs
- Attempts to make autofocus more resilient in modals
- Category slug route was not working for subfolder setup
- Clear stylesheet cache on base font change
- Missing files from previous commit
- Topic progress wrapper positioning regression
- Img width and height should be in quotes
- Simplifies updating searchedTerms from connectors
- `TopicQuery.list_private_messages_unread` ignore notification level
- Improvements after code review
- Spec for oversized images security fix
- Wizard does not include `discourse-shims`
- Adds shims for popper in wizard
- Mark only uploads as verified/unverified in S3 inventory
- Upload errors were sometimes not displayed properly
- Make form use /u/admin-login instead of /users/admin-login
- Selected diversity was off by one
- `isVisible` is no longer allowed even if used properly
- Was using a global `Popper` variable
- Ember has deprecated `isVisible` in newer versions
- Ensures focus is dropped before focus hyperlink input
- Wrap modal onShow inside next
- Ensure uploads are linked to post when revising a post
- Prevent “uploads are missing in S3” alerts after restoring a backup
- Prevents eslint failure on unmatched patterns in plugins
- Make sure rel attributes are correctly set.
- Adds important declaration to `.hidden` utility/helper class
- Ignore empty search terms in topic queries
- Account for different composer ‘edit’ states in discourse-presence
- Update first\_pm\_unread\_at of user’s groups without unread.
- Search checkboxes incorrectly being checked on similar prefix.
- Admin search for PMs should only search own PMs.
- Topic\_creator accepts participant\_count in import mode
- We should check for watched words first even if the user is a fast typer.
- `approve post count` did not take new topics into account
- Admin should always be able to view group messages.
- We have changed the way `__widget_helpers` are resolved
- Handles different cases of canInvite/canRemove states in PM
- Workaround constructor name not available after transpilation
- Wraps popper call in afterRender and uses createPopper
- Make deleted topic post bookmarks more resilient
- Allow us to call `script_asset_url` in controllers
- Ensures we don’t attempt to concat an empty list
- Preload bold fonts in wizard
- Prevents error when opening a composer from a tag page
- Make crawler linkback list compatible with google schema guidelines.
- Convert jQuery array to JS array
- Whoops, linting
- Gravatar download attempt if user is missing their email
- Don’t send mailing list for post with empty content
- Highlightjs 10 requires some languages to be loaded before others
- Remove font-famly property in .font- classes
- System message wasn’t fully translatable
- Updates highlightjs to latest version to avoid a freeze
- Check if invite has expired before showing it
- Add to tags result set only visible tags
- Don’t raise error in update username job if user has been deleted.
- Wait for groups before showing empty message
- Add cache breaker for fonts
- Allow fonts to be delivered via CDN
- Skip pm view action log while generating webhook payload.
- User export category preferences on a deleted category.
- Emails.rake use authentication
- Modify notification after remove auto\_watch\_category
- Handle deleted categories in post export
- Focus first button in topic admin menu
- Ensure disabling 2FA works as expected
- Disable insert link button when editing a category
- Flaky JS test due to not waiting for promises
- Dont error when bookmark topic is nil
- Do not set color\_scheme\_id in user options when no schemes are marked as selectable
- Pluralized translation overrides didn’t work for en\_US
- UserAction did not have a types enum
- Bump onebox to fix soundcloud oneboxes
- Suspend API to require `suspend_until` and `reason` params
- Remove additional paths from robots.txt
- `default_tags_muted` site setting won’t have tag ids.
- Ensures period-chooser is not losing query params
- Correctly redirect after external login on subfolder sites
- Ensure that topic timers belonging to trashed topics are destroyed.
- Clean up toggle closed topic timer when user is not authorized.
- Clean up topic\_timers when no longer valid.
- Ensure autoclose based on last post is executed by system user.
- Topic Timer auto opening closed topics
- Symbols and strings should be treated similarly while saving custom fields
- QUnit site has to be set before `reset()`
- Server side rendering was broken with new `helperContext()`
- Remove container from utilities
- DEV: Lock-on improvements
- 🐛 category & tag search regex to support thai character
- Limit number of users addable to group at once
- Duplicate categories and tags allowed in inputs where they shouldn’t be allowed
- Group categories inputs not filled sometimes
- Improve Vanilla importing
- Current title wasn’t visible when assigning badge title
- Ensures diversity code is not applied multiple times
- Close picker on emoji selection when on mobile device
- Add cache-busting parameter to ace-editor javascript
- Removes us\_pacific-new from the list of available timezones
- Stop category logo + background being marked secure
- Restrict `personal_messages:` advanced search filter to admin.
- Correct `personal_messages:``` advanced search filter.
- Remove unnecessary audio/video parent element load
- Prefer timezones over timezone for previews
- Backups should use relative paths for local uploads
- Display warning only if all users already added to the group
- `Topic.similar_to` results in error if cooked raw is blank.
- Bookmark list showing wrong no content message
- Wizard could not send custom color schemes to the client correctly
- Detect dark scheme server-side for better dark logo support
- `user_option` option can be `nil` for new users.
- User titles from translated badge names were automatically revoked
- SiteSettings::LocalProcessProvider didn’t work on multisite
- Default\_tags\_muted setting should work for anonymous users too.
- Sending a PM through a flag on a deleted post
- Error message when setting enforce 2fa with social logins
- Delete unused tags shouldn’t delete tags belonging to tag groups
- Unlike own posts on ownership transfer
- Polls can be quoted and loaded
- Do not cancel search early in tests
- Display label when theme uses default color scheme
- Do not override logo markup when loading page in dark mode
- Fix css var issues + button :active gradient
- Makes group\_show\_serializer#is\_group\_owner follow standards
- Always wait for promise when loading a topic
- More efficient and resilient widget-dropdown body
- Add bookmark-list component
- Composer upload icon regression because of HEIC
- When destroying uploads clear card and profile background
- Add playsinline to twitter GIFs
- Allow safari to load and autoplay videos in posts
- Refactor broke wizard
- Skip rendering twitter video if matching format not found
- Broken when iconList missing
- Replace iframe with `<video>` for twitter videos
- Clicking on category autocomplete row
- Prevents errors on /tags when a tag `constructor` exists
- This leaves an empty example group in TRAVIS mode
- Ensure auto close notice is posted with system locale
- Mobile group add dropdown was broken
- Defer topic was broken
- `application` controller is not used by the card
- DEV: Introduce `@bind` decorator
- A paste event listener was re-added instead of being removed
- Add script asset locations to worker-src CSP directives
- Generate\_topic\_thumbnails job infinitely running for corrupted images
- Update preview when autocomplete is clicked
- Prevent `LockOn` conflicts
- Move queryParams to each discovery controller rather than shared
- Preserve anchors in permalink transitions
- Generate topic excerpt when moving posts to new topic.
- Make sure user preference to open external links in new tab works for bookmark list excerpts
- Do not require tagging to be enabled for IMAP archive and delete
- Allow plugin pinning to fetch missing commits
- AWS S3 errors don’t necessarily include a message
- Change the controller method name to match its new name.
- Heisentest with topic timings
- Allow mods to choose restricted categories as parent category.
- Color scheme selection with non-default theme
- Expose PG headline highlighting for all search results.
- Limit PG headline based search blurb generation to 200 characters.
- Try to make topic\_tracking\_state\_spec stable
- IOS/iPadOS freezing when changing notification level in topic footer
- Use correct site setting when uploading images
- Invalidate cache when updating color scheme colors
- Ensure load more directory items has a .json url
- Return 422 when creating topics with tags w/out permission
- Include secure media URLs when linking post uploads
- Update colors for presence plugin
- Smaller header font size for published page
- Include both name and id in color scheme stylesheet filename slugs
- Sync reviewable count when opening the hamburger menu
- Removes persistedQueryParams as it should work out of the box
- Specify config when generating tsquery using `ts_headline`.
- PM participants list refreshing after inviting
- Missing bottom border in select-kit color list settings
- User preferences tests didn’t always have pretender called
- Stop sync of tracking state when list is filtered
- Only raise proper `"error"` messages
- Pretender errors were being swallowed
- Raise errors for broken pretender responses in test mode
- Replace `fullPath` while rewriting the `/my/` URLs.
- Ensures shadow has last\_posted\_at before comparing to site setting
- Attempt to output a useful error message
- Shows all\_results if current settings category has no results
- Disable concurrent migration for `multisite:migrate`.
- Don’t run seeds if multisite migration fails.
- Excerpts larger than 999 are not supported
- Topic map was incorrectly counting assign actions
- Show “group members forbidden” message on mobile
- Rewrite of `/my/`URL should work on sub directory site too.
- Allows to change a user group notification level
- Previous fix comitted the wrong thing and was broken ☹
- Exclude shared drafts from digests
- Current value of flair icon missing in group manage UI
- Load base color scheme when default theme is not set
- Check if selectable avatar with SHA1
- IMAP archive fix and group list mailbox code unification
- Discobot inappropriate flag section
- Bug with sharing when used outside a topic
- Get correct selectable avatar from URL
- Exclude `DELETE` methods from invalid request with payload.
- Reset max\_posts query parameter
- Respect query params for latest.rss
- Set mailing\_list\_mode to false when unsubscribing from all
- IMAP sync email update uniqueness across groups and minor improvements
- Removes an error in the console in test mode
- Should allow non-ASCII slugs for category pages.
- Reset ‘filter’ query parameter when clicking on a nav-item
- Keep category name in URL when filtering
- Allow ‘c’ as a tag
- Define s3\_helper in EnsureS3UploadsExistence job
- Rename delete\_when\_reminder\_sent? bookmark method to avoid conflict with AR
- Add protection when removing auto delete on post bookmarks
- Ensure topic user bookmarked synced on bookmark auto-delete
- Allow playsinline for videos in posts
- Ensure correct locale is set during RenderEmpty responses
- Reduces charts height
- Prevents group show serializer to override basic group serializer
- Computed property deprecation
- Page:changed was sometimes reporting the wrong URL
- Add back group redirects
- Bump onebox to 2.0.1 for engine priority fix
- Cooked snippet of raw in `Topic.similar_to`.
- Handle case where `Post#raw` is blank in `Topic.similar_to`.
- Improve `Topic.similar_to` with better `Topic#title` matches.
- Improve allowed\_path column migration
- Resolve issue where deleted spam topics marked as Not Spam were not being recovered
- Avoid validation error when deleting users with locked trust level
- Uses topic title for published page head title
- Reduce number of terms injected for host lexeme.
- Improve regexp for matching version lexeme.
- Don’t inject extra terms for version lexeme.
- Add a translation for reaction notification
- Reserve id for reaction notifications
- Use allowlist and blocklist terminology
- Tests that used the olds paths
- Uploads was not testing properly
- Pass `siteSettings` through in more places
- Add enable\_email\_sync\_demon global variable and disable EmailSync demon by default
- Add strip\_secure\_urls method to GroupSmtpMailer
- Do not show Email tab for group settings unless IMAP + SMTP enabled
- Tests for reindex\_search\_spec pass regardless of seed
- Display correct status on unsubscribe page
- Move consts and translations for bookmark auto delete prefs
- Restore navigation-bar on tag topic list
- Include resolved locale in anonymous cache key
- Make set\_locale an around\_action to avoid leaking between requests
- Improve email styling of code blocks
- Remove iOS trick to prevent scrolling when focusing on input
- Reviews that are auto-hidden by a trusted spam flagger should always have enough weight.
- Remove the border from YT thumbnail placeholder
- Apply video preview trick for Safari to stream only
- Add system fonts to wizard
- Allow user to recover/delete post if they can review the topic
- Typo in `NotificationsController#index` not caught by tests.
- Ignore removed delete\_when\_reminder\_sent bookmarks column
- Stop double prepending of window.location.origin on media URLs
- Test for fillGapBefore
- Remove `username_lower` from admin serializer
- Keep by\_users check in S3 inventory
- Delete synonyms in topics if target tag is already added.
- Improve S3 inventory logic
- Gives emojis a width/height to prevent lazy loading warning
- Handle PG readonly mode in `Auth::DefaultCurrentUserProvider`.
- Don’t raise error when adding to cache fails in readonly mode.
- Trigger before upload event after saving and before uploading it, so we are sure that the upload is valid.
- Users should be able to delete their own queued posts
- Focus tests are unreliable in qunit
- Our test build of highlight.js was broken
- Raw jQuery usage in tests
- `deleted` is a computed property of Topic
- Report was overwriting a CP
- `category-drop` tests were broken and overwriting CPs
- Overwritten computed properties
- Missing favicon in test
- Listing topics with muted mixed-case tags
- Correct stream counter when load more posts
- Fewer broken image paths in tests
- Don’t use prototype extensions like `.observes`
- Tests involving dates were logging warnings
- `passwordRequired` is a computed property
- Poll tests were overwriting a couple of computed properties
- More 404 image requests in test
- Error in test mode with missing `topic`
- Don’t load images that don’t exist in test
- Tooltip is no longer used
- `Discourse.Site` is deprecated
- Show background images for both slug formats
- Missing title when inserting hyperlinks
- Bookmark search fixes
- Reindex posts when `Topic#title` or `Category#name` changes.
- Add topic title back to choose-topic
- Update meh-o icon to far-meh
- Be sure to use same units when comparing thumbnail size
- Fewer 404s in JS tests
- More errors being logged in tests
- Deprecation `usernames` is now `recipients`
- Remove more computed properties being set
- Deprecation - `usernames` is now `recipients`
- Overwriting more computed properties
- Remove computed property setting from hamburger test
- Don’t use jQuery directly in a test
- Setting computed properties in tests
- Removal of i18nPrefix deprecations
- Remove user\_deleted when staff recovers post
- : trigger `user_updated` event only if email changed after user creation.
- `in:title` search should only search through topic first posts.
- Search page bulk-select button position
- Count new and unread respects muted categories
- Prevent thumbnail gen if image too large
- Apply video preview workaround to iOS
- Regression in secure URL generation, followup to 36bad0c
- Preload metadata for audio/video when secure media enabled
- Trick Safari into loading video previews
- Off-by-one-slash error in topic.notifications.reasons
- Add noindex header to user summary page.
- Don’t overwrite `maxlength` computed property
- `loaded` is a CP and can’t be overwritten
- Silence route-recognizer source map errors in development mode
- Silence ember-qunit source map warning
- Add popper sourcemap
- Properly load ember source map in development mode
- Can’t set `url` on topics, it is calculated from slugs
- Error with `currentCategory`
- FilterPlaceholder is a computed property
- `topic.details` is not a plain JS Object
- Allow highlightjs-worker to be compiled successfully
- Ignore document length in search when ranking by relevance.
- Prevent redirect when image scale btn is inside a link.
- Search by relevance may return incorrect post number.
- Add protection just in case topic is not set
- Correct user profile URLs in `/about` crawler view
- Strip query from URLs when indexing for search.
- Inject extra lexemes for host lexeme.
- Search for whole URLs wasn’t working.
- Improvements for vanilla bulk import
- Ensure that aggregating search shows the post with the higest rank.
- Various improvements to bookmark modal UI
- Incorrect search blurb when advanced search filters are used take2
- Get only the correct collapse title in emails
- Don’t strip `noopener` from oneboxes
- Don’t award new user of the month in the wrong month
- Remove social sharing icons from private contexts
- Check if last poster exists before using it
- Set the lang/xml:lang html attrs in emails
- Skip whisper posts when updating topic like count
- Slightly reduce fake delay of discobot user.
- Last visit bar regression
- Allow signup when auth provider supplies no email
- Replace links to removed uploads from reviewables with a placeholder
- Do not display enabled inputs when username/name are locked
- Sync client and server side behavior for category hashtag lookup
- Post menu bookmark icon and attributes not refreshing on notification click
- Migrate topic\_users.bookmarked to false when it is incorrectly true
- Test output related to `Discourse::VERSION`
- Flaky test
- Flaky tests
- Incorrect fix for invites breaking when no group is selected
- Invites when no group is selected
- Catch all kinds of exceptions when processing email
- Short URL resolution in cook-text
- Force ActiveRecord reading role if Redis is down take 2.
- Force ActiveRecord reading role if Redis is down.
- Do not send system emails to suspended users
- `getURL` deprecation
- ‘resend all invite’ button was not working as expected
- Cap bookmark name at 100 chars and truncate existing names
- Stop updating bookmarked column from TopicUser.update\_post\_action\_cache
- Incorrect search blurb when advanced search filters are used.
- Disable security keys at same time as TOTP 2FA
- Bookmarks shortcut goes to new bookmarks with reminders
- Do not highlight large code blocks
- Set default value for poll result field
- Redirect user to the URL with the correct category slug
- Ensures category order keeps consistent
- Add table CSS rules to normalize
- Fix race condition when resolving tag and category hashtags
- Improve category hashtag lookup
- Generate Topic Thumbnails nil to Array error
- Handle the case where upload goes missing during downsizing
- Do not rerender widget-dropdown on all clicks
- CookText may be gone before promise resolves
- `OptimizedImage#filesize`
- Make Email::Styles operate on html documents instead of fragments
- Ensures seconds are displayed when used with dates
- Update normalize css from 3.0.1 to 8.0.1
- Skip hidden posts while generating canonical url.
- Uploading an existing image as a site setting
- Uploading an image as a site setting
- Emoji autocomplete not triggering correctly
- Increase time of DOWNLOAD\_URL\_EXPIRES\_AFTER\_SECONDS to 5 minutes
- Negative limit values shouldn’t cause error 500
- Filter read/unread notifications on the server side
- Delete related search data when record has been deleted.
- Return cdn url for uploads if available.
- Support root paths that omit the trailing slash and have QPs
- Search was not multisite aware
- Hide publish\_read\_state option from non-admin users
- Sometimes not all output of psql was logged during restores
- Emoji\_autocomplete\_min\_chars failing when not 0
- Update theme fields when updating from ThemesInstallTask
- Uploads cannot be mapped due to the cook-text’s element attr being null
- Identify slug-less topic urls everywhere
- Correct version comparison logic when comparing stable to beta
- Serialize an empty array if no suggested topics exist
- Seed needs to run before optimizing site icons.
- Published-page-header should be a sibling to published-page-body not a parent
- Broken specs
- Remove paths from robots.txt in favor of noindex header
- Match discobot triggers on cooked version
- Invalid urls should not break store.has\_been\_uploaded?
- Avoid marking notifications as seen in readonly mode.

---

<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: [November 30, 2020, 9:59pm UTC](https://meta.discourse.org/t/discourse-version-2-6/151394/4 "2020-11-30T21:59:18Z")

</div>

## UX CHANGES

- Don’t show selected posts interface twice on mobile
- Add group name to error message
- Slightly adjust onebox alignment
- PM title glyph alignment and consistency improvement
- Do not include current user in group-filtered directory results
- Revamp category security tab
- Update “Rebuild-HTML” icon
- Bottom padding for menu panel on iOS notch devices
- Only link the icon for site setting history
- Handle large email addresses on email skipped and bounced tabs
- Update the invite button label
- Draft delete button was looking odd on user stream
- Use appropriate logo on static pages
- Layout changes to edit category page
- Add a confirmation dialog for draft deletion
- Add a link to invites on quick access profile panel
- Increase the hit area of pinned topics on mobile
- Add stock suspension reasons to suspend dialog.
- Increase limit of custom user fields
- Minor cosmetic fixes to the wizard
- Show theme git branch for private repositories
- Remove label and add danger class to remove draft button
- Truncate long usernames in multi-username notifications
- Give furigana and other top-overflowing elements a little space
- Truncate long nav items in dropdown menu
- Update topic small action post to add link for new linked topic URL
- Wider canvas buttons in wizard
- Sort user badges by Gold \>` Silver >` Bronze.
- When creating linked topic use URL and let onebox work its magic
- Fix confusing admin UI for color scheme updates
- Update labels to indicate that invite link will be generated (not copied)
- Inform staff users that new users will be auto-approved on invite
- Prioritize “invite by link” option (for staff users)
- Improve error message for already logged in users
- Move category editing/creation to its own page
- Remove forgot password button from login-preferences
- Fix mobile padding-top on mobile, follow up to da5841d
- Increase width & center category reorder input
- New Topics Will Appear Here display changes
- Increase input width on accept invite page.
- Replace cog icon in user menu with user icon
- Don’t truncate category names in search panel
- Fix styling for posts and views advanced search
- Consistent password label on signup and invites page
- Show range for advanced search views filter.
- Allow horizontal scroll on mobile post buttons
- Prevent categories from overflowing select-kit
- Center wizard vertically
- Use pointer cursor for wizard buttons
- More upbeat message when topic list is empty
- Use simple list for settings without choice options
- Ensures new-topic badge renders consistently
- Remove the post number from a composer label
- Replace “Loading…” in quotes with a spinner
- Add width and height to GitHub onebox inline avatar in emails.
- Update dark mode styling of new user overlay
- Landscape spacing in iOS devices with a notch
- Remove extraneous ellipsis after “loading”
- Makes emoji picker case insensitive
- Make the api-keys new and show page a little more responsive
- Display moderators group name in the group dropdown menu.
- Prevents auto capitalize/correct in the emoji picker
- Add missing labels to mobile composer buttons
- Hide category settings badges checkbox when enable\_badges is off
- Wrap extra long links in GitHub oneboxes instead of overflowing
- Don’t wrap topic status icons in the header if there’s more than one
- Restyle user menu so user links are findable
- Make category topic counts clickable on mobile
- Better handling of long category names and button bar in composer
- Clarify timezone formatting
- Show a generic error on upload for XHR status 0
- Add category-title-before to categories-boxes layout
- Timeline should jump to the bottom of the post in single-post topics
- Minor layout fixes and improved consistency on theme admin
- Improves picker on automatic dark themes
- Lowercase tag name before checking it with topic title.
- Tweaks to admin color palette dropdown
- Better wording when there are no unused tags to delete
- Help users understand the meaning of each scope.
- Use the same formatting for both user and group card bios
- Preload muted categories list to prevent rendering delay.
- Ensures search results wrap on mobile
- Set silence\_reason using the system locale
- Update header background color in mobile app webview
- Ensure CSS vars are loaded in the Wizard stylesheet
- Refactor pikaday month prev/next button styling
- Refactor lightbox hover drop shadow
- Uniform focus styles for composer inputs/textarea
- Allows to navigate widget dropdown with tab and enter
- Fix spacing of composer preview on mobile
- Shrink composer consistently when pressing Done in iOS
- Improve alignment and consistency on full page search
- Fix quote sharing button spacing
- Better error message if moderator is not allowed to invite to group
- Fix missing icon when merging selected posts
- Use group-chooser in invite modal
- Fix layout for long bookmark notes
- Simplifies editing email templates by always having a default
- Add link to user email preferences in admin view
- Remove extra space added by img resize controls in composer preview
- Restore table borders
- Hide login button during externally authenticated account creation
- Suppress “in reply to” section in emails by default
- Truncate long badge names in the mobile usercard
- Add Login button on 403 error page if user is not logged in

## SECURITY CHANGES

- Ensure users can see the topic before setting a topic timer.
- \_\_ws shouldn’t be able to override every domain in multisite
- Return error on oversized images
- Mod should not see `group_users` and `second_factor_enabled`.
- Remove indication that a group exists if user can’t see it.
- Don’t allow moderators to list PMs of all groups.
- Don’t allow moderators to view the admins inbox
- 413 for GET, HEAD or DELETE requests with payload.
- Bound the amount of work that embed#topics can do
- Add content-disposition: attachment for SVG uploads

## PERFORMANCE

- Avoid using destroy\_all when removing stats
- Avoid checking card background and user background when not supplied
- Simplify topic serialization for user summary page
- Preload topic thumbnails for all topic lists
- Update index for category in a background job.
- Introduce aggressive rate limiting for anonymous
- We don’t need to use a huge image to test thumbnails
- Apply sprockets patch in a test environment
- Disable Sidekiq only during database restore
- Don’t ask for new posts while loading new posts
- Backoff background requests when overloaded
- Avoid lookbehinds when indexing search
- Do not enqueue digest emails when attempted recently
- Introduce absolute limit of digests per 30 minutes
- Remove category\_user lookup when loading private messages.
- Fix N+1 queries on private messages route.
- Fix broken memoization in `GroupShowSerializer`.
- Use 1 query to load group and tag notification default.
- Remove an unncessary query when check for dark mode.
- Memoize calls to `ApplicationHelper#scheme_id`.
- Keep track of first unread PM and first unread group PM for user.
- Don’t load all poll\_votes for a poll
- Add partial index on reviewables for topic view
- Create a partial regular post\_search\_data index on large sites.
- Avoid extra subquery when searching within PMs for normal user.
- Defer indexing post for search when saving a post.
- Drop index idx\_regular\_post\_search\_data concurrently
- Drop idx\_regular\_post\_search\_data during migration
- Improve performance of post\_search\_data migration
- Ensure transaction is of minimal size
- Add partial index for non-pm search.
- Prefer joins over subquery for `User#private_posts_for_user`.
- Remove extra subquery in search.
- Switch to ActiveRecord’s upsert in `SearchIndexer`.
- Faster TL3 promotion replies needed calculation
- Limit characters used to generate headline for search blurb.
- Use PG headlines for blurb generation and highlighting for search.
- Replace video and audio links in search blurb while indexing.
- Optimize `ActionView::Helpers::TextHelper#excerpt`.
- Release post\_upload records when downloaded image is removed
- Move URI regexp in `GroupSearchResults.blurb_for` into constant
- Remove one extra call to Redis when searching.
- Preload S3 inventory data for multisite clusters
- Avoid parsing `Post#cooked` with Nokogiri for every search.
- Combine avatar\_lookup and primary\_group\_lookup into user\_lookup
- Reduce size of search payload by removing unused topic attributes.
- Move highlightjs to a background worker, and add result cache
- Topic\_view participant post count: don’t send back ID list
- Cache user summary data
- Add user\_id condition so we can use another index in the query
- Load topic bookmarks for the user in user\_post\_bookmarks
- Remove post\_upload recovery in daily EnsureS3UploadsExistence job
- Do not include thumbnail information in default topic list payload
- Use post number to create canoncial path in mega topics.
- Only update etag when it changes
- Refactor lightbox decorator to use querySelectorAll
- Check for modal visibility in a more efficient way
- Exclude `image_url` and `thumbnails` from `SearchTopicListItemSerializer`.
- Cache all metadata for 60 seconds
- Stop adding more topics to search when not needed

---

<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: [November 30, 2020, 10:49pm UTC](https://meta.discourse.org/t/discourse-version-2-6/151394/5 "2020-11-30T22:49:25Z")

</div>


