Discourse Version 3.0

AI-generated summary

Discourse Version 3.0, codenamed Nipkow, is set for release in January 2023, following the January 2022 start date. The update introduces numerous enhancements, including a customizable sidebar for wider screens, real-time chat support, a redesigned user menu, and an improved setup wizard. Key features include official user status support, enhanced security with high-security mode for hotlinked images, and a new horizontal progress bar to replace loading spinners. Other improvements cover better instant search, reduced blank page syndrome, and improved undo support in the composer. The update also includes functional upgrades such as partial read-only mode, enhanced 2FA, and live user status with emoji and text. The release focuses on usability, security, and performance, with features like password visibility toggles, better notification handling, and improved moderation tools. The announcement highlights both new capabilities and bug fixes, reflecting a comprehensive upgrade to the platform.

Focus

Codename

Start date

January 27th, 2022

Planned release date

January 2023

84 Likes

New Features

  • Allow target attribute in links in user_field descriptions
  • Make experimental hashtag autocomplete default for new sites
  • Warn admins about private group name’s exposure to anonymous users.
  • Add user toggle to mask/unmask passwords
  • Onebox for Embed Motoko
  • Integrate DnD with user status
  • Add support for desktop push notifications in core
  • Send notifications to admins when new features are released
  • Sort hashtags starting with term higher priority
  • Show user status on group pages
  • Chat and Sidebar are now on by default
  • Differentiate notification type for directly vs indirectly watched topic
  • Add chat and sidebar toggles to the setup wizard
  • Allow category moderators to set auto deletion topic timers
  • Show similar users when penalizing a user
  • Optionally allow a separate s3_asset_cdn_url to be specified
  • Allow showing hashtag autocomplete results without term
  • Better UI to manage 2fa
  • Enforce mention limits for chat messages
  • Show live user status on inline mentions on posts
  • Youtube Short onebox support
  • Allow user_status scope for UserApiKey
  • Improve composer warnings for mentions
  • Channels can allow/disallow @all/@here mentions
  • Add experimental plugin API to register messages nav dropdown
  • Separate notification indicators for new PMs and reviewables
  • Track API and user API requests
  • Deleting a user with their posts also deletes chat messages.
  • Add import script for Elgg
  • Sidebar for narrow desktop screen
  • User Status API
  • Allow setting default_enabled for badges
  • Add descriptions on hover for hashtag search results
  • Allow staff to flag chat messages
  • Sync user tips status between client
  • API to customize server side composer errors handling in the client side
  • Add TL1 to chat_allowed_groups by default
  • Generic hashtag autocomplete lookup and markdown cooking
  • API to update user’s discourse connect external id
  • Hidden site setting to suppress unsecured categories from admins
  • Stop hiding “allow archiving channels” setting
  • Deprioritize like notifications on all list
  • Add user tips for post and topic features
  • Introduces chat_max_direct_message_users setting
  • Default Composer Category Site Setting
  • Replyable chat push notifications
  • Add cooked post to user archive exports
  • Rename onboarding popups to user tips
  • New site setting to hide user profiles by default.
  • Reduce suspicious distance logins warning to 100km
  • Control topic width with variables
  • Generic hashtag autocomplete sorting
  • Hide welcome topic if it hasn’t been edited
  • Add button to reset seen popups
  • Generic hashtag autocomplete part 1
  • Allow user to set preferred sidebar list destination
  • Add sidebar link for admin to configure default tags
  • Add sidebar link for admin to configure default categories
  • Add user status to user preferences
  • Implement new onboarding popups
  • Show relative time when date is omitted
  • Add contentCSSClass for sidebar section-link
  • Double color for subcategories prefix
  • Hide Privacy Policy and TOS topics
  • Adds seeded default categories to the sidebar
  • Preload resources via link header
  • Add dark mode option for category logos
  • Omit showing day when ‘to’ day is same as ‘from’ day
  • New outlet topic-list-main-link-bottom added to mobile
  • Handle oneboxes for complex GitHub URLs
  • Make General the default category
  • When entering a topic scroll to last visited line marker
  • Add setting to always confirm old email
  • Remember adjusted composer height
  • Optionally show user status on email group user chooser
  • Add review link to community section for logged in user
  • Add composer warning when user haven’t been seen in a long time
  • JS API interface for hljs plugins
  • New site setting to set locale from cookie for anonymous users.
  • Add site setting to include user associated account ids.
  • Make user status a public experimental feature
  • Introduce personal_message_enabled_groups setting
  • Overhaul email threading
  • Site setting to disable usernames in share links.
  • Select emojis in picker via keyboard
  • Add tooltips to timeline start/end dates
  • Other notifications tab for redesign user menu
  • Unified user menu notifications count
  • Replace Lounge with General Category
  • Show user status description on the mention popup
  • Make user status on post streams live
  • Add the set user status button to the new user menu
  • Anonymous sidebar categories and tags
  • Default sidebar categories and tags
  • Adding a simple CSV importer
  • Count views on published pages
  • Limit maximum recipients for group emails
  • Show default custom date on time-shortcut-pickers
  • Trigger backup_failed event on backup failure
  • Open create invite modal from the bootstrap notice banner
  • Allow configuration of smtp timeout settings
  • Add safe-mode toggle to /u/admin-login
  • Allow wizard checkbox field to be disabled
  • PWA users are prompted for push before first post
  • Adds full screen composer submit button and prompt
  • Show status in search results when mentioning user in composers
  • Allow private themes to be partially installed
  • Update bootstrap mode notice to add invite and wizard links
  • Add welcome topic cta banner
  • Add above-modal-header plugin outlet
  • Show status on post streams
  • Add image delete button in preview.
  • Track stats around failing scheduled jobs
  • Show SMTP response on admin email sent list and rearrange columns
  • Add support for case-sensitive Watched Words
  • Show user status on the user profile page
  • Revamped wizard
  • Add categories page style to order topics by created date
  • My_bb import supports avatars
  • Add users and groups links to community section in sidebar
  • Replace hamburger dropdown with Sidebar when undock
  • Users with no posts shouldn’t able to edit username after the allowed period.
  • API for sidebar
  • Add plugin API to register About stat group
  • Show status in the tooltip on the status bubble on the user menu
  • Publish everyone’s status to everyone
  • Plugin outlet for sidebar
  • Allow iframe allow attribute in posts
  • Auto remove user status after predefined period
  • Use full post width for Vimeo embeds
  • Store sidebar section display state in local storage
  • Decouple category/tag presence in sidebar from notifi level
  • Whispers available for groups
  • Validate tags in WatchedWords
  • User status emoji
  • New/unread messages count in experimental sidebar
  • Custom unsubscribe options
  • Expand messages filter links when viewing private messages.
  • Add Croatian language
  • Add messages section links to experimental sidebar.
  • Log the SMTP response in EmailLog
  • Change auto tracking to require 5 minutes vs 4
  • Add new/unread counts to tags section links exp sidebar
  • First pass tags section for experimental sidebar.
  • Display new/unread count for tracked categories in exp sidebar
  • Add section links to categories section to exp sidebar
  • Create upload_references table
  • Allow hotlinked media to be blocked
  • Allow for overlapping DiscourseConnect secrets per domain
  • Propagate user status via message bus
  • Highlight None option by default for bookmarks
  • User status
  • Make S3 presigned GET URL expiry configurable
  • Pull hotlinked images immediately after posting
  • Site setting for blocking onebox of URLs that redirect
  • Promote polymorphic bookmarks to default and migrate
  • Allow locals to be passed in server_plugin_outlet
  • Include participants in PN search data
  • Add page title to 404 pages
  • Allow category moderators to post consecutively
  • Introduce site setting to allow for non staff pm tagging
  • Restore scroll on user activity pages
  • Promote the “delete group” staff action log.
  • Polymorphic bookmarks pt. 3 (reminders, imports, exports, refactors)
  • Validate setting combination between exif strip and img opt
  • Add fallback to suggested value when auth_overrides_username
  • Introduce a sitewide setting for disabling suggesting weekends in time pickers
  • Optionally skip using full_name when suggesting usernames
  • Add group_messages: keyword to advanced search
  • Add in:messages search modifier
  • Scope search to PMs when in that context
  • Detect emoji from Emoji 14.0
  • Polymorphic bookmarks pt. 2 (lists, search)
  • Show prompt for required tag groups
  • Site setting to cap the recipient list in notification emails
  • Enables support for dark mode emails
  • Block indexing the embed topic list
  • Add user_suspended attribute in post serialize.
  • Add 2FA support to the Discourse Connect Provider protocol
  • Improve screened IPs roll up and extend for IPv6
  • Let sites add a sitemap.xml file.
  • Add a sidekiq job for syncing S3 ACLs
  • Add email dark mode
  • Sortable json-editor items
  • Allow for local theme js assets
  • Allow multiple required tag groups for a category
  • DiscourseEvent hook for sync_sso
  • Polymorphic bookmarks pt. 1 (CRUD)
  • Support upload:// urls in img tags
  • Let reviewables override the score type title.
  • Allow users to paste animated gifs into composer
  • Update push notification icons
  • Enable canonical url indexing
  • Replace share-popup with share-topic
  • Use canonical links in posts.rss feed
  • Add nofollow to RSS alternate link in topics and categories
  • Add mobile support for subcategories-with-featured-topics
  • Highlight expired bookmark reminders
  • Add link to original image in lightbox
  • Add new site setting list type with name and values
  • Use Postgres unaccent to ignore accents
  • Introduce ‘Subcategories with featured topics’ view
  • API to create user’s associated account
  • Prioritize group search order based on prefix match
  • Return geoname IDs from MaxMindDb
  • Add fullscreen button for code blocks
  • Add ENV to control themes:update errors
  • Upload an avatar option for uploading avatars with selectable avatars
  • Automatically select share URL
  • Show topic visited state on search page
  • Adds the user_promoted event to webhooks
  • Rename Reset Read bulk action to Defer
  • Replace share post popup with share modal
  • Disable indexing of non-canonical pages by default
  • Allow moderators to bulk change ownership
  • Add settings to scale daily flags limit
  • Centralized 2FA page
  • Mute subcategory when parent category is muted
  • Show error if invite to topic is invalid
  • New plugin API to check if upload is used
  • Use new topic-chooser for invite modal
  • Cache last post number
  • Redeem invites for existent users
  • Add external_id to topics
  • RS512, RS384 and RS256 COSE algorithms
  • In result.rb don’t use email for username suggestions until enabled in settings
  • Allow sending group SMTP emails with from alias
  • Split up text segmentation for Chinese and Japanese.
  • Select range in topic list with Shift + click
  • Add requestCustomMarkdownCookFunction API
  • Ability to re-order value lists
  • Onebox for news.ycombinator.com
  • Validate domain settings for blocked_onebox_domain only
  • New plugin outlets for categories-boxes template
  • Partial match aliases in emoji filter
  • Use native color-picker
  • Show the this weekend option on the bookmark modal
  • Make the use_email_for_username_and_name_suggestions setting visible and on by default on existing sites
  • Update cppjieba_rb to latest

Bug Fixes

  • Channel archive N1 when serializing current user
  • Error when publishing TopicTrackingState updates for certain topics
  • Make DBHelper.find build valid query
  • Continue if checking themes if updating one fails
  • Replace all quote-like unicodes with quotes
  • Wrap plugin outlets on user preference page
  • Correctly support DiscourseEvent kwargs
  • Do not error when anon user looks at secure upload for deleted post
  • Disable image optimization in iOS Safari
  • Error condition in SidebarSiteSettingsBackfiller
  • Don’t change the default allowed_attribute when calling #sanitize_field
  • Bump messagebus to v4.3.1
  • Render_404 is not defined
  • Link to category settings should use slug
  • Improve tags in email subjects and add filter headers
  • Do not error if autogenerated channel slug is blank
  • Use reviewer’s guardian permissions to create post/topic while approve.
  • Bookmark auto delete preference usage and default value
  • Check that the node has a src attr when getting size
  • More stable system tests
  • Correctly uses request_uri to generate load_more_url
  • At this point in time component can be destroyed
  • Correctly always return a promise from loadMore
  • Ensures loading more doesn’t erase filter on browse
  • Update nginx config for v1.23
  • Do not show push notification banner for MacOS
  • Add missing email template for user_watching_category_or_tag
  • Various fixes to channel archive status
  • Show status on mentions on just posted posts
  • Avoid race conditions when toggling presence state
  • Cancels fetching messages when pane is destroyed
  • DButton ellipsis argument
  • Show topic titles in deleted-posts
  • Gracefully handle DNS issued from SSRF lookup when inline oneboxing
  • Removes missed chat_channels legacy paths
  • Correctly allows admin to visit a user chat’s preferences page
  • Correctly handles navigating to a message
  • Whisper tooltip shows the allowed groups
  • More reliable archive channel spec
  • Ensures recovering network doesn’t create unread mentions
  • Workaround a bug in the R2 gem
  • Admin can’t see user sidebar preferences of other users
  • Flakey spec due to autocomplete
  • Increment wait to prevent a specific flakey spec
  • Autocomplete fadeout arrow key chat fix
  • Allow for nested chat transcripts
  • Ensure we have a patched version of CGI gem
  • Re-enables using_session tests
  • Prevents playing chat sound when in DnD
  • Styles of user status on mentions
  • Autocomplete arrow scroll for mention
  • Prevents creating a null User object
  • Sidebar preferences link shown when navigation menu is legacy
  • Triggers update last read when message is not staged
  • Prometheus plugin expects webrick in production
  • Corrects a regression with last_read_message_id
  • Allows an admin to access users preferences
  • Correctly sorts public channels
  • Better chat-api error handling
  • Prevents chat-api to generate double slash URLS
  • Quoting a mention with status emoji breaks the mention
  • Hashtag autocomplete scrolling arrow keys with fadeout
  • Include tags inside tag groups for hashtag search
  • Responsive buttons and wider content container
  • Do not return muted child categories termless hashtag search
  • TL0 could not message group with everyone messageable_level
  • Don’t assume a clean slate in tests
  • Don’t validate channel slug if it hasn’t changed
  • Box-sizing for avatars
  • Discourse-follow notification types
  • Add missing user_id args for ChatMessage.cook
  • Access to category chat only when user can create post
  • A string usage that was lost during git merge
  • Remove magic time ranges
  • Allow backspace into hashtag autocomplete
  • Scroll autocomplete container on arrow press
  • Remove user_option saving for bookmark auto delete pref
  • Correctly parse Mandrill webhooks
  • Add REPLACEMENTS icons to styleguide
  • Email summary subject order should be consistent
  • Use correct plural rules for Russian
  • Unable to change homepage style via wizard
  • Do not duplicate check when editing chat message to remove uploads
  • Invalid route path for staff info warnings link
  • Properly count DistributedMutex locking attempts
  • Remove console warning for “nohighlight”
  • Reset search controller state
  • Make sure user status on mentions doesnt fail in plugins
  • GitHub onebox ellipsis styling regressed in 9d03f20
  • Restore missing text for read_more and read_more_in_category
  • More specific class name to avoid collision
  • Make sure generated tsqueries are valid
  • Multipart uppy upload regression in 80e422c
  • Ensure hashtag autocomplete is not behind keyboard in chat
  • Do not return channels for hashtags if user cannot chat
  • Broken images on subfolder installs
  • Broken emoji url on password reset w/ subfolder
  • New pm notification should take precedence over mention
  • Server-side hashtag lookups of secure categories for a user
  • Correctly hides admin settings in channel settings
  • Show last match time of screened IP address
  • Admin webhook regression in 321b14d
  • Do not provide advice regarding GDPR compliance
  • Add translation for setting
  • Duplicate hashtag lookup results based on permissions
  • Use correct property for theme’s color_scheme_id
  • Do not reset seen popups when skip_new_user_tips is false
  • Profile page is not loading
  • Error when opening a previously deleted post
  • Webhook should touch channel’s last_message_sent_at
  • Uses CDN when available for chat mp3 sounds
  • URL fragments not purging
  • Update match_count of screened IP address
  • New message brings a direct message channel to the top
  • Nullify active channel only when not on a chat channel
  • Only modify secured sidebar links on user promotion/demotion
  • Don’t force show topic map on non-first posts
  • Ensures chat channel metadata date is updated
  • User menu bug when transit from narrow screen
  • Deactivate is not called in every cases
  • Include CDN in result of avatarUrl helper
  • Change drupal permalink creation to use /node/
  • Ensure chat channel slug uniqueness at DB level
  • Add MessageBust.last_id to chat channel subscriptions
  • Relative URL routing on ember-cli only page
  • Watched words replacement emoji render
  • Don’t update url in GitImporter
  • Observe unlisted topic creation restrictions in post creator specs
  • Email hashtag-cooked text replacement error
  • Do not replace hashtag-cooked text with WatchedWords
  • Handle null svg class for excerpt parsing
  • Exclude claimed reviewables from user menu
  • Horizontal scrolling was not working correctly
  • When following redirects before cloning, use the first git request
  • Validate unsubscribe key has an associated user
  • ScrollingPostStream regressed in #15313
  • Show chat channel info on reviewable items
  • Allow reviewable-item components to be template-only
  • Margin for sidebar and revamped user menu on iPad
  • Allow svg in oneboxer in certain cases
  • Improve message when posting a duplicate link
  • Don’t notify of post deletion when agreeing with automatic flags.
  • Show error message if no uploads are allowed
  • Allow hashtag autocomplete at start of line
  • Consistent narrow desktop width
  • PMs displaying outdated unread counts when read status is processing
  • Do not apply hover state to non capable devices
  • Ensures date/time don’t linebreak
  • Unsilence users on chat message flag disagree.
  • Prevents audio to play when appended
  • Toggle sidebar when back from narrow screen
  • Ensures chat sidebar is present when core sidebar is disabled
  • Prevents drawer error when resizing core composer
  • Use correct Regexp flag to ignore case
  • Push category hashtag slug match to top
  • Existing users were mistakenly unable to redeem invite
  • Pass period filter to plugin outlet
  • Minor hashtag autocomplete fixes
  • Experimental hashtag search result matching and limit fixes
  • Do not click track .hashtag-cooked
  • Set chat_allowed_groups based on chat_enabled setting
  • Unescape :emoji: in hashtag search results
  • Filtering rows of S3 inventory files was too strict
  • When filtering tags for visibility, respect tag group permissions
  • Update link in group_in_subject site description
  • Delete associated channel upon category deletion
  • Allows to change sound when no sound was ever set
  • Revert to old hashtag style for hashtag-raw
  • Do not add color style if no prefixColor
  • Amend release_notes_link in app/models/admin_dashboard_general_data.rb
  • Amend release_notes_link in /tests/fixtures/dashboard-new-features.js
  • Ensure DButton uses the correct target for string actions
  • Enable_auto_join_users was used in create channel
  • Better chat-message-actions position
  • Correct implementation for user preferences tracking page
  • Tag ordering adjustment for new hashtag autocompletion
  • Allow new hashtag HTML to be quoted to markdown
  • Allow tl4 to bulk select
  • Hides user card button when current user can’t DM
  • Invite redemption error if user had already redeemed
  • Bug with admin trust level growth report
  • Regression with special a keyword in search
  • Update user options only once
  • Status was clearing after editing user preferences
  • Add Custom Primary-Numbers
  • Support unicode in search filter @username
  • Deprioritize reaction notifications
  • Rename Users to Sign-Ups in About page
  • Prevents arrow keys to bubble into parents components
  • Only applies scroll position to full page
  • Allow sidebar links to register didInsert actions
  • Correctly opens drawer to message id when given
  • Ensures composer is focused after edit
  • Only checks for full page instead of preference
  • Correctly highlights active channel
  • Allow attr updates of over-size-limit uploads
  • Adds back recurring to send_message automation
  • Reimplements chat audio into a service
  • Ensure moderators_manage_categories_and_groups is respected
  • Do not lock account if backup codes are available
  • Shrinking images where smaller image upload exists
  • Permalinks issues
  • Do not preload topic list for new topic/message routes
  • Deliver chat summaries when allowed groups include “everyone”
  • Use cached RegEx instead of recreating RegEx on every usage
  • Automatically generate category channel slugs
  • Watched words submit button should be disabled by default
  • Uses i18n for saved text
  • Handles starting draft dm from sidebar
  • Migrate values before adding a not null constraint.
  • Makes sidebar links respect drawer mode
  • Allow deletion of categories when chat channel is not present
  • Update sidebar links when promoted to admin
  • Topic tracking stage error when no tags
  • Make chat editor IDs not null
  • Make ChatMessageUpdater check editing access for guardian
  • Follow up to #7fca078
  • Retention reminder is absolute and needs relative parent
  • Welcome topic should be hidden on the /categories page as well
  • Increase NGINX request header buffer
  • Correctly render link title in draft preview
  • Simplfies previous route handling
  • Make can_send_private_messages not reliant on system user
  • Add editing user ids to ChatMessage and ChatMessageRevision
  • Bug with permanent delete modal
  • Restore mention tab for experimental user nav
  • When cloning themes via HTTP, try the original URI too
  • Theme import error handling needs to happen inside the hijack block
  • Prevents chat to enter in endless loop when getting 404
  • Do not limit scope to direct messages
  • The notification data on the client expects an identifier
  • Minor alignment fix for mobile small-actions
  • Write to group logs when a user is added to group by invite
  • Fix circle indicator on “my posts”, color
  • New Topic button is now correctly disabled in a category where they have no permissions, even when filtered by tag
  • Correct the post numbers in lastUnreadUrl
  • Can’t change notification level of categories set to regular
  • Evaluate all callbacks rather than override them
  • Don’t notify topic author about small action posts
  • Follow up fixes for password-reset error page
  • Simplify display of multiple AJAX errors
  • Don’t attempt to add user again to a group when syncing groups via SSO
  • Ignore unique conflicts when backfilling sidebar defaults
  • Ensure that custom {{action}} modifier works with actions hash
  • A couple of topic elements are too wide
  • Move group-box group name from class to data attribute
  • Allow users already in automatic groups to log in
  • Add theme-color <meta> tag when a dark scheme is selected
  • Variable name typo
  • Reset error props on Topic model
  • Log user addition/deletion from groups when they’re changed via DiscourseConnect
  • Category chooser not updating selection when editing reviewable
  • Correctly reset controllerReady prop
  • Use only first line from commit message
  • Minor typo
  • Set max-width on category logo img
  • Clientside checks for personal_message_enabled_groups
  • Set width on category logo img, not container
  • Do not show a 404 page when visiting messages
  • Correctly debounce various functions
  • Calculate header offset once on load
  • Skip all post validations if necessary
  • Ensure minification does not break colocated connectors
  • Do not include group less emojis in standard list
  • Sidebar_list_destination on CurrentUserSerializer
  • Ensure dropdown is above sibling labels
  • Sidebar list destination for tracked and tags
  • Exclude hidden topic posts and small actions from the RSS feed.
  • User card focus state appearing on click
  • Clarify security key copy
  • Reset general_category_id if the general category was deleted
  • Prevent layout shift while traversing dropdown
  • Adjust the users per trust level cells in RTL mode
  • Remove RS384 and RS512 cose ciphers
  • Show timelines dates as clickable
  • Action_code_path not being loaded for user-stream-item
  • Missing category badge for category with color stored as 3-digit hex code
  • Category sidebar link not active when filtered by none and all
  • Replace prefixCSS with prefixElementColors
  • Remove nil items before sorting the sha1 string array.
  • Reset related site settings on general category delete
  • Status emoji was shown on the left on mobile
  • Alignment of user status emoji on posts
  • Correctly handle HTTP errors during dominant color calculation
  • Typo
  • Warning about sidebar prefix style
  • User field styling on login
  • Change text
  • Staff action log ‘show details’ links
  • Ensure local date format shortcuts work correctly
  • Ensure poll type toggle buttons function correctly
  • Deprecated settings should not override from UI
  • Hide old PM settings
  • Show error if field is same as password
  • Remove public topic invite functionality
  • Do not show welcome CTA banner if the welcome topic is deleted
  • Ensure group inboxes in messages section is sorted by group name
  • Determining local date same range is erroring when there is no date
  • Arrive at topic must be hidden when must_approve_users
  • Improve error handling for calculate_dominant_color!
  • Do not prefill default site title value on wizard introduction step
  • Make sure first admin users are added to auto groups
  • Watched topic overcome muted category
  • Ability to trigger emoji after indented code block
  • Missing sidebar section link icon for PM tags
  • Link to discovery.category in sidebar`
  • Skip quality title validations for static topics when edited by admin
  • Count resulting bulk invites correctly
  • Do not show user status on posts twice
  • New general category changes preventing topic create
  • Review sidebar link showing for users that can’t review
  • Workaround a bug in the R2 gem to produce valid RTL CSS
  • Allow email login for admins in staff-writes-only-mode
  • Allow logout for admins in staff-writes-only-mode
  • Remove zero-width space when not necessary
  • Add better and more strict invite validators
  • Revert recursively tag lookup with missing ancestor tags
  • Missing theme upload should not break precompile process.
  • Removed bookmark reminder alert for reminders set in the past
  • Ensure closing sidebar tears down all callbacks.
  • Quirks around starting new uploads when one was in progress
  • Use Category#category_text for sidebar title
  • Migration typo for secure_uploads
  • Ensure composer grippie stays visible
  • Some composer messages were broken
  • 404 sending beacon “leave all” on subfolder install
  • Recursively tag topics with missing ancestor tags
  • Make sure featured category topics are unique
  • List_suggested_for conditional for personal_message_enabled_groups
  • Better virtual keyboard detect on Android
  • Update user results page when no users found
  • Incorrect casing for CTA
  • Query correct model in posts:inline_uploads
  • Handle failed download when calculating image dominant color
  • Sidebar categories for anonymous not being sorted by name
  • Skip uncategorized category in sidebar when disabled
  • Respect site settings for sidebar users, groups and badges link
  • Hide experimental user navigation changes when disabled
  • DB migration fails if old site setting has empty value
  • Add missing string for reviewables in user menu when reviewable post is deleted
  • Sidebar scroll fade on older iOS
  • Fix GitHub onebox syntax highlight
  • Overriding text with admin_js.* keys didn’t work
  • Empty inline BBCodes were broken
  • Header offset position was not correct in some cases
  • Do not attempt to serialize Tag objects when tagging disabled
  • In-page anchor links were broken in subfolder setups
  • Don’t delete previous messages when we’re inside the sent_recently window.
  • Correctly pass invite_to_topic param to invites
  • Ensure loading thumbnails are used in Safari
  • Ensure low-resolution placeholders are used while loading images
  • “Exit setup” link should exit the wizard and take user to homepage
  • Regression with admin user delete dialog buttons
  • Ensure <script> handlebars templates are namespaced correctly
  • Raw translation string in user status tooltip
  • Theme components should work with empty locale files
  • Use plugin’s defined name for es6 module path
  • Ensure discovery-categories always clears PreloadStore
  • Create single notification per post and user
  • Do not show “create topics” notice on wizard route
  • Keep private theme key secret from user
  • Return next bookmarks page only if it exists
  • Immediately show sql options when badge query is supplied
  • Hide welcome topic banner as soon as the welcome topic is edited
  • Transpile start-discourse.js to fix iOS12 support
  • Allow .git end to miss from Git repo URL
  • In prod builds classes may not be “instancesof” EmberObject
  • Avoid leaking TopicTrackingState listeners due to sidebar
  • Only seed general category on new sites
  • Do not save default auto_delete_preference for bookmark
  • Do not notify admins watching PM tags
  • Do not invite whisper or small action posters
  • Show tag chooser if can_tag_pms
  • Preload topic_list correctly for categories+latest
  • Skip topic allowed user for small actions
  • Restore trust level when leaving group
  • Reload styling changes for wizard styling step
  • LocalJumpError : unexpected return
  • Prevents iOS software keyboard to hide sk body
  • Remove unexpected scrollbar from the new user menu
  • Load admin-specific JS when compiling via ember-cli
  • Sidebar hamburger panel dropdown not working for anonymous
  • Avoid duplicate topic-list requests
  • Hide sidebar toggle button when no sidebar
  • Hide sidebar for anonymous when login required
  • Backup/Restore didn’t use correct Redis namespace in multisite
  • Ignore malformed HTML for title extraction
  • Move show like logic to client side
  • Track native class deps in discourseComputed
  • Remove “–composer-height” style when composer is closed
  • Improvements to like button for archived topics
  • Allow match_all_tags to be passed as a URL param
  • Remove last_unread_post excerpt logic for bookmarks
  • Allow extra whitespace when asking discobot to perform a bot command
  • Limit new and existent staged users for email topics
  • Show hide bootstrap mode notice in real time
  • Disable Twitter onebox without API support
  • Set --composer-height when the composer is in collapsed state
  • Welcome topic title was not editable
  • Recover from guardian check when deleting reviewable users.
  • Ensure topic-list adapter never serializes undefined
  • Don’t raise on deleted topic in UpdateHotlinkedRaw
  • Markdown-it parse fn requires an env arg with {} as default
  • Regression with Categories nav item
  • Reset flair group if user is removed from group
  • Remove dead and large images from oneboxes
  • Don’t preview color scheme if it’s not current user’s profile.
  • Don’t notify editor when category or tag change
  • Destroy all posts when hard deleting topic
  • Swallow SSL errors when generating oneboxes
  • Broken onebox images due to url normalization bugs
  • Don’t raise an error if file not found in S3.
  • Make word watcher work with nil strings
  • The phpbbb import script was not parsing youtube tags
  • Prevents android keyboard to be hidden instantly on sk focus
  • Allow to add the same watched word with a different case
  • Properly log all internal job failures
  • Do not redeem expired invites on new user signup
  • Secondary more section links not marked as active
  • Handle actor not having preferences in UserCommScreener
  • Don’t memoize site setting in guardian
  • Scope memoization of category moderation per category
  • Show update banner only once on categories with subcategory lists
  • Unsubscribe from the /reviewable_counts channel when leaving the review-index route
  • Links incorrectly marked as active in Sidebar::MoreSectionLinks
  • Avoid usage of dig when looking for job class
  • Inject appEvents in ScreenTrack
  • Use default locale for footer of embedded topics
  • Do not overwrite top_menu site setting in wizard styling step
  • Bugs with year selector and erase button
  • Update word_watcher cache key following schema change
  • Wizard last step “corporate” was not saving changes
  • Bots could generate errors when slug generation method is encoded
  • Accept HEAD requests for mandrill webhook
  • Show bookmarks loading spinner correctly
  • Ensure all public topic-query options can be used via Ember
  • Ensure theme_uploads_local only has one / at beginning
  • Show button bar overflow on iPad & mobile
  • UserCommScreener filter acting user ID from target user IDs
  • Allow array values for custom fields in category params.
  • Ensure error handlers render correctly without preload_json
  • Publish membership update events when refreshing automatic groups.
  • Support for group everyone in tag setting
  • Sidebar is always disabled on wizard route
  • Rejected emails should not be cleaned up before their logs
  • Ensure uploads work when the user’s browser rewrites ellipsis
  • Allow users to quote in closed topics
  • Ensure admin templates are not used for non-admin controllers
  • Don’t cook user fields to apply watched words
  • Make sure user list is complete and sorted
  • Make sure every user instance has correct status tracking counter
  • Handle correctly the case when several subscribers call trackStatus() on the user model
  • Correct mention paths in fixtures
  • Linear gradient with stops makes R2 confused
  • Improves handling of filter with invalid tag chars
  • Don’t raise an error on onebox timeouts
  • Title for keyboard shortcuts button in sidebar
  • Notify tag watchers when publishing topic
  • Make group members bulk operations consistent
  • Pass sidebar custom link willDestroy
  • Badge backfilling triggers :user_badge_granted DiscourseEvent
  • Ensure injections are skipped when rehydrating stale models
  • Do not redeem invites if user resets password
  • When a user status update received other users statuses were getting cleared
  • Correctly pluralize sidebar strings
  • isExistingIconId() regressed in #17553
  • Correctly invoke dynamic components by name
  • Can’t hide overflow of d-editor-button-bar on mobile
  • Use padding, not margin
  • Use URI#merge to merge base and relative URLs
  • Prevents multi-select to use noneItem for its list
  • Restrict sidebar specific select kit CSS to sidebar
  • Pass custom section willDestroy
  • Skip job if tag edit notification is disabled
  • Allow Symbol objects to be deserialized in PostRevision
  • Check if tags edit notifications are disabled
  • Unread count badge shown for topics that user is not tracking
  • Support systems without SSE 4.2
  • Allow Time objects to be deserialized in PostRevision
  • Bug with multiselect user field validation
  • CSS tweak and production position fix for miniprofiler
  • Improve reliability of topic tracking state
  • Change UserCommScreener to use user_ids
  • Adjust topic avatar height to fix stickiness
  • Mobile usability issues in crawler view
  • Fixes few regressions in select-kit
  • Detect firefox `< 89 as an unsupported browser
  • Set resolver options on the legacy resolver
  • Update flaky bulk invite spec
  • Just inline the QUnit CSS in theme-test html
  • Ensure category-tag filter routes are functioning
  • Apply all watched words rules to user fields
  • Ensure splash screen <noscript> is loaded for legacy browsers
  • Ensure splash screen logic is iOS12 compatible
  • Add ember redirect for tags/:tag_id ->` tag/:tag_id
  • Min/max username length limits weren’t validated
  • Inputs using focusout regressed in #17345
  • Allow connector template names to be camelCase
  • Should be UploadReference instead of UploadReferences
  • Ensure there is no limit on tag list settings
  • Ensure pull-hotlinked can rewrite lone oneboxes
  • Correct error in ip-lookup component definition
  • Posts can belong to hard-deleted topics
  • Replace onebox markdown when pulling hotlinked image
  • Logout could fail due to cached user
  • Correctly display /admin/emails errors
  • Experimental sidebar preferences link not shown for users
  • Move ember-cli-deprecation-workflow to runtime deps
  • Incorrect currentUser could be cached for requests with API key
  • Vimeo regex pattern
  • Max value for SiteSetting.delete_removed_posts_after
  • Add clearfix back for admin contents
  • Keep unique post checks separate for PMs vs topics
  • Uploading large files (>5GB) failed whenenable_direct_s3_uploads` is enabled
  • Didn’t delete upload stub when a new upload is created
  • Markdown handling failed on empty attribute value
  • Fix bulk_invite flaky tests
  • Improve mixcloud oneboxing
  • Defer removing the splash screen until the window load event fires take 3
  • Skip the window load event for now
  • Defer removing the splash screen until the window load event fires take 2
  • Remove splash screen in no-js view take 2
  • Reverts #17225 & #17223
  • Uninitialized class variable error in sidekiq
  • Typo in log_thread
  • Defer removing the splash screen until the window load event fires
  • Remove splash screen in no-js view
  • Use first supported type item when JSON-LD returns array
  • Use bookmarkable pattern for bookmark cleanup
  • In [DELETE] /admin/user/:id.json, parse boolean block_* parameter correctly
  • DarkMode availiability detection was broken
  • 99999 is not a valid TCP port
  • Tag groups were not visible to allowed group members
  • Remove leftover uses of ember_jquery
  • Defer scripts on theme-tests route
  • Quoting local dates bbcode regeneration
  • Link to “recently used devices” in suspicious_login email notification
  • Precompile admin-plugins.js (#17154)
  • Add wizard.js to ember-cli assets
  • Precompile start-discourse.js
  • Stop logging blank and invalid CSP reports
  • Skip invalid values in site setting upload references migration
  • Add missing pluralization rules for Bosnian
  • Extra-locale merging didn’t account for fallbacks
  • Double selecting replies
  • Wizard css was overriding some of core css
  • Make watched words uploads work as intended
  • JSON Schema editor layout issue with subarrays
  • Ensure presence endpoints don’t break the session
  • Ensure emoji is inserted in the correct location
  • Handle sites with more than 1 JSON-LD element
  • Whisper available when reply to topic
  • Allow all subdomains of localhost in development
  • NavItem and Composer prop overriding was broken
  • Rake tasks related to uploads were broken
  • Remove tags from experimental sidebar on notification level changed
  • Ensure that extract_upload_ids works with all short URLs
  • Skip CSRF token check on webhook routes
  • Display translated fallback as the group name for custom emoji groups
  • Allows image to be displayed at the right size
  • Twitter onebox keeps whitespace for expanded links
  • Send quote notifications to correct users when prioritizing full names
  • Cleanup invalid historic site setting data
  • Handle empty string in theme_settings for upload_references
  • Make disabling TLS in mail possible again
  • Escape youtube title when constructing onebox preview html
  • Missing tracked sub category topics from tracked topic list
  • Correctly handle invalid auth cookies
  • Seed multisite dbs after migrating in development
  • Email Send post has already been taken error
  • Restore automatic style preview in wizard
  • DiscourseConnect login did not auto approve based on email domain
  • Ensures composer is not pre-filled with none/all tags
  • Don’t throw errors on wizard dropdowns
  • Approves user when redeeming an invite for invites only sites
  • Do not use SVGs for twitter:image metadata
  • Keep composer draft when go back and forth between PM and New Topic.
  • Harmonise category body class generation on server/client
  • Show suspended by user
  • Make f query param sticky when navigating between nav items
  • Topic list nav items count not respecting tracked filter.
  • Change event target on select kit row
  • Tracked filter did not account for max_category_nesting of 3
  • Fallback to default push notification icon if none exists
  • Do not looks for plugin test js in production
  • Add bookmark quick access tests and fix username
  • Correctly handle nested quotes in to-markdown
  • Respect user timezone in emails about silencing and suspending
  • Changing date should recompute input
  • Incorrect URL for bookmark quick action menu
  • Further refine duplicate bookmark delete query
  • Delete extraneous topic bookmarks
  • InlineOneboxer watched word censor error
  • Apply censored words to inline onebox
  • Improve bookmark-icon title
  • Limits for PM and group header search
  • Skip pulling hotlinked images for nil user bio
  • Applying default user options didn’t work for boolean flags
  • Site setting changes for boolean should be logged as true/false
  • Refactor placement of plugin outlet & index use
  • Clear inline onebox cache when a post is rebaked
  • Pass empty hash for view locals by default
  • Apply ‘allowed_href_schemes’ to all src/srcset attributes
  • Allow users to select “regular” categories
  • Use CSS transition to make room for composer
  • acted state in post action like could desync with multiple likes
  • Apply ‘hide email account’ for invites
  • Prevent all kinds of login in readonly mode
  • Add safari 12 to ember-cli build targets in production
  • Make read only errors respect the request format
  • Handle quote rendering for external Discourse instance
  • Checked allowed tag when editing Reviewables
  • Auto margins cause too-narrow content
  • Show error message if extensions cannot be created
  • Do not log category custom fields changes if the value is unchanged
  • Create PostgreSQL extensions before migrating
  • Use our header value instead of custom header on duplicates
  • Use registered bookmarkables for BookmarkManager
  • Allow .ics for polymorphic bookmarks
  • Store scroll position when using Back button
  • Apply watched words to user fields
  • Polymorphic bookmarks for bookmark report
  • Use hidden site setting for batch presign rate limit
  • Use polymorphic bookmarks for in:bookmarks search
  • Add support for pipelined and multi redis commands
  • Background like count update didn’t account for own user actions
  • Prioritize names and usernames consistently
  • Limit pan event handler to fix scrolling in TOC
  • Use proper ActiveRecord method in import scripts
  • Ensures d-popover closes when clicking on popper
  • Polymorphic bookmarks for new user narrative bot
  • Prevents double user_badge_granted event
  • Prevent admin theme settings from blowing up
  • Validate post’s polls as acting user
  • Topic view breaks with topic timer to publish to restricted category.
  • Users with unicode usernames unable to load more topics in activity
  • Add email to admin user list when show_emails is enabled
  • Missing translation when translation override contained a %{key}
  • Skip invalid custom_field json in hotlinked_media migration
  • Validate permalink_normalizations setting
  • Handle enum types during database restore
  • Destroys instance when hiding date popover
  • Handle invalid JSON from downloaded_images custom fields
  • Handle duplicates in hotlinked_media migration
  • Updated filtered replies when replies exist
  • Ensure post_hotlinked_media index does not exceed size limit
  • Avoid concurrent usage of AR models
  • Closes popover when downloading calendar
  • Uses tippy for popover
  • Show group in filter only if user can see the members list.
  • Ensure values are escaped in select-kit dropdowns
  • Prepare data before creating chart to avoid side effect
  • Remove refresh seconds override on cache_critical_dns
  • Cache_critical_dns - add TLS support for Redis healthcheck
  • Prefers computed over discourseComputed
  • Correctly handle the print param on topics#show.
  • Check 2FA is disabled before enabling DiscourseConnect.
  • Properly clean Thunderbird emails, don’t remove links
  • Ensure lazy-load-images does not remove entire img.style
  • Use username for nested quotes
  • Show footer on the categories page
  • Replaces discourseComputed by computed
  • Showing icons on future-date-input options
  • Do not error when json-serialized cookies are used
  • Show footer at the end of topic list
  • Add missing translations for medium format
  • Skip upload extension validation when changing security
  • Don’t allow DiscourseConnect logins in readonly mode
  • Return a 404 when a sitemap request doesn’t have a format
  • Ensure ‘crop’ always returns requested dimensions
  • Check if bookmarkable column exists before adding
  • Issues with incorrect unread and private message topic tracking state
  • Warn_exception expect hash as second arg
  • Show dismiss all modal in user-notifications page
  • Do not show visibility topic if visible
  • Don’t validate and render the polls inside a quoted post.
  • Email styles for Gmail app dark mode
  • Href attribute for post-date link
  • Add href to post-date link element
  • Prevents error with emoji autocomplete
  • Update dark mode emails styles
  • Ensure allowed_tags and allowed_tag_groups can be removed
  • Email logs not finding attached incoming email
  • Ensure category_required_tag_groups are destroyed with tag_groups
  • Fall back to clipboard.writeText if ClipboardItem not supported
  • Buggy topic scrolling on iOS 12
  • Serialize permissions for everyone group
  • Clean required category tag groups with invalid tag_group ids
  • Ensure legacy browser handling uses full <noscript> content
  • Hide user notifications tab for moderator users.
  • Uppy-image-uploader and uppy-upload mixin minor issues
  • Prevent duplicates in API scope allowed URLs
  • Include routes in an API scope’s allowed URLs even if they have no format constraints
  • Exclude automatic anchors from search index
  • Limit max word length in search index
  • Include crawler content on old mobile browsers
  • Users watching tags in open tag groups not notified
  • No need to hide “Later This Week” when showing “Later Today”
  • Ensure images do not change height when loading is complete
  • Redirect user to topic they were invited to
  • Do not attempt to pull_hotlinked_image for raw_html
  • Auto-generated emails causing group SMTP email storm
  • 500 error when creating a user with an integer username
  • Update ‘posted’ column on post owner change
  • Review queue scrolling is not working after take an action.
  • Stop sorting options in date-pickers on the bookmark modal and the topic-timers modal
  • Can_permanently_delete should check for admin
  • Abort theme creation if unable to create uploads
  • Build correct post and topic shareUrl
  • Ensure ActiveSupport::Inflector is used by Zeitwerk
  • Hide tag count in tag filter when in a category context
  • Flips popper when top position is chosen incorrectly
  • Close user/group card on esc key press
  • Don’t put the whole sidekiq conf in to_prepare
  • Maintain HTML ``<img` when downloading remote images
  • Validate category tag restrictions before sending new topics to review
  • Resetting selectable avatars was failing
  • Show restricted groups warning when necessary
  • Do not wrap unaccent around tsqueries
  • Bug setting notification level to muted/ignored on user page
  • Add errors field if group update confirmation
  • Don’t attempt to focus .title in topic-list-item if it doesn’t exist
  • Closing the picker shouldn’t propagate the pointer event
  • Make sure max_oneboxes_per_post is enforced
  • Allow @ember/test import in embercli prod builds
  • Don’t listen for focus/blur events if the topic-list opts out of last visited focus
  • Do not raise if title cannot be crawled
  • Ensure all/none subcategory filters work correctly with tags
  • Issue 404 for invalid /tags/c/... routes
  • Add replaceAll to browser-detect
  • Staff should not be able to PM groups that “Nobody” can message
  • When using Ember CLI, plugin admin code was not being loaded in tests
  • Reset last sent for existent bookmarks
  • Ember test imports, again
  • Ember test entries in discourse-loader
  • Show bookmark options by default when editing
  • Remove racing requests for admin users
  • Skip ember-cli build memory optimisation for multiple rake tasks
  • Always include the first poster when converting to PM
  • Do not run Ember CLI chunk files through babel twice
  • J/K post stream navigation inconsistencies
  • Return nil when RetrieveTitle.crawl fails
  • Update topic route id param
  • Invalidate site settings cache in all instances
  • Update group inbox notifications on archive/unarchive
  • Apply onebox blocked domain checks on every redirect
  • Buggy jump-to-post on Firefox
  • Include engine mount path for API scopes added by plugins
  • Allow admins to change user ignore list
  • Only display the first listed price
  • Make reply-ids public by fixing a typo
  • Show 404 html on /posts/:id/raw and /p/:id
  • Update and rebake uses of the old centralized avatar service
  • Prevents self-reference to discoveryTopics from discoveryTopics
  • Better 0 file size detection and logging
  • Support new layout on Amazon product pages
  • IOS do not have working push notifications yet
  • Save email rejection error class names for incoming email logs
  • Correctly notifies subscribers with post_action_destroyer
  • Calculate docking - include offset of main
  • Indirectly muted categories for topic-tracking-state
  • Minor indentation fix for fullscreen code
  • Setting emoji filter from initial autocomplete
  • Make sure html_raw is hoisted in custom markdown cook function
  • On mobile, overflow on post controls if there are many buttons
  • Respect the cooldown window when editing a flagged topic.
  • New indirectly muted category
  • Avoid validations when destroying posts
  • Move selectable_avatars_mode_validator_spec to new directory
  • Use the category’s text-only description in the category-chooser
  • Sanitize parameters provided to user actions
  • Dev subfolder session cookies
  • Don’t warn on empty .discourse-compatibility
  • Don’t advance draft sequence when editing topic title
  • Respect text direction inside quotes
  • Show invite button if users can be invited
  • Show links with 0 clicks in top links section
  • Allow none category if default is none
  • Use fresh theme setting values when compiling stylesheets
  • Ensure category/tag classes are added and removed correctly
  • Conform EmailLog#bounce_error_code to RFC
  • Increase FinalDestination MAX_REQUEST_SIZE_BYTES
  • Count clicks on links with query params
  • ReplyByEmailAddressValidator should leverage EmailAddressValidator
  • Update can_see_members attribute after leaving a group.
  • Handle nil values in DistributedCache#defer_get_set
  • Don’t accept accents in slug if generation_method == ‘ascii’
  • Load short upload URLs only once
  • Unable to filter user directory when sorted by user field.
  • Do not increase invite count for current user
  • Redis may not be availiable on Redis initializer
  • Tag show - hide no topics footer until there are no topics
  • Post migration to fix custom emojis with secure URL
  • Update application_helper logic now that Ember CLI is default
  • Ensure theme JavaScript cache get consistent SHA1 digest
  • Cooking custom emojis should not use a secure URL
  • Default settings for phpBB3 import were broken
  • Update user stat counts when post/topic visibility changes.
  • Subcategory filter limits results
  • Defer upload extension check for iOS
  • Inline onebox for github
  • Topic tracking state for tags
  • Use prev_period data if prev30Days value is not available.
  • Avoid errors when updating post and topic count user stats.
  • Replace Twitter handles one at a time
  • Sort group owners and members together
  • Clear drafts only when post is created by real user
  • Avoid raising error when updating post and topic count user stats.
  • Explicitly set allowfullscreen on Wistia Oneboxes
  • Overridden MessageFormat fallbacks
  • Align progress text
  • Further reduce the input of to_tsvector
  • Do not override mobile scroll on docked progress element
  • User option fields definition was being mutated on save
  • Handle addressable error when parsing an invalid URL.
  • Add DB constraints for post & topic counter cache for UserStat
  • Allow native lazy loading attribute for quoted avatar image
  • Better param guards for wiki and post_type posts controller.
  • Caret moves to a wrong position when uploading an image via toolbar
  • Table pasting issues with uppy
  • Liking whispers should not contribute to Topic#like_count.
  • Canonical Message-ID was incorrect for some cases
  • Regression in timezone name localizations
  • Qunit tests were failing if your node was defaulting to IPV6
  • Aria label for popup-input-tip
  • Post mover validation color and message
  • Image sizes were slightly off in some cases
  • Composer fields on small desktop sizes
  • Remove svg icons from webmanifest shortcuts
  • Some options on the topic timer modal weren’t timezone aware
  • Show the Next Monday label instead of Monday on Sundays
  • Remove duplicated word from client strings

UX Changes

  • Add btn-primary class on email confirm page
  • Change language from “Do Not Disturb” to “Pause Notifications”
  • Improve use of space for readability of admin email modal
  • More descriptive sidebar titles, casing
  • Fix the positioning of topic admin popup menu
  • Remove unused strings
  • Fix for misalignment in autocomplete
  • Improve copy for contact email and url description
  • Switch webkit to pseudoelement for fadeout
  • Setup wizard copy changes and vertically stack logo fields
  • Temporarily revert autocomplete highlight change
  • Update classname to something non-conflicting
  • Wizard Step Enhancements
  • Redesign and refactor penalty modals
  • Hashtag autocomplete styling
  • Rename “Do Not Disturb” to “Pause Notifications”
  • Add tooltip why file upload is disabled
  • Change color of preview card in channels
  • Update small action text to use sentence case
  • Add new boxshadow variation
  • Change highlight colour
  • Include space between elements in kbd tag
  • More consistent style for the new topic banner
  • Add lightbox information to max image width/height settings
  • Exclude child catgegories of muted category in similar to search
  • Omit instruction note when email_time_window_mins is off
  • Improve nav for user messages on small screens
  • Adjust emoji size in mentions
  • Exclude search ignored and user muted categories in similarity search
  • Refactor & update small post styles
  • Add target to start discussion link
  • Improve UI of group delete dialog
  • Removes silence from chat message actions
  • Chat index refactor
  • Align user page dismiss notifications btn with new navigation
  • Add instructions for multiple category emails
  • Chat index UX fixes
  • Reworks channel index (drawer and mobile)
  • Alters chat icon behavior on drawer and mobile
  • Show educational messages for the likes tab when it’s empty
  • Improve mention styling, simplify
  • Styling backwards compatibility for old user page navigation
  • Style adjustments & addition of login button on admin invite page
  • Use solid envelope icon for consistency
  • Improve mention styling
  • Update “education.dominating_topic” and raise default percentage
  • Ensures browse view input is focused on page load
  • Do not automatically refresh page while composer is open
  • Removed tracked section link from Community section in Sidebar
  • Padding adjustment for empty channel message
  • Reorganize user prefs for experimental user nav
  • User message controls need some padding
  • Better email login pages
  • Mark pre-populated dropdowns as not required
  • Redesign of chat settings + add chat retention info
  • Improves arrow support in chat emoji picker
  • Move horiz nav margin to padding
  • Force sidebar to occupy full height
  • Add channel header offset to browse page height
  • Adds chat section in settings and hide it in plugins
  • More contrast for sidebar counts
  • Better password reset error page
  • Tweaks to msg actions menu
  • Replace concatenated translation
  • Fix spelling of “Sidekiq”
  • Chat index tweaks
  • Fix spelling and capitalization
  • Change ordering of categories shown in sidebar
  • Less link-like unread/new color in sidebar
  • Add back button in chat browse screen on mobile
  • Scope chat-channel-title hover effect
  • Muted style for entire chat section link when muted
  • Increase padding of back button in chat draft screen
  • Hide new/unread counts in sidebar, use dot by default
  • Hide welcome topic from admins as well if not edited
  • Change placement of welcome cta
  • Update and consolodate published page styles
  • Ensure image size is maintained even after loading error
  • Switch no categories/tags configured text in sidebar to a link
  • Fix grammar typo in trust_level_unlocked_tip
  • Change emoji graphic on invite error page
  • Make whole category box clickable
  • Allow linebreaks mid-word in github onebox file paths
  • Use a friendlier educational message
  • Send notification of type replied to topic author if they’re watching the topic
  • Drag new user menus, scroll primary user nav
  • Fix user status display in autocomplete
  • Stop falling back to topic image on embeds
  • Improve autocomplete styling
  • Show category edit button when in tag intersection
  • Extend horizontal user nav to all user pages
  • Correct capitalization
  • Fix alt text cancel button in dark mode
  • Change button to grey
  • Simplify bootstrap mode visuals
  • Prevent reply to name from being longer than 400px
  • Welcome CTA edits
  • Theme setting highlight update
  • Horitzontal scroll controls for new user nav
  • Hide keyboard shortcuts on mobile
  • Onboarding edits
  • Conditionally display sidebar tags section for user
  • Conditionally hide sidebar categories section for user
  • Hide tags section in sidebar when user has no visible tags
  • Danger colour update
  • Updated styles for user nav with sidebar
  • Hide tags section from anonymous user when site has no tags
  • Correct colour to nav instead of danger
  • Default to dark category logo on dark schemes
  • Add more spacing to tab btns
  • Ensures we don’t focus invisible button in sidebar
  • More... → More` in Sidebar
  • Hide sidebar on 2FA route
  • Change notifications nav icon in user page to bell
  • Add max-width to digest email, format erb
  • Fix post placeholder on mobile
  • Move dismiss button on the bottom to the right of the footer message
  • Fix composer position on Firefox for Android
  • Add flag icon for review section link in sidebar
  • Correct padding and height for sidebar section message
  • Add icons to all section links in Sidebar
  • Restore full sized composer on mobile
  • Style changes to match updates
  • Restrict width of “reply where” modal
  • Fix cut-off accents in sidebar headings
  • Fix topic stream placeholders
  • Truncate site text titles in a cleaner way
  • Add short site description for anonymous user in sidebar
  • Clicking on a button in sidebar on mobile should collapse it
  • Add ability to scroll when height is limited
  • Use dominant color as image loading placeholder
  • Add icons to all navigation link on user page
  • Welcome topic CTA adjustments
  • Use the same text for linking to more categories and tags in sidebar
  • Avoid showing text cursor on unselectables
  • Remove height CSS preventing sidebar touch scrolling on mobile
  • Improve styling of sidebar on mobile
  • Do not mark activity table heading as a cursor
  • Retry “left-align title with content for sidebar (#18202)”
  • Improve composer toolbar flexibility
  • Left-align title with content for sidebar
  • Sidebar more link for categories & tags
  • Switch wizard SVG colors for dark mode
  • Trigger tooltips on click for touch devices
  • Change posted notification icon to discourse-bell-exclamation
  • Make user status emoji on post stream smaller
  • Fix width of preview pane to fix scroll
  • Close the revamped user menu when opening modals
  • Show information about badge errors when saving
  • Improve max-height value on toolbar popup menu
  • Increase sidebar fontsize on mobile
  • Remove focus on hamburger icon after toggle
  • Fix styles for the wizard congrats step
  • Remove confusing fallback locale warning
  • More apparent focus styles for sidebar headers
  • Revert sidebar scrollbar repositioning
  • Sidebar styling, spacing consistency, etc
  • Hide background image in crawler view
  • Add badges section link to community section.
  • Remove sidebar section header background highlight on focus
  • Do not show site header on wizard pages
  • Fix topic admin menu hidden on narrow screens
  • Adjust scrollbar behaviour in sidebar
  • Hide chat image overflow
  • Correctly center the reply-where modal
  • Fix typo in a blank page copy
  • Improve empty state copy on the activity/replies page
  • Show blank page placeholder instead of the blue panel that says “No Activity”
  • Don’t shrink avatar/number box
  • Revamp styling of sidebar
  • Make popup menu options scroll on limited screen height
  • Sort tags alphabetically in sidebar
  • Sort categories alphabetically in Sidebar
  • Make category section link icons consistent with Sidebar’s interface
  • Make Sidebar more consistent with user menu on mobile
  • Add flat text button styles and use in date/time cancel modal
  • Improve safe-mode usability
  • Reduce font-size of sidebar section link suffix icon
  • Improve styles of the user status message component
  • Remove extraneous margins in profile pic modal
  • Add left sidebar toggle when sidebar enabled
  • Improve empty state copy on the activity/topics page
  • Display gap between tag sort options on PMs
  • Move About and FAQ links into secondary section in More… dropdown
  • Update register admin wizard page styles
  • Fix chat lock icon position and background
  • Account for iPad hub nav when calculating top
  • Move links in Sidebar footer under community section
  • Add ellipsis for long category names in category chooser dropdown
  • Change unrelated icon in the CTA Signup prompt
  • Remove count from more section links
  • Adjust sidebar margin to avoid composer height
  • Fix extra spacing for group metadata in user profile
  • Updated account activation page design
  • Add the TOS disclaimer to the invite signup
  • Only set user bookmarks loading state when loading
  • Sidebar appearance shouldn’t shrink fonts
  • Sidebar focus styles, remove hover for touch
  • Reduce number of links displayed in Community by default
  • Copy change
  • Sidebar transition and styling adjustments
  • Add bulk-select to mobile topic lists
  • Replace site-settings link with “Admin” link in sidebar
  • Make sidebar hamburger menu occupy full width
  • Only transition header on sidebar toggle
  • Prevent color flicker on dark themes
  • Docking/undocking sidebar toggles sidebar hamburger dropdown
  • Set theme color on splash a bit earlier
  • Let hamburger-sidebar restrict child width
  • Updates sign up CTA copy
  • Prevent jitter in some onebox images
  • Properly size emoji in sidebar section link text
  • Remove bookmarks link from community section
  • Rename Sidebar ‘Topics’ section to ‘Community’
  • Set width on hamburger menu drop down to prevent overflow
  • Only hide section header icons when sidebar is pinned on Desktop
  • Option to account for the sidebar in the breakpoint mixin
  • Plus icon for sidebar messages section header
  • Prevent sidebar count from wrapping
  • Prevent long toolbars from resizing the column
  • Make space for scrollbar in mini-profiler
  • Increase text size for mobile exp sidebar
  • Remove .btn-default from admin btn
  • Prevent pre tag from making posts too wide
  • Better account-created page
  • Fixes navigation 1px jitter
  • Add classes to create-account modal for easier customization
  • Fix exp sidebar toggle alignment, add hovers
  • Skip length check on reply drafts
  • Less janky animation for experimental sidebar
  • Add border-box to stop padding from overflow
  • Makes splash dots use theme colors
  • A save should always have a cancel action
  • Don’t animate experimental sidebar on reload
  • Improve experimental sidebar transitions
  • Switch highlight/select colours in select-kit
  • Prevent experimental sidebar scroll jumps
  • Splash should always stick to top left corner of the viewport
  • Staff notice should utilize full post width
  • Prevent overlap between splash loader and splash text on some browsers take 2
  • Prevent overlap between splash loader and splash text on some browsers
  • Hide user menu bookmark link when experimental sidebar is enabled
  • Update categories/tags in sidebar only after saving.
  • Enforce bullet category style in sidebar
  • Mobile experimental sidebar improvement
  • Remove hardcoded colour value
  • Missing specificity
  • Retain category badge style on categories select kit.
  • Makes splash screen setting enabled by default
  • Use discourse-ready as a baseline for removing the splash
  • Made “Dismiss New” button clickable by replacing float method.
  • Hide sidebar li overflow, remove title margin
  • Improve experimental sidebar scrollbar
  • Minor experimental sidebar alignment changes
  • Remove experimental sidebar notification text
  • Reduces splash animation delay
  • Core adjustments and styles for the experimental sidebar
  • Update color on arrow tippy box
  • Change copy for user-selector placeholder
  • Update topics stats automatically
  • Allow more mobile topic elements to be tapped
  • Truncate long category names in sidebar
  • Makes splash setting visible
  • Splash screen v1 improvements
  • Improve group page grid sizes
  • Introduces a splash screen behind a hidden site setting
  • Change wording for ‘regular’ categories to ‘normal’
  • Skip special paste handling in email-group-user-chooser when maximum is 1
  • Remove extra whitespace in github onebox
  • Remove limit for emoji search in composer
  • Larger images in mobile emoji picker
  • Hide select-kits when the parent element is outside the viewport
  • Don’t tether popper to the viewport if reference is out of the viewport
  • Update chat menu popover styling
  • Show message if rebake fails
  • Make YouTube playlist onebox full width to match video onebox
  • Reordered topics in INSTALL-cloud.md to add a ‘Before you start’ section
  • Align the trash button on the bookmark modal
  • Update hljs-builtin-name colour
  • Update hljs-builtin-name highlight
  • Consistent spacing on group interaction form
  • Fix status icon size in suggested topics
  • Add back link on taggroup page
  • Fix various login modal issues on mobile
  • Allows to close popover on escape
  • Prevent user grid blowout on full page search
  • Remove horizontal scoll from narrow screens
  • Ensure #main-outlet-wrapper takes full width.
  • Fix hover state for flat buttons in WCAG schemes
  • Add a brief accessibility summary to the README
  • Display user.username on user cards
  • Reset mark element highlight for WCAG schemes
  • Add time_shortcut.now translation
  • Improve the list of options on the slow mode modal
  • Move post date under title in share-modal
  • Larger clickable area for mobile topic list
  • Fix topic admin menu layout for short screens
  • Tweak topic-admin-menu alignment/size
  • Prevent group mention from wrapping
  • Ask for confirmation when deleting a post using shortcut
  • Fix a few WCAG color scheme contrast issues
  • Organize topic admin menu into groups
  • Show all pie legend options for long polls
  • Add title to read time stats from user page
  • More descriptive moderator manage setting
  • Improves select-kit body placement when vertical space is short
  • Add more detail to remove full quote site setting description
  • Minor email group chooser alignment fix
  • Minor adjustment to login/signup close position
  • Improve small action button alignment
  • Minor mobile topic list alignment adjustments
  • Make full topic row clickable on mobile
  • Add margin to security key button
  • Less specific styling for Auth logins
  • Apply crawler styling to <noscript> content
  • Make header/footer HTML consistent for crawler and noscript
  • Make crawler view usable under different color schemes
  • Inline code block edit
  • Update crawler view styles to be more readable
  • Require a password for invited users
  • Add details button to admin bounced/rejected lists
  • Use committed date for GitHub oneboxes
  • Indicate that “Show replies” button does not work for deleted posts
  • Cleaner messages for empty state on the user activity topics page
  • Styling changes to global banner
  • Hide group avatar flair block if it’s empty
  • Tweak the “new” badge size, position, color
  • Allow d-editor to be shrunk
  • Print view always shows 0 votes, hide it
  • Fix misaligned avatar
  • Add description to the 2FA page when adding new admins
  • Differentiate ‘emails disabled’ notice for ‘yes’ and ‘non-staff’
  • Remove loading spinner from emoji picker
  • Change color functions to match original primary, tertiary functions
  • Improve timeline touch hit areas
  • Add discourse-follow to official plugin list
  • Display post count badge even when user has only two posts.
  • Fix alignment on full page search
  • Styleguide changes & color variable additions
  • Change styling of admin bulk invite button
  • Add ‘update’ to theme error message
  • Prevent user menu overflow on tiny screens
  • Control whitespace on categories topic list
  • Use autocomplete=“off” for date-picker
  • Improve default_code_lang copy
  • Crawler view always shows 0 votes, hide count
  • Add whos-online to official plugin list
  • Search spacing & position changes
  • Fix login header z-index
  • Support type=search inputs in inline forms
  • Highlight “Users” link when on adminUser path
  • Slightly tweak admin/customize/themes CSS
  • Add hover style to refresh-page dismiss button
  • Add text-decoration to <ins> and <del>
  • Try select-kit autocomplete Chrome fix

Security Changes

  • Convert send_digest to a post request
  • Use rstrip instead of regex gsub to prevent ReDOS
  • Delete email tokens when a user’s email is changed or deleted
  • Check the length of raw post body
  • Escape quotes in tag description when rendering
  • Don’t expose user post counts to users who can’t see the topic
  • Sanitize PendingPost titles before rendering to prevent XSS
  • BCC active user emails from group SMTP
  • Restrict unlisted topic creation
  • Filter tags in user notifications for visibility
  • Limit chat message char length
  • Hide notifications for inaccessible topics
  • Prevent email from being nil in InviteRedeemer
  • Fix invite link email validation
  • Expand and improve SSRF Protections
  • Restrict display of topic titles associated with user badges
  • Prevent arbitrary file write when decompressing files
  • Moderator shouldn’t be able to import a theme via API
  • Handle incomplete quote bbcode
  • Limit user profile field length
  • Limit email invitations to topic
  • Prevent abuse of the update_activation_email route
  • Do not cache error responses for static assets
  • Bump Rails to 7.0.3.1
  • Validate email constraints when trying to redeem an invite
  • Banner-info
  • Remove auto approval when redeeming an invite
  • Ensure user-agent-based responses are cached separately
  • Update Nokogiri to 1.13.4.
  • Category group permissions leaked to normal users.
  • Avoid leaking private group name when viewing category.
  • Hide private categories in user activity export
  • Onebox response timeout and size limit

Performance

  • Use user-specific channel for message-bus logout
  • Avoid running redundant bookmarks query for anon viewing topic
  • Memoize topic level checks in PostGuardian
  • Remove redundant DB queries from TopicView
  • Make chat mention notifications async.
  • Ignore repeated PresenceChannel leave/join calls
  • Optimize the performance of TopicLink.topic_map query
  • Fix N+1 queries problem on topic view page
  • Fix N+1 queries on /categories route
  • Remove unnecessary query from TopicQuery.remove_muted_tags
  • Fix N+1 queries when serializing topic posters
  • Stop serializing user in ChatChannelSerializer#current_user_membership
  • Use MessageBus.last_ids instead of MessageBus.last_id for chat
  • Remove unnecessary SQL UNION query when search public channels
  • Add index for chat unread counts query
  • Remove unnecessary DB queries when preloading for chat
  • Perform only one category update when creating a new topic
  • Improve Accept header handling for stylesheets and theme-js
  • Add GlobalSetting to redirect avatars instead of proxying
  • Do not cancel debounce and prevents popper on scroll
  • Update Group#user_count counter cache outside DB transaction
  • Stop downloading images from post processor and lean on uploads
  • Speed up S3 inventory updates
  • Adjust node memory threshold for assets:precompile
  • Limits use of redis cache while building emojis list
  • Disable auto-import sourcemaps in production
  • Make stylesheet hashes consistent between deploys
  • Update s3:expire_missing_assets to delete in batches
  • Ensure JS chunk content and filenames are deterministic
  • Correct should_skip? logic in s3:upload
  • Exclude anon sidebar tags in site serializer for logged in user
  • Move dominant color calculation to separate job
  • Do not double bundle common langs in hljs bundle
  • Skip image placeholders when secure_media is enabled
  • Rely on preload for first_post for TopicBookmarkable
  • Minify admin and wizard JS bundles to match app
  • Only load the current user’s topic_user for bookmarks list
  • Add exponential backoff for DistributedMutex
  • Add index for TopicTimer#topic_id
  • Avoid extra object created on each User#validatable_user_fields call
  • Remove server plugin outlet for post
  • Remove total for time to first response report.
  • Improve to-markdown speed, update the code
  • Lazily lookup emoji-picker selected-diversity
  • Speed up secure media and ACL sync rake tasks
  • Update all user_histories with one query in UserDestroyer
  • Speed up admin user list main query
  • Throttle updates to API key last_used_at
  • Update UserDestroyer to fetch histories and actions in batch
  • Fix n+1 for categories + featured topics
  • Avoid following links in topic RSS feeds
  • Only subscribe to /new when logged in
  • Perform all cached counting in background
  • Bump message_bus to 4.2
  • Use a shared message for replies to tracked topics
  • Load all common passwords in one go
  • Reduce anon_polling_interval to match long_polling_interval
  • Bump message_bus to 4.1
  • Skip running ‘auto_leave’ during every PresenceChannel method
  • Introduce site/global emoji cache
  • Reduce number of EXPIRE calls from CachedCounting
  • Use Redis SET EX GET instead of LUA script for counting
  • Terminate rake process during ember build
  • Update ember-auto-import and webpack
  • Update ember-auto-import
  • Attempts to resort to compute markdown in less cases
  • Prevents any fast edit work if you can’t edit

Accessibility

  • Improve “my posts” sidebar link title
  • Improved titles for chat in the sidebar
  • Add title & aria-expanded for sidebar toggle
  • Improve the accessibility of sidebar content
  • Add live area for search menu, labels
  • Improve accessibility for saved status message
  • Add keyboard support to youtube embeds
  • Add title to drafts remove icon button
  • Add for attributes for location, website in profile
  • Sortable header elements should have pointer
  • Add aria-label to topic post badges
  • Return focus to header search button upon escape of search
  • Improve group search accessibility
  • Improve user card appearance in WHCM
  • Add aria labels for posts in group activity
  • Improve topic timeline in WHCM
  • Bookmarks modal
  • Add href to frequent poster avatars
  • Improve accessibility in WHCM themes
  • Add more information to the “reply to” button label.
  • Signal the toggle header can reorder table elements.
  • Trap focus on auth security modal
  • Make input popup errors keyboard-accessible
  • Fix tab order in “Feature topic” modal
  • Make “Load parent post” element accessible
  • Set role=presentation if alt attr is missing
  • Improve user card accessibility
  • Multiple fixes to user stream items
  • Associate label with input in bookmark modal
  • Add aria label to composer messages Esc button
  • Accessible full-screen and minimize composer buttons
  • Use button in d-modal-cancel component
  • Don’t include aria on reply count span element
  • Add clearer focus states for date picker elements
  • Keep composer as focused element when dismissing Link modal via keyboard
  • Add focus state for advanced search toggles
  • Improve group box hover highlight on dark schemes
  • Ensures featured topic btn is focused when modal closes
  • Makes toolbar tabindex independent from its context
  • Moves anchor rendering out of conditional to prevent losing focus
  • Add keyboard support for do-not-disturb modal
  • Keyboard access for /u table headings
  • Fix WCAG contrast for notification header
  • Make user avatars in posts stream untabbable
  • Improve accessibility of embedded replies below post
  • Improve accessibility of likes/read count post buttons
  • Change tabLoc tagName from <a> to <span>
  • Include username in aria-label of post region
  • Make the views column in topics lists tabbable
  • Improve topic entrance modal
  • Add aria-labels to topics list column headers
  • Add aria-label to the Replies cell in topics list
  • Focus last viewed topic in topic lists (take 3)
  • Focus last viewed topic in topic lists
  • Use dynamic type scaling on iOS devices
  • Use autocomplete=off more widely
  • Use autocomplete="off" for composer title
8 Likes