Discourse Version 2.4

Focus

Codename

Start date

June 18th, 2019

Release date

Feb 25th, 2020

49 Likes

NEW FEATURES

  • Limit number of notifications per user to 10,000
  • Publish a message when reviewable claimer changes (#9019)
  • Admins can configure the reflag cooldown window and if posts flagged as spam by TL3+ users get automatically hidden (#9010)
  • Add plugin outlet below login/create, add outlet to mobile
  • Support uploading a csv with either user emails or usernames (#8971)
  • Users cannot reflag recently handled items using the same reason unless the post was edited, or it was reviewed more than 24 hours ago. (#8969)
  • Adds a new plugin api to decorate plugin outlets (#8937)
  • Improving bookmarks part 2 – Topic Bookmarking (#8954)
  • Export defaultRenderTag function (#8941)
  • Add small action post to indicate forwarded email
  • Pending queued posts are included even if they don’t pass the minimum priority threshold (#8925)
  • Add logging when claiming and unclaiming reviewable flagged posts (#8920)
  • Support video caption tags/attributes (#8914)
  • Adds trust_level_growth report (#8878)
  • Add site setting for specific hosts using custom user agent when oneboxing
  • Allow single option polls (#8853)
  • Ensure we always fill the short_name in the web manifest
  • Add logout functionality to SSO Provider protocol (#8816)
  • Add Tactile feedback on likes
  • Send suspect users to the review queue (#8811)
  • Users can feature any public topic on his/her profile (#8809)
  • Add ‘groups’ option to polls (#8469)
  • Add message to log when admins are automatically deactivated
  • Allow searching public topics and personal messages simultaneously (#8784)
  • Use Contact Picker API for invites
  • Replace existing badge owners when using the bulk award feature (#8770)
  • Update upload security status on post move, topic conversion, category change (#8731)
  • Use upload:// short URL for videos and audio in composer (#8760)
  • Export all types of reports (#8748)
  • Drop “backup” schema 7 days after restore
  • Line with only 1 to 3 emojis will now display as large emojis
  • Secure media allowing duplicated uploads with category-level privacy and post-based access rules (#8664)
  • Allows to define a dissmiss duration on global notices (#8715)
  • Add hidden setting to disable configuration of inventory bucket
  • Mass award badge (#8694)
  • Pass in excluded usernames to user-selector (#8695)
  • Use new Badging API
  • Add rake task to disable secure media (#8669)
  • Turn csp on by default (#8665)
  • Support MaxMind DB downloads using a license key
  • Internet explorer deprecation global notice (#8577)
  • Topic admin menu sticks to bottom on mobile. (#8620)
  • Allows plugins to add a global notice (#8552)
  • Allow TL3 promotions for overturned penalties
  • Allow complex post params from plugin (#8598)
  • Add mybb.ru import script (#8609)
  • Keyboard shortcut for opening the topic admin menu (#8568)
  • Make ‘Reorder Categories’ work with nested categories (#8578)
  • Modal for profile featured topic & admin wrench refactor (#8545)
  • Completely remove unsafe-eval from CSP
  • Adds a message when the passwords doesn’t match in rake admin:create (#8543)
  • Hash API keys in the database (#8438)
  • Create IE Support Plugin (#8520)
  • Warning when component is added and not assigned (#8482)
  • Featured topic for user profile & card (#8461)
  • Add site setting to remove X-Frame-Options header.
  • Tag synonyms
  • Add topic_filtered_posts_count attribute to web hook post serializer.
  • Ability to add all active components to theme (#8447)
  • Add hidden setting to allow unsafe-eval in CSP
  • Plugin outlet adjacent to new topic btn (#8443)
  • Support pasting a list of usernames into a PM
  • Improve suspect user discovery
  • Make site texts controller handle pages and locales (#8408)
  • Ability to add components to all themes (#8404)
  • Consolidate group membership request notifications.
  • Limit the number of active sessions for a user (#8411)
  • Hide posts from incoming email based on dmarc verdict (#8333)
  • Pie chart option for poll results (#8352)
  • Add timezone to core user_options (#8380)
  • New API to apply custom filters to the review queue (#8392)
  • Add export poll button (#8370)
  • Support RS256 algorithm for webauthn (#8385)
  • Improve email change workflow
  • Normalize the service worker route (#8359)
  • Remove support for ‘suppress_from_latest’ category setting. (#8308)
  • Block screaming frog SEO spider by default
  • Introduce default application level rate limiting by IP
  • Add support for secure media (#7888)
  • Filter reviewables by date range (#8354)
  • Allow scoping search to tag (#8345)
  • Dismiss new per category (#8330)
  • Send a message to new TL2 users and point them to the advanced tutorial (#8335)
  • Automatically redirect to authenticator when there is only one
  • Support to mute all categories by default. (#8295)
  • Allow FinalDestination to use custom user agent for specific hosts
  • Notify tag watchers when tag was added to post (#8299)
  • Load translation overrides without JS eval
  • Overhaul of admin API key system (#8284)
  • Add welcome message for admins. (#8293)
  • Add an “init” method for extra nav items
  • Allow publishing docker dev either locally or net wide
  • Fallback to image alt before filename if there’s no title in lightboxes (#8286)
  • Create New Topic button on embed with params (#8280)
  • New site settings for default tags in user preferences. (#8283)
  • Categories can require topics have a tag from a tag group
  • Option to update user preferences of all users when default site setting changed.
  • Stop updating last_posted_at on users for messages and whispers
  • Allow sending bulk invites to staged users
  • Remove attachments and truncate raw field for incoming emails (#8253)
  • Site setting/UI to allow users to set their primary group (#8244)
  • Add SES spam header to recognised spam headers (#8254)
  • Welcome moderator message - add copy! (#8246)
  • Add remembering topic list for group pms (#8235)
  • Support SCSS in custom email style
  • Wiki editors are allowed edit tags for wiki topics.
  • Include image url in topic serializer
  • Remember scroll position in private message lists (#8212)
  • Remember position in private message lists
  • Experimental hidden setting for draft backups
  • Allow staff to use topic_url for customizing email template
  • Improve honeypot and challenge logic
  • Option to update category preferences of all users when site setting changed (#8180)
  • Use the ‘ugc’ rel attribute alongside ‘nofollow’
  • Add short site description on login page title
  • Search topics when adding a link in composer (#8178)
  • Support for --fast-fail in bin/turbo_rspec
  • Load pretenders in plugins too. (#8173)
  • Display created and last_used dates for API keys
  • Redesigned GitHub oneboxes
  • Add site setting to show more detailed 404 errors. (#8014)
  • Use full page redirection for all external auth methods (#8092)
  • Improve GitHub commit, PR and issue onebox rendering
  • Weighted reviewable user accuracy (#8156)
  • Inaccurate users have negative review accuracy
  • Added input for name when creating a new authenticator in user preferences
  • Added placeholders to authenticator inputs
  • Adds an extra protection layer when decompressing files.
  • Allow UploadRecovery to be run on a single post (#8094)
  • Webauthn authenticator management with 2FA login (Security Keys) (#8099)
  • Add topic and category context to post webhook payload (#8110)
  • Topic title is validated for blocked words (#8127)
  • Add support for maskable icons in the PWA manifest
  • Make share button support custom javascript (#8090)
  • Whitelist the allowfullscreen iframe attribute (#8086)
  • Update mini_scheduler to support history filtering
  • Allow embedding to ignore HTTP REFERER
  • Quick access panels in user menu (#8073)
  • New post editing period for >`= tl2 users (#8070)
  • Add tl2 threshold for editing new posts
  • Add topic creator username on topic list embed
  • Add before-topic-progress plugin outlet
  • Adds a pop up that shows a more detailed score for reviewables (#8035)
  • Improve performance of anonymous cache
  • Support data-explorer outlet in group navigation (#8063)
  • Track date api key was last used
  • Embed topic with detailed metadata (#8062)
  • Anon cache reports data to loggers
  • New ‘Discourse-Render’ HTTP header
  • Notify posters when restoring flagged posts
  • Login with Discord (#8053)
  • Do not replace ↔ with an emoji
  • Site settings for linking with iOS/Android native apps
  • Add hook after all initializers
  • Allow themes to upload js files as assets
  • Adds countdown attribute to [date] (#8037)
  • Protect against replay attacks when using TLS 1.3 0-RTT (#8020)
  • Allow plugins to manipulate site settings during backup restore
  • Treat theme_uploads as settings in JavaScript
  • Publish read state on group messages. (#7989)
  • Incorporate PWA install prompt into Discourse UI (#8013)
  • Favorites emojis will also show in composer autocomplete (#8011)
  • Add a webhook for user notifications
  • Staff only poll results (#7984)
  • Embed topics list on remote sites via Javascript API. (#8008)
  • Add support for group members visibility level (#8004)
  • Add a preview to the poll builder (#7988)
  • Allow themes to override color transformation variables (#7987)
  • External auth when redeeming invites
  • Add setting to show content of forwarded emails in topics (#7935)
  • Add option to always send excerpts in emails
  • Send notification when member was accepted to group. (#7614)
  • Mention in secure category to prioritize groups
  • Allow post process mutex to be held longer
  • Add a test facility to the watched words admin interface
  • Improve stats provided by rake db:stats
  • List category moderators on the about page (#7916)
  • Customization of html emails (#7934)
  • Generate new VAPID keys when base_url changes
  • Sync unread state live to topic lists (#7933)
  • Add attachments to outgoing emails
  • Add search operator to see all direct messages from a user (#7913)
  • Watched words improvements (#7899)
  • Allow downloading watched words
  • Allow clearing watched words in bulk
  • List all blocked words contained in the post when it’s blocked
  • Allow viewing of raw emails for reviewable queued posts (#7910)
  • Allow choice of category when making a PM public (#7907)
  • Permit users who had no penalties in last 6 months to be TL3. (#7892)
  • Send max 200 emails every minute for bulk invites (#7875)
  • Create a rake task for destroying categories]``[1]`
  • New date/time components (#7898)
  • Gz to zip for exports (#7889)
  • Admin/user exports are compressed using the zip format (#7784)""
  • Create a rake task for destroying categories
  • Allow customization of robots.txt (#7884)
  • Make Discourse work offline with WorkboxJS (#7870)
  • Use configured quotation marks in fancy topic title
  • Site setting for typographic quotation marks
  • Admin/user exports are compressed using the zip format (#7784)
  • Remap uploads during restore when S3 or CDN changes
  • Add hidden setting to include S3 uploads in backups
  • Allow Markdown in post notices. (#7864)
  • Show login and signup button on no-ember layout (#7867)
  • Add “Group owners” to posting options for groups
  • Add new group visibility option for “logged on users” (#7814)
  • Rake themes installer (#7848)
  • Add Belarusian language
  • Opt-in guidance on topics for users without access (#7852)
  • Support query params when redirecting to internal link on login (#7829)
  • Allow disabling theme components (#7812)
  • Add CSS classes to associated accounts rows
  • When under extreme load disable search
  • Prefill title for direct messages from topic
  • Adds infite scroll on admin users list page (#7821)
  • In:tagged search (srv side) (#7822)
  • In:tagged and in:untagged advanced search filters
  • Export any type of report supporting table mode. (#7662)
  • Displays tags in search menu results when enabled (#7819)
  • Add support for tag group search
  • Add ability to have multiple totp factors (#7626)
  • Add endpoint to individually update a theme setting (#7789)
  • Apply a small penalty to closed topics when searching (#7782)
  • Adds early support for new emojis (#7785)
7 Likes

BUG FIXES

  • Make reviewable claiming work with deleted topics (#9040)
  • Sync Ember and non-Ember layouts (#9028)
  • Ensures topic count is correctly showing in box category badges (#9034)
  • Translate none-tag and all-tags labels in tag filter (#9030)
  • Ensures scoped search category is searching in all categories (#9031)
  • Ensures we don’t attempt to create a new PM on an existing topic (#9029)
  • Blank popular posts in summary emails due to lightbox images
  • Ensures group automatic membership dropdown works (#9022)
  • Muted was not working in topic timeline (#9021)
  • Ensure web hooks are retried at most 5 times
  • Correctly shows suggested topics label (#9017)
  • Ensures mini-tag-chooser is respecting max_tags_per_topic (#9018)
  • Use dedicated site attribute in category + tag filtered pages too.
  • Consider webp a supported image format for upload (#9015)
  • Only mark attachments as secure media if SiteSetting.secure_media? (#9009)
  • TOTP could not be used on sites with colons in their names
  • Restore initState() call within discourse-location for subfolder
  • Respect prioritize_username_in_ux setting in email
  • Correct upload statistics report for external storage
  • When admin changes staff email still enforce old email confirm (#9007)
  • When admin changes another user’s email auto-confirm the change (#9001)
  • Remove broken error dismiss button
  • Respect muted tags for mailing list mode
  • Minor linting issue for future rubocops
  • Disable save button for API key creation when invalid (#9005)
  • Patch ActiveRecord SchemaCache for safe concurrency support
  • Remove border-box from modal-body to avoid iOS fixed position bug
  • Makes setting-object capable of defining value/name properties itself (#9003)
  • Prevents setting default values on setting component to reload page
  • Prevents notifications button to be cutoff on mobile (#8998)
  • Enums should be treated as flat arrays (#8995)
  • Group members dropdown was broken on mobile (#8994)
  • Remove anchors from banner headings.
  • Mentions updater should work regardless of .notify
  • Group mentions were not being cooked the same was as previewed
  • Ensures report-filter/category is correctly filtering (#8992)
  • Use ‘hostname’ when Discourse.os_hostname is not available
  • Disable poll options if user groups do not allow them (#8987)
  • Strip video oneboxes from excerpts
  • Some select-kit dropdowns were cut-off by hidden overflow in modals
  • Use separate site attribute for single category “top tags” list.
  • Use correct translation string
  • Sk body should follow wrapper width (#8984)
  • Prevents error when loading tag groups (#8983)
  • Prevents expand post to trigger page routing (#8982)
  • Tweak upload security emoji check (#8981)
  • Improvements and fixes for update_upload_acl rake task (#8980)
  • Never mark uploads based on regular emoji secure (#8973)
  • Invalid syntax in elsif in Theme importer
  • Toolbar menu specificity
  • Username mentions lost styling
  • If a group is unmentionable, don’t render it as mentionable
  • Tag topic counts wrong after adding synonyms
  • Value-list choices when removing a value
  • Confirm draft_key is present on GET
  • Return a 404 when the draft_key is missing
  • Prevents everyone group to show as group option for polls (#8957)
  • Brings back castInteger as a safer migration path for sk2 (#8966)
  • When unread reply notification exists don’t create new (#8921)
  • Dont create new notification if already exists
  • Update Site.top_tags in “categories” route if topic list available.
  • Never allow custom emoji to be marked secure (#8965)
  • Displays selection text when no default_notification_level is set (#8962)
  • Don’t remove the topic image if posts don’t have them
  • Ensures shortcuts work correctly with topic-notifications-button (#8956)
  • Ensures select-kit can select a row with 0 as value (#8955)
  • Handle SSO Provider Parse exception
  • Linking to a category via hashtag had a broken URL.
  • Correctly compile theme template overrides (#8946)
  • Use plain text if available instead of image upload.
  • Regression with wizard canvas elements
  • Don’t count ignored, missing uploads in migration to S3
  • Remove pie draw animation (#8940)
  • Avoid highlight mention to groups that are not public.
  • Make inline oneboxes work with secured topics in secured contexts (#8895)
  • Subfolder sites rewriting URLs to root domain on initial load (#8932)
  • Date was not mutated when changing it in change-timestamp modal (#8935)
  • Avoid highlight mention to groups that are not public
  • Don’t use theme colors for digest unsubscribe footer links
  • Correctly excludes current user in user-chooser (#8928)
  • Makes user-selector use real booleans (#8909)
  • Render HTML for pie chart options (#8912)
  • Polyfill String.startsWith function for IE11
  • Make category slug validation less strict (#8915)
  • Disable preloading audio + video when secure media enabled (#8922)
  • Ignore group mentions inside quotes (#8905)
  • Removes limit for trust level growth report (#8908)
  • Makes tag-{info,list} more specific to avoid styling other elements (#8902)
  • Flair icon being removed when updating other profile info
  • Skip absolutizing URLs when source URI is invalid
  • Properly convert quotes to Markdown (#8808)
  • Ensure s2 is working with wizard (#8886)
  • Reset edit_reason in posts when creating a new version.
  • Strip audio/video content from excerpt (#8881)
  • Prevents ac wrap to overflow on group-add-member modal (#8882)
  • Remove post/topic image_url on post edits
  • Spoiler logic should live inside of spoiler plugin
  • Ensures we have a proper component name (#8876)
  • Recovered posts with no user will be taken over by system user (#8834)
  • Replaces fake null value by clearable option (#8875)
  • Show detailed error messages for category pages. (#8832)
  • Tag info misleading message saying it’s not restricted
  • Opening new topic draft never creates post (#8828)
  • Corrects min/max logic for mini-tag-chooser (#8871)
  • Simplify maximum/minimum logic in sk2 to avoid chicken/egg (#8868)
  • Allow submitting various forms via keyboard (#8866)
  • Don’t leak event listeners (bug introduced in 999e2ff)
  • Add support for sub-sub-categories in base_importer
  • Allow both meta_data and custom_fields when creating a topic
  • Topic progress bar shouldn’t show up on desktop (#8854)
  • Edit title respects min trust to edit post
  • Prevents firefox to generate a click event on space (#8856)
  • Ensures tags-admin-dropdown is working correctly with sk2 (#8852)
  • Links in category box descriptions should be clickable
  • Labels were switched in the wizard for privacy options
  • Warn users of overwriting new topic draft (#8841)
  • Featured topic title on profile HTML parsed (#8850)
  • Prevents exception on /admin/badges page when model is not set (#8849)
  • Email attachments with a size of 0 bytes caused error
  • Sort out the route navigation in admin/email-style (#8837)
  • Better error messages when name is too long
  • Restore up/down icons in period-chooser
  • Never return the same reply more than once via reply_ids
  • Make dropdown custom user fields compatible with select-kit 2
  • Don’t return post replies from other topics
  • Off-by-one error setting the distributed mutex key to expire
  • Check parameter types
  • Admin user list not showing 2FA icon for only security keys enabled (#8839)
  • Suppress notification flood when post is edited (#8838)
  • We don’t want to update the post read count and user stats if the post timing wasn’t created due to a conflict. (#8824)
  • Use updated_at in the S3 inventory job (#8823)
  • Serve .ico files without nginx 404 for secure media uploads (#8826)
  • Stop encoding presigned URLs with UrlHelper (#8818)
  • Import sub-sub-categories (#8810)
  • Ensure ‘unless’ helper resolves variable name once (#8820)
  • Disallow featuring hidden topics (#8814)
  • Stop secure media URLs being censored too liberally in emails (#8817)
  • Customized email subjects was ignored for some notifications
  • Set showFooter to true on group topic list (#8795)
  • Wrap markdown videos with video-container class to stop post height jumping (#8806)
  • Blank cooked markdown could raise an exception in logs
  • Mitigate issue where legacy pre-secure hotlinked media would not be redownloaded (#8802)
  • Correct notification when tag or category is added (#8801)
  • Award “User of the month” badge at the beginning of month
  • Uploads:s3_migration_status rake task was broken
  • Export all category names in user archives (#8790)
  • Apply like based badge based off grant date
  • Undefined method ‘title’ for nil:NilClass in PostAlerter#create_notification
  • GetURL on a subfolder site should ignore prefix in middle of URL (#8794)
  • Post reviser picking up edits for hidden posts (#8792)
  • Improve downsize_uploads (#8409)
  • Adjust the broken image placeholder border (#8781)
  • Failed to notify user after restoring backup
  • Add ‘noindex’ header to rss feed responses.
  • Resolve pull hotlinked image and broken link issues for secure media URLs (#8777)
  • Topics sorting in tag pages is broken.
  • Ensure sourcemap’s source is correct. Uses the full assets path this time. (#8774)
  • Redis fallback handler refactoring (#8771)
  • A separate FallbackHandler should be used for each redis pair
  • Create frozen copies of passed in config where possible
  • Extract start_reset method and remove method used by tests
  • Use presigned URL to avoid 403 when pulling hotlinked images for secure media (#8764)
  • Re-apply sourceURL in development mode
  • Featuring topic on other users profile shows their topics (#8769)
  • Notify staged users about private categories (#8765)
  • Show category list on subcategory page if it has subcategories too (#8768)
  • Ensure sourcemap’s source is correct
  • Show all parent categories on topic page (#8767)
  • Quoting a quote preserves the original post information (#8746)
  • Ensure only edited badge titles update a users title
  • Use schema.org’s BreadcrumList
  • Categories_breadcrumb helper to support more than 2 levels of categories.
  • Use new tag routes (#8683)
  • Workaround limitation in jquery.autoellipsis (#8747)
  • Higher z-index for usercards in the header
  • Do not extract dates from quotes and Oneboxes (#8754)
  • Allow the app to generate and accept longer backup codes (#8761)
  • Incorrect locale in badge granter (#8749)
  • When tag or category is added notify users that topic was modified (#8750)
  • Do not error in excerpts when aside tag has no class attribute
  • Make topic query include topics from sub-sub-categories (#8709)
  • Make category-chooser show all parent categories (#8706)
  • Users should be able to remove their primary group
  • Don’t override timezone on every visit of profile preferences
  • Don’t cause exceptions due to rename of reply_id column
  • Show PM icon in docked header
  • Applies correct styles to icon and attempts to dry code (#8739)
  • Do not increase size of emojis in markdown tables (#8742)
  • Reload the ReviewableScore types when extending flags (#8740)
  • Include sub-sub-categories in new/unread counts (#8710)
  • Change additional public uploads to not be secure (#8738)
  • Groups pagination was broken
  • Change rootNone behavior in category-chooser (#8692)
  • Add missing translation key for narrative bot Italian locale.
  • Styling for feature topic on profile modal (#8727)
  • Show error message if the topic deletion fails (#8723)
  • Correctly wrap image and resize controls inside paragraph (#8718)
  • Better error message when topic deletion fails
  • Create post notices only for public posts (#8708)
  • Group membership leak
  • Raised a proper NotFound exception when filtering groups by username with invalid username.
  • Properly filter the groups based on current user visibility when viewing another user’s groups.
  • Spec for groups_controller#index when group directory is disabled for logged in user.
  • Groups_controller.sortable specs to actually test all sorting combinations.
  • Rewrote the “view another user’s groups” specs to test all group_visibility and members_group_visibility combinations.
  • Ensures group-navigation states changes when route changes (#8724)
  • Ensures secondary menu of user notifications mobile nav reloads (#8716)
  • Update user-selector excluded usernames after insert (#8711)
  • Update featured badge ranking when mass-awarding badges
  • Moves back padStart/padEnd to core polyfills (#8714)
  • Specs with old filename
  • Use CDN for the discourse-internet-explorer
  • Remove padding while composer is saving
  • Ran prettier on user-selector-test (#8700)
  • Make ‘findBySlugPathWithID’ when URL ends with a slash (#8699)
  • Prevents url of file from being pasted when pasting file on iOS (#8693)
  • Don’t log a claimed topic database error during tests
  • Stop logging errors in postgres on reviewable conflict
  • Decompressing lots of small files triggered error
  • Allow users to change title in locales other than English
  • Do not redirect to /auth/* urls after authentication
  • If the admin sso sync has no external ID, don’t throw an error
  • Don’t leak event listeners in user-activity-drafts (#8682)
  • Allow omniauth confirmation page to pass through GET parameters
  • Add noindex header to user profile pages.
  • Make scrolling to bottom post in topic more consistent (#8671)
  • Ensure we consistently pick the same topic for bench
  • OnScroll method was not defined on mobile discovery (#8672)
  • Topic_tracking_state when mute_all_categories_by_default is enabled
  • Only agree with the first post when using the ‘Delete post + replies and agree’ option
  • Cached new topic data should not be deleted after dismiss new (#8660)
  • New/unread count after dismissing new topics in a regular category (#8659)
  • Allows scroll on load for discovery topic list (#8661)
  • Bulk insert to create application requests
  • Bulk insert to create topics
  • No need to create separate user for each topic, post etc.
  • Another bulk_insert of ApplicationRequests
  • Dont create user and topic instances when not neccessary
  • Merge examples with expensive setup into one example
  • MaxMind DB file not downloading correctly
  • Keep ‘rb’ & ‘rp’ tags in html to markdown conversion.
  • Ensure CSP is off for qunit
  • Show uncategorized description on categories page
  • Descriptions were blank for uncategorized in hamburger menu
  • Add a blank poll options validation (#8652)
  • Don’t give error 500 when invalid date param is given to admin reports (#8658)
  • Allow underscore in file extension while downloading the uploads.
  • Correctly account for onebox height when lazy loading images
  • Any global notice text can contain HTML (#8655)
  • Bots accuracy should be zero (#8654)
  • Allow any protocol in wildcard url checker (#8651)
  • Avoid superflous logging when mime type is bad
  • Under rare conditions saving a new draft could error temporarily
  • Catch error when unknown COSE algorithm is supplied for Security Key (#8649)
  • Trigger commands are different for each locale, account for that.
  • Only show admin wrench when there are actions on mobile
  • Don’t display cloak on admin tool when the right wrench is clicked (#8641)
  • Visual improvements to admin topic menu (#8638)
  • Use cached MaxMind DB for longer
  • Open a card on click even if the mention has extra elements (#8626)
  • The ‘reviewed’ status filter should include deleted elements (#8630)
  • Update topic/post counter correctly when category has zero topics (#8600)
  • Makes highlighting last viewed topic more resilient (#8624)
  • Correctly styles pwa consent banner (#8623)
  • Allows global_notice site setting to contain html (#8622)
  • Cache_critical_dns was erroring without IPAddr
  • Correctlt styles notification-consent-banner (#8621)
  • Track correct site setting
  • English and US date/time formats
  • Better error message when forum is in read-only mode
  • Update normalize css from 3.0.1 to 8.0.1 (#8591)
  • Correct description for out of love badge (#8615)
  • Everyone can see poll results when on_vote and closed (#8613)
  • Bug when revoking badge as title (#8616)
  • Category routes model params should decode their URL parts (#8612)
  • Ensure that we encode a slug only once if slug generation method is encoded
  • Give expanded CSS/HTML editor >`0 height
  • Label helpers on sign up form are not hidden (#8603)
  • Remove rerenderTriggers
  • Remove full nested quotes on direct reply (#8581)
  • Show signup input tips and improve spacing
  • Limit requests and include data when reporting deprecated icons
  • Correct user serializer user method for extended serializer (#8590)
  • Include Symbol polyfill for IE11
  • IE11 compatibility for readonly check
  • Show parent and subcategories for 2nd level categories (#8579)
  • Prevent errors in IE11 following AJAX request
  • Add missing Object.entries polyfill for IE11
  • Show new/unread button when a new topic or post is created (#8576)
  • Parallel spec system needs a dedicated upload folder for each worker. (#8547)
  • Move IE specific CSS rules to discourse-internet-explorer plugin (#8567)
  • Remove ‘staff_only’ results option for non-staff (#8565)
  • Fix choose-topic component to search by url (#8574)
  • Avoid String.matchAll for IE11 support
  • Use updated_at date to denote expired invites (#8521)
  • Prevents crash in discourse_tagging with empty term (#8548)
  • If a prettified slug is a number, return defaultt (#8554)
  • Require: false for rotp gem (#8540)
  • Category id in filterCategory (#8555)
  • Ensure currentUser exists before getting ID
  • If we run db:migrate on its own, it should load the environment
  • Migration paths were being forgotten
  • Allow IE script to load with a CDN
  • Granting staff status should auto-approve users waiting approval (#8533)
  • Granting staff status should auto-approve users waiting approval
  • Constraint error when inserting the same topic group twice
  • Cache short upload URL (#8541)
  • Disallow c as a tag
  • Disallow none as a category slug
  • Hide old bookmark button on post-menu if SiteSetting.enable_bookmarks_with_reminders
  • Replace deprecated URI.encode, URI.escape, URI.unescape and URI.unencode (#8528)
  • Update S3 stubs for more aws-sdk API changes (#8534)
  • Add new content type for theme/component
  • Don’t raise an error if the user is not present
  • Prevent scientific notation in free space check (#8473)
  • Always add username span in quick access item (#8526)
  • Reorder categories not working
  • Alphabetical tag sorting in mini-tag-chooser
  • Tag input doesn’t show all top 5 permitted tags
  • Ensures slug and id are not arrays (#8495)
  • Muted tags are respected by TopicTrackingState (#8467)
  • Don’t try to create an empty tag when updating a topic (#8481)
  • Default draft key in openComposerWithTopicParams (#8496)
  • Optimize images in Onebox (#8471)
  • Do not autocomplete categories or emojis in code blocks (#8459)
  • Crawler requests not tracked for non UTF-8 user agents
  • Skip validation on enforcing second factor change if the value is “no”
  • Avoid unpinning composer on iOS when invoking emojis
  • Ignore DMARC for emails sent to mailing list mirror
  • Image file names with dots were showing incorrectly in composer markdown (#8465)
  • Login page that redirects to preferences was broken
  • Redirect to /login-preferences didn’t work for subfolders
  • Anonymous cache regression
  • Export poll UI should only show for admins
  • Keep ruby & rt tags in html to markdown conversion.
  • Secure Upload URLs in lightbox (#8451)
  • BufferedValuesString.split is not a function (#8463)
  • Prevents multiple jumps to happen with LockOn (#8460)
  • Allow for nil upload record when migrating to S3
  • Ensures the element is on the page before scroll with lockon (#8458)
  • Use filtered posts when determining the next page
  • Add a component to all themes takes only active ones
  • Move select components/themes to top
  • Improve defaultIsAvailable
  • Add filter(Boolean) and remove btn class
  • Inbound link when the only slug available (#8457)
  • Don’t allow category slugs to be entirely digits
  • Respect enable_inline_emoji_translation setting in titles
  • Prepends whitespace when inserting via emoji picker
  • Filter readers avatars correctly when the post is a whisper
  • Guarantee order to correctly defer replies in review queue (#8426)
  • 500 error for missing badge grouping (#8446)
  • Hide pie legend when results are grouped (#8445)
  • Poll pie container was too large (#8444)
  • Do not autocomplete categories or emojis in code blocks (#8433)
  • Generate redirect URL correctly when using a subdirectory
  • Handle none path correctly with three levels
  • Ensures censor has always at least an empty string to handle (#8442)
  • Delay the ‘send_advanced_tutorial_message’ job to prevent race conditions
  • Optimize quoted images (#8427)
  • Add a unique index to developers table (#8436)
  • Make sure the suspended status is up to date (#8432)
  • Adds data-topic-id to quick-access-item (#8430)
  • Use mapBy and filterBy directly
  • Make Google Groups scraper work for G Suite users
  • Cache failed onebox URL request server-side (#8421)
  • Mark secure media upload insecure automatically if used for theme component (#8413)
  • Serve crawler view to Google PageSpeed
  • Correctly ignore/approve replies when acting on a flagged post (#8425)
  • Do not start the login flow when logging out from SSO/Authenticator (#8423)
  • Use dedicated Vimeo onebox for all video types
  • Correctly resize lazy loaded images in Oneboxes
  • Correct hostname in vimeo.com
  • Bypass finaldestination check for Vimeo links.
  • Do not validate topic when resetting bumped_at
  • Show updated_at for invite sent date.
  • Draft not clearing when replying to new topic
  • Oneboxer.js infinitely retrying failed requests (#8414)
  • Improves recurring by ensuring DST is computed correctly (#8410)
  • Don’t error when the empty current value in dif (#8406)
  • The build; ran prettier (#8412)
  • Update site data when we receive a list of categories
  • Only trigger upload ACL update when needed
  • Show quoted images correctly. (#8391)
  • Be more tactical with replacing markdown chars
  • Replace %20 with space in markdown file name for uploads (#8405)
  • When dismissing category inform via MessageBus (#8371)
  • Prevents exception and more duplicates (#8396)
  • Prevents timezone to show duplicated zones in preview
  • Method names incorrect (#8393)
  • Always return secure_proxy_without_cdn url for secure media (#8394)
  • Remove uneeded from discourse loader (#8390)
  • Aliases for require functioning (#8387)
  • Allow private media uploads to be reused in login_required sites
  • Replace this.get(“foo”) with this.foo to fix linting checks
  • Handle german quotes in discourse local-dates (#8386)
  • Mobile top topic list with a period and a category or tag
  • Do not log if an invalid mime type is passed to app
  • Add skip_validations in one more place for narrative bot plugin
  • Allow advanced tutorial when title emojis are disabled
  • Use correct MIME type for theme exports (#8379)
  • Abort CensoredWordsValidator early if censored_words_regexp nil (#8375)
  • Amazon video oneboxes were not working.
  • Allow secure uploads if global s3 setting active and enable_s3_uploads validations (#8373)
  • More Promise uses that were not imported
  • For a single authenticator, do not interrupt registration flow
  • Email excerpts for posts starting with a quote were displaying a username
  • Turn off auto bumping for topics with scheduled bumps
  • Parallel spec system needs needs a dedicated upload folder for each worker. (#8372)
  • ‘default_categories_muted’ site setting not working for anonymous users.
  • Do not insert conflict rows into category user
  • Automatically recover from bad sprockets cache in development (#8364)
  • Unable to remove required tag group from a category
  • Errors when using tags with colons in their name
  • Ensure load-more considers current position (#8357)
  • Better handling of Group model state (#8356)
  • Enter key should submit password reset form, not refresh the page
  • PM glyph in user-menu should always be shown to staff
  • We don’t need to refresh dates so often (#8367)
  • Attempts to be correct about dst when using recurrence (#8366)
  • A pmOnly tag should link to messages (#8361)
  • Don’t error CleanUpInactiveUserJob when user is missing (#8362)
  • Ensure revisions are made to store edit reasons and no reasons get wiped (#8363)
  • Support for rake db:rollback with plugins
  • Include 5 participants in topic summary
  • Use this.content.category instead of this.category on navigation-item
  • Confirm new email with backup codes enabled
  • Don’t show bots as post readers
  • Revert mobile jump to last post behaviour
  • SVG Sprite version hash should be based on bundle result
  • Tag topic lists should pass on noSubcategories when building the top menu
  • Tracking Topic State know about category_seen_at (#8351)
  • Need to require open-uri for discourse-narrative-bot plugin
  • Allow importing themes with subdirectories in extra_js
  • Missing User objects in Utilities
  • Computed is part of @ember/object not @ember/object/computed
  • Allow forceActive without a customHref
  • Do not deactivate admin accounts with recent posts or api keys (#8342)
  • Update quotes after moving posts (#8326)
  • Topic lists filtered by tag and a specified filter don’t work
  • Tag and category watchers regression (#8336)
  • Better error handling for invalid locale bundle versions
  • In case @ember/object hasn’t been loaded yet
  • Do not skip some emails in user search (#8317)
  • Keep emoji images in group bio excerpt (#8329)
  • More missing RSVP imports
  • Was using a native browser Promise instead of RSVP
  • Use correct class variable to get notification levels.
  • Remove magic numbers in notification levels.
  • Update api_key rake task for recent changes
  • Return a deprecation for Discourse.Session
  • Add deprecation for Discourse.NavItem in case themes are using it
  • Alias modules that are required AND imported (#8315)
  • Count current penalty if it started more than 6 months ago (#8313)
  • Use ‘about.json’ endpoint instead of using ember model to get the data.
  • Badge and user title interaction fixes (#8282)
  • Ensure enforce 2FA for staff satisfied by security keys (#8316)
  • Drafts are unique by draft_key and user_id
  • Correct display of last used date in API key details UI
  • Downcase SSO external email before checking against Discourse email (#8306)
  • Include onebox default options in development environment
  • The internal position on the topic timeline is a scroll position
  • Regression not showing excerpts in mobile timeline
  • Use long version of month names in date formats
  • Unicode group names encoded for url (#8302)
  • Too much blank padding in video oneboxes
  • Correct translation key for api key revoke button
  • Skip invalid URLs when checking for audio/video in search blurbs
  • Add <img> alt attribute for Summary emails
  • Tweak restorer spec to make it stableish (#8300)
  • Display tags topic list correctly when none is selected for subcategories
  • Build with prettier for imports (#8298)
  • Allow theme translations to be accessed in initializers (#8285)
  • FilterQueryParams mutates state that is essentially global
  • Improve regex used for image sizing controls (#8291)
  • On mobile setting active on navItem would not work
  • Skip composer blur event when switching apps in iOS
  • Do not update created_at date when resending invites
  • Do not consider mobile app traffic as crawler visits
  • No need to pass cache option in onebox
  • Dropbox videos were not loading
  • Ensure menu not too tall on desktop only
  • Prevents whitelisted_generic_onebox_spec to fail with zeitwerk (#8288)
  • Update action should be in setting-component mixin (#8287)
  • Ensures menu panel is not too tall for screen (#8248)
  • TopicQuery doesn’t react well to subcategories without definitions
  • Do not add personal message link in user menu if they are disabled
  • Move makeArray to discourse-common
  • Missing run import
  • Do not load plugin CSS/JS assets when disabled (#8275)
  • Unread topics not clearing when whisper is last post (#8271)
  • Hide muted subcategories for mobile (#8273)
  • Enter key on forms submits rather than refresh (#8274)
  • Make notification consent banner usable via keyboard and screenreader (#8255)
  • Move attachment_css_class constant out of upload-short-url for discourse-markdown-it
  • Cache Discourse.system_user separately for each multisite tenant (#8276)
  • Under some conditions draft would say it was saving when not
  • Tags can be filtered on categoryId without a q param (#8264)
  • Default user preferenced categories are not updating in admin site setting UI.
  • Prettier on importing mixin (#8270)
  • Ensure there’s an excerpt before showing the bio
  • Correct slug validation
  • Account for empty uploads directory upon backup restore (#8262)
  • Generate category url correctly when slugs are empty
  • Require q param in /tags/filter/search route (#8263)
  • Don’t use ember imports in pretty text
  • Use modules for Ember.run.debounce hack in testing
  • Upserting custom fields using keywords converts the array key to a string
  • More flaky jobs_base_spec.rb (#8259)
  • Flaky jobs_base_spec.rb (#8258)
  • Place image scale buttons unconditionally
  • Close modals on ESC key and clicking outside
  • Correct error when sending PM to email address
  • Prefer Category.find_by_slug over Category.find_by(slug: …)
  • TopicQuery category lookup by slug
  • Respond to user search correctly when category_id is blank
  • Theme component setting was not getting updated in the UI (#8247)
  • Reload plugin translations in development (#8243)
  • When running the wizard and using a custom theme, fallback to the color_scheme name if the base_scheme_id is nil (#8236)
  • Allow storage of non unique rows in oauth2_user_infos
  • Update rack-mini-profiler
  • Hide muted subcategories (#8239)
  • Handle nil case for avatar, just in case
  • Allow avatar downloads to follow redirects
  • Show poll voters in Oneboxed posts. (#7768)
  • Check for presence of liked post before creating notification
  • Rubocop rule on restorer spec (#8238)
  • Restore for non-multisite is not raising an error on reconnect step (#8237)
  • Backwards compatibility for uncompiled email style css
  • Do not load group members when user can’t see it.
  • Should not disable topic inputs while creating new topic.
  • Wizard tests were broken with new loader
  • Sortable controller var conflict
  • Correct path to ImportExport module (#8227)
  • Reconnect in restore process connects to correct DB (#8218)
  • Notifications are missing under certain conditions
  • Respect tl3 links no follow setting (#8232)
  • Return blank avatar when downloading an avatar is not possible due to file size
  • Exclude image_url from web_hook_topic_view_serializer
  • Prevent null-byte searches causing 500 error (#8226)
  • Follow redirect returns url if response code is 200
  • Do not resize xkcd image
  • Include user id in notification webhook (#8195)
  • Load user model when some attributes are missing.
  • Make category updates slug validation idempotent
  • Reload only notifications when refreshing notification count (#8221)
  • Zeitwerk-related fixes for jobs. (#8219)
  • Rate limit and hijack certificate generation. (#8215)
  • Add common HTML5 media extensions to onebox audio and video tags (#8216)
  • Correct mention autocomplete in new topics in unsecured categories
  • ‘only_hidden_tags_changed?’ method returned ‘true’ even when tags are not changed.
  • Id is always true since it’s been to_i’d
  • D-button should default type to button (#8217)
  • Fixes plugin generator with zeitwerk (#8220)
  • Various fixes to draft system
  • Update Redis gem to version 4.1.3
  • Polyfills forEach support on NodeList for IE11 (#8213)
  • Handle encoded slugs for subcategories
  • Do not truncate encoded slugs
  • Display site text overrides for non ‘_MF’ keys (#8189)
  • Transform pluralized keys to .other, to check valid interpolation
  • Update Redis gem to version 4.1.3 (#8197)
  • Get rid of redis freedom patch
  • More encoded slug fixes (#8191)
  • Do not encode the URL twice
  • More places do deal with encoded slugs
  • Handle the nil slug on /categories
  • Account for nil when looking up subcategories
  • Correct topic timeline position calculation
  • Tag cannot be used if it belongs to two tag groups with parent tag
  • Use the quote generator in the example text
  • Do not send notification to empty push_url
  • Do not make notification API call if push_url is blank
  • Add migrations to fix index on category slugs
  • Prevents trash button to get focus when submiting input on profile (#8198)
  • Respect private_email setting for user invited notification email
  • Include topic link when inviting existing users to a topic/PM
  • Correct line count link in GitHub commit onebox
  • Public_file_server.enabled is false in test (#8192)
  • Add unique index to prevent duplicate slugs for categories
  • Do not unpin reply box in iOS when selecting Emoji
  • Remove hiredis gem which is no longer needed
  • Subcategory permissions validation
  • Validation of category tree depth
  • Move notification level only when user posted
  • Zeitwerk-related fixes for jobs. (#8187)
  • Ensure that scheduled jobs are loaded. (#8183)
  • ‘local_cdn_url’ method should work for local relative urls too.
  • Allow themes to upload and serve js files (#8188)
  • Use upload’s cdn url in composer preview if available.
  • Allow change password with TOTP
  • Allows scrolling of search menu panel when showing more results (#8186)
  • Accurate sub_total calculation for reviewable_scores (#8184)
  • Properly encoded slugs when configured to (#8158)
  • Ensure we remove tempfiles from disk when creating an upload
  • Show a correct diff when editing consecutive paragraphs (#8177)
  • Prevent from creation of duplicated TopicAllowedUsers (#8169)
  • Minor Github onebox layout issues
  • Mobile adjustments for reviewable list
  • Downsize_uploads script
  • Don’t fail when there’s no directory to strip
  • During concurrent emails generation renderer should not be reused
  • Order UserFields by position, by default (#8176)
  • Site user_fields sorted by position
  • Sort UserField by position for Site
  • Don’t swallow the original error when moving posts
  • Narrative Bot certificates are ERB templates (#8174)
  • Topic timeline placement on iPad
  • Existing post timings could prevent moving posts
  • Decrement posts read count when destroying post timings (#8172)
  • Remove site setting ‘shadowed-by-global’ option (#8061)
  • Do not reset original scroll position in iOS to zero
  • Downsize_uploads script to support external storage
  • Store user_accuracy_bonus to clarify explanations (#8165)
  • Fix rake db:create after zeitwerk changes
  • Solution for pending migrations for bin/turbo_rspec
  • Updates discourse-ember-source gem (#8167)
  • Add mobile padding to bottom of user preferences screen
  • Check for category conflicts in SiteSetting validations (#8137)
  • Disallow negative reviewable score even if the accuracy would make it negative
  • Ensure push_url exists before making push notification API call
  • Properly downsize image on upload
  • Maxminddb:get task no longer working
  • Errors due to confusion between trustLevel and trust_level (#8149)
  • Update user vote count on topic trash/recover (#8144)
  • Correct position of topic progress in iOS when composer is visible
  • Broken rubocop by empty line in application.rb (#8148)
  • Autoload lib/ path for Sidekiq (#8147)
  • Ensures chart parent element is still present before render (#8145)
  • EmojiOne is now JoyPixels (#8142)
  • First post true if user creates topic first (#8139)
  • Show composer above DiscourseHub app nav on iPad
  • Apply Visual Viewport composer height calc in iOS only
  • Harden DistributedMutex
  • Exception with triggerRefresh and subcat listing (#8131)
  • Use migrations path for post_migrate (#8133)
  • Revert Demon::DemonBase back to Demon::Base (#8132)
  • Try to match advanced tutorial reset first (#8048)
  • Prevents trigger post read count update on non existing post (#8128)
  • Reset watched site settings when default locale changes
  • Respect unicode whitelist when suggesting username
  • Correctly escape category description text (#8107)
  • Change focus when application resumes in android
  • Include video tags and short urls in ‘have_uploads’ method.
  • Include ‘short_path’ as src in each_upload_url method.
  • PWA install was broken due to missing basic logo
  • Cleanup DiscoursePluginRegistry state after tests that use it
  • Fix options given to per-minute rate limiter
  • Properly render server side plugin outlets (#8106)
  • Require a min amount of reviewables before calculating thresholds
  • Sensitivity did not work by default
  • Remove versions from Active Record warm up (#8105)
  • Ignore min_trust_to_send_messages when messaging groups (#8104)
  • Proper jumpToPost with whispers/small-actions
  • By default, don’t abort Google Groups crawling on error
  • Split migration into two steps in developer guide (#8103)
  • Only apply post hide logic to flag actions
  • Google Groups crawler failed to login
  • Preview up to ‘max_oneboxes_per_post’ oneboxes
  • Put back the TL3 ->` TL0 spam thing
  • Ignored flags should not count in your accuracy score
  • Correct theme SCSS error handling
  • Live reload plugin stylesheets when editing in development
  • Live reload plugin stylesheets when the color scheme changes
  • Do not include theme variables in plugin SCSS, and fix register_css
  • Do not allow posting of category topic template without any changes
  • Escape $ in translations before interpolating (#8100)
  • Open drafts for PMs from Activity >` Drafts screen.
  • Ensure page is reloaded correctly when a hash is present (#8096)
  • Don’t show non-members as readers when the post is a whisper
  • Improve protection against problematic usernames (#8097)
  • Load raw hbs templates correctly from theme javascripts folder
  • Explicitly specify the format when loading /associate/{{token}}
  • Add support for version query parameter in InlineUploads
  • Do not escape fancy_title again. (#8095)
  • Do not show latest count in tabs on tag lists
  • Rails 6 multisite migrations and plugin migrations
  • Support <img> in code blocks when inlining uploads
  • Make markdown regexp patterns case insensitive.
  • Do not log ‘pull_hotlinked_images’ edits in the staff action log
  • Change admin dashboard sort caret icon color on hover
  • Let mailgun_api_key also support their “HTTP webhook signing key” (#8091)
  • Cast all numerical values in reports (#8087)
  • Clear authentication data from session after create account (#8040)
  • User directory should not include unapproved users
  • POP3 doesn’t work with TLS 1.3
  • Switch to full screen external login for Safari
  • Inline_uploads and subfolder (#8076)
  • Migrate_to_s3 task and subfolder
  • Errors in qunit tests when version check info is missing
  • Do not show staged users avatars when expanding the read count indicator
  • Display emojis in search result blurbs
  • Improve Onebox detection (#8019)
  • Modify frozen String and profile_db_generator uses category id (#8080)
  • Migrate post_edit_time_limit to tl2_post_edit_time_limit (#8082)
  • Move read state when moving posts
  • Topics with muted tag didn’t show up when filtering by category and tag
  • Post editing period specs
  • Inline_uploads not working on subfolder setups
  • :reject_user_delete action can only be handled by ReviewableUser (#8068)
  • Mobile Safari composer improvements (#8069)
  • Make ‘group membership requests’ feature compatible with visibility level option ‘logged_on_users’.
  • Adjust composer size for iPhone Xs Max and Xʀ
  • Report cached controller and action to loggers
  • Ensures google classic has correct man_facepalming emoji (#8065)
  • Include ‘short_url’ as src if upload url not exist
  • Close user card after clicking Message button
  • Auth popup handling for Safari same-site cookie quirks
  • Flagged posts user notifications (#8041)
  • User should get notified when a post is deleted
  • Broken scheduler when changing per_host <-> global
  • Allow accessing nested objects within theme settings
  • In case of orphan user records skip badge
  • Heartbeat should be per host
  • Notifications not updating correctly from background tab
  • Remote theme record not saved when checking for updates (#8054)
  • Avoid publishing changes if the topic was deleted
  • Include read indicator when the publish_group_state is enabled
  • An overridden text of a non-existent plural key resulted in error
  • Ensure live-reloading of theme CSS works first time (#8052)
  • Made turbo_rspec display errors in shared groups correctly
  • Race condition during deploys creating stylesheets
  • Don’t search for tags when editing topic title
  • Don’t blow up if the topic does not exists anymore
  • When activating via omniauth, create tokens after password reset
  • When activating a user, ensure the change is reflected immediately
  • Allow dashboard to load even when git version cannot be found
  • Display actual readers on the first post
  • Ensure avatar sizes are integers
  • Only use app argument for official iOS app banner
  • Show who read only if the attribute is enabled
  • Update topic groups correctly
  • Overriding _MF texts didn’t work for en_US
  • When using a custom authenticator URL, send request using GET
  • Add_to_serializer not correctly accounting for inheritance chains
  • Don’t display PWA banner when using native app
  • Remove duplicate %-sign from error messages
  • Heartbeat check per sidekiq process (#7873)
  • Allows mini-tag-chooser to fetch tags in background (#8033)
  • Filter out hidden posts for wordpress
  • Do not set destination_url cookie after deleting own account. (#8028)
  • Infinite loop when mentioning in IE11
  • Properly load desktop and mobile only plugin css assets.
  • Allow topic edits when using a hidden tag
  • Race-condition in fallback handlers (#8005)
  • Don’t try to delete staged, unused admins and mods
  • Regularly reset unknown extension of uploads
  • Limit PWA install banner to Android for now
  • Read indicator only appears when the group setting is enabled
  • Ensure extra locales are only available to staff
  • Ensure offset is always positive
  • Prevents mobile nav to create an error when unregistering click events (#8016)
  • Uses simpler pattern for custom href on extra nav items (#8015)
  • Rack-mini-profiler not showing plugin frames
  • J/K navigation resets current selection when scrolling fast.
  • Properly set notification levels on group invite
  • When inviting groups to message respect tracking state
  • Explicitly require topic_query_params
  • Clear banner topic cache after remapping
  • Ensures reports can’t modify records (#8006)
  • Correct race condition loading library
  • Hold s3 related distributed locks longer
  • Store custom attributes that are needed by plugins in queuedpost payload (#8009)
  • Attempts to use params from addDiscoveryQueryParam (#8007)
  • Convert omniauth authenticator names to symbols before comparing
  • Do not raise exception if the authenticator email is missing
  • Downcase email coming back from auth-provider
  • Replace model usage with SQL query
  • Correct ordering for post_edits report, and remove query limit
  • Correct query for post_edits dashboard report
  • Remove the tmp inventory files after the s3 uploads check.
  • RIP swipe-in menus on Android (#7997)
  • Don’t update watching_first_post notifications when moving first post
  • Trusted users might cause content to be hidden with one flag
  • Prevent failed remaps during restores
  • Truncate topic_links.url to 500 chars during remap
  • Do not create a double like notification. (#7999)
  • Blank second factor gets default name
  • Polyfills String.prototype.repeat for IE (#7994)
  • Disallow user self-delete when user posted in PMs
  • Use #dup instead of #+@ since content could be an instance of Nokogiri::XML::Element.
  • Drop readonly function when dropping table
  • Create readonly functions during backup
  • Detect DiscourseHub user agent.
  • Award ‘First Onebox’ badge just for Oneboxed URLs. (#7974)
  • Correct OmniAuth route ordering
  • Notify on Reviewable update. (#7980)
  • Wrong discobot tutorial started for certain locales.
  • Remove dependency on present? in distributed_mutex lib
  • Correctly encode non-ASCII filenames in HTTP header
  • Do not follow redirect on same host with path /login or /session
  • Allows replacement of digits and symbols emojis (#7978)
  • Embedding topics would fail with some HTML
  • Don’t hide/close topics if they don’t meet minimum visibility
  • Use unescaped title as combo-box id (#7979)
  • S3 uploads were missing a cache-control header (#7902)
  • Ensures flag-ratio report shows users with disagreed >` agreed (#7977)
  • Show membership requests link just for group owners. (#7543)
  • Generated controller should be in an underscored folder (#7975)
  • Ensures pikaday picker is showing in UTC (#7968)
  • Allows copy pasting file in composer with chrome (#7969)
  • Syntax error in b1f5949
  • Make the workbox path compatible with multisite
  • Composer preview on IE11 (#7970)
  • Rename deprecated “refresh” icon to “sync” (#7966)
  • Better detection of Apple browsers (#7961)
  • Various watched words improvements
  • Don’t include multisite upload path to source URL if already exist.
  • Make uploads recovery compatible with multisite.
  • Correctly update replies when first post gets moved
  • Modal onClose was being called repeatedly
  • Rollback when multisite tests raise exceptions
  • Don’t reuse redis connections in different threads in tests
  • Gravatar uploads being dependent on authorized_extensions.
  • DistributedMutex (#7953)
  • Better error message on username update from Admin user page.
  • Add back verbose option to DbHelper.remap
  • Add frozen_string_literal: true in the migration
  • Prevent user-notifications-dropdown from causing unintended changes
  • Post#each_upload_url yields incorrect path to block when CDN is enabled.
  • Make initializer work on first db:migrate
  • Correctly identify Chromium-based Edge
  • Support multi-file stylesheets in theme components (#7950)
  • Better error when SSO fails due to blank secret (#7946)
  • Include default label when exporting reports
  • Provide an error message if no valid tags were selected
  • Frozen string error in TopicEmbed.import (#7938)
  • Hide live-loaded posts from ignored users
  • Reverts #18e2816 (#7940)
  • Use same id for both original & optimized inventories in multisite setup.
  • Apply defaults constraints to routes format (take 2) (#7920)
  • Keep query params present in auth_redirect (#7923)
  • Ensure that jobs don’t run immediately after migrate_to_s3
  • Improves tags checking when updating category of topic (#7921)
  • Removes uncategorized context if not allowed in composer (#7922)
  • Send featuredLink as featured_link to backend to update correct … (#7915)
  • Use uniq instead of uniq! when checking for uncompressed root path. Use rails naming convention for ZipUtils
  • Migrations tried to change frozen string
  • Update reply count when moving posts
  • Delete notifications users can’t see after moving posts
  • Old notifications didn’t link to correct post after moving post
  • Allows to specify camelCased attributes in wrap component (#7919)
  • Set a minimum reading time per post. (#7842)
  • Always backup local uploads in addition to files stored on S3
  • Do not request refresh on ‘log out all’ request
  • Show same username or name for post notices. (#7862)
  • URL encode usernames in user profile links in RSS feeds
  • Remove post upload record creation inside ‘find_missing_uploads’ method.
  • Bugs preventing to close delete account modal with button (#7904)
  • String that can’t be translated in watched words UI
  • Empty backup names with unicode site titles
  • Respect logout_redirect setting on ‘Log out all’
  • When ‘raw’ started with non-image upload url it’s not converted to short-url.
  • Convert hotlinked non-image urls to short url.
  • Remove all service workers from Apple devices again
  • Rename deprecated icons, allow custom icons in badges
  • Recompile extra_js theme assets when COMPILER_VERSION changes (#7897)
  • Fallback to gzip compression if brotli isn’t supported (#7895)
  • Skip markdown conversion for hotlinked non image urls
  • Backups taken by pg_dump >`= 11 are nonportable (#7893)
  • Apply defaults constraints to routes format (#7890)
  • Ensure suppressed categories do not produce any featured topics. (#7863)
  • Allow ampersand in site_texts routes
  • Recalculate settings when dependent settings change
  • Use default locale for flag reasons
  • Do not show bootbox if post has no replies. (#7866)
  • Turn off search logging when read-only (#7877)
  • Ensures spinner is showing on tags/show when loading more (#7876)
  • Ensures routing with hash doesn’t stuck history (#7872)
  • Ensures routin with hash doesnt stuck history
  • Latest Selenium gem broke Google Groups import script
  • Remapping during restore was wrong for CDN URLs
  • Remap differently when backup comes from multisite
  • Turbo tests exit codes
  • Clear theme editor content on switching tabs
  • Remap shouldn’t try to change read-only columns
  • Show category name in title for crawler view
  • Use correct timezone for manual SQL
  • Don’t use exceptions to catch conflicts
  • Back button would go to previous topic instead of list
  • Only add image size when with & height are in pixels
  • IE grid layout issue on user’s own activity page
  • Fail if none of our tags could be updated
  • Do not show invite button if local logins are disabled
  • Ensures routing to / with query string works (#7859)
  • Don’t disable download_remote_images_to_local if site uses S3 (#7861)
  • Upsert a custom field if a unique constraint fails
  • Ensure lightbox image download has correct content disposition in S3 (#7845)
  • Prevent emoji-picker from not showing (#7856)
  • Respect the full_screen_login parameter from plugin auth providers (#7855)
  • Use title attribute for notification items. (#7840)
  • Remove misplaced save button
  • Show ‘Export’ button for all tabular reports. (#7838)
  • Logs for enabling/disabling components should show up in the staff actions logs
  • Ensures emoji helper is working with custom emojis (#7843)
  • Ensures /t/TOPIC_ID/POST_NUMBER is correctly routing (#7841)
  • Page starts at 1 (#7844)
  • Remove misplaced outlet
  • Creating new badge is failing on empty SQL query (#7837)
  • Only show remove timer button to users with permission to do so
  • Use normal title instead of fancy title for prefilled composer
  • Don’t send notification email when user isn’t allowed to see topic
  • Ensures static pages are using absolute path (#7828)
  • Copy local theme changes to correct temp folder when diffing updates to remote theme
  • Fix a navigation bug
  • FakeExceptions should have the original class name
  • An exception cause is itself an exception
  • Mark topics in sub categories as unread when dismissing parent
  • Turbo_rspec doesn’t accept these options
  • Only include pending/agreed scores in the total score
  • Provides an emoji helper to replace codes by images (#7802)
  • Prevents failure when TL was mutated on internal object (#7808)
  • Do not allow creation of topic if there is no category available for posting (#7786)
  • Calling action with a string is deprecated (#7807)
  • Closes search-menu on escape (#7804)
  • Do not include uncategorized_category_id in topic_create_allowed if posting in uncategorized is disabled
  • Ensure topic exists before making a banner. (#7781)
  • Don’t use DistributedCache to store redis readonly state
  • CategoryUser#batch_set (#7787)
  • Remove notification_level from category_users unique indexes
  • CategoryUser#batch_set wasn’t updating pre-existing records
  • Changed was being reported incorrectly
  • Iterate when clearing watched words cache
  • Multisite upload urls must have either db name or the word ‘short-url’.
  • Mobile overflow for tall fixed modals
  • Ensures url to full reviewable conversation works on subfolder
  • Category-chooser search should be scoped to category (#7794)
  • Ensure :after_auth event is triggered. (#7791)
  • Back button shenanigans when redirecting from index routes
  • Support carriage return in InlineUploads.
  • Don’t replace img tags within anchor tags with markdown format.
  • Edge case with anchor tag in InlineUploads.
  • Some toolbar operations weren’t triggering the change event
  • If a user deletes a hidden post, it should not lose history
  • Do not refresh all settings on save for all settings, limit to only a few
  • ‘status’ param change not filtering the topics in tag route.
  • BBcode edge case for InlineUploads.
  • Use correct name for selectable_avatars_enabled site setting
  • InlineUploads should replace attachment links with markdown text.
  • Upload#short_url generates incorrect URL when extension is nil.
  • Don’t allow users to edit topic information when the OP is locked
  • Couldn’t modify a widget that wasn’t in the registry
  • Remove temporary hack for fixed iOS bug (#7773)
7 Likes

UX CHANGES

  • Hides emoji picker from edit category tab topic template (#9036)
  • Hides local-date picker when used outside of main composer
  • Restrict icon height in btn-small to prevent height inconsistency
  • Eliminate double modal scroll on long mobile create account forms
  • Use same styling for username and user-name
  • Only the first attribute should be hyperlinked
  • Add margin based on attribute position
  • Improve small buttons appearance (#8990)
  • Show mentions properly in small post messages
  • Adjust width for topic notifications dropdown on mobile
  • Keep mobile composer category and tag inputs on one line
  • Minor tweaks to poll builder UI (#8985)
  • Cap height of user fields on mobile user-cards, add line-clamp mixin
  • Cap staff action detail height
  • Prevent category-drop topic count from wrapping to new line (#8943)
  • Use border-box sizing on SK2 dropdowns
  • Show all parent categories for destination topic
  • Composer autocomplete will suggest all visible group names
  • Do not enlarge emojis in polls (#8934)
  • Show destination topic status when moving post(s) to an existing topic
  • Update mobile site setting slide-out nav for RTL
  • Mobile layout fix for claimable reviewables
  • Prevent new badge from being orphaned on mobile
  • Always disable create account button when user fields are invalid
  • Ignore name parameter from IDP when it is equal to email (#8869)
  • Improved composer.saved_draft copy (#8863)
  • Caches icon picker full icon’s list (#8862)
  • Remove subtle render delay with timeline notification button (#8860)
  • Adjust algorithm for picking notification count
  • Topic progress bar should not flash on desktop
  • Introduces icon-picker component for badges (#8844)
  • Prevents mini tag chooser header to wrap (#8858)
  • Adds arrow navigation support to mini-tag-chooser (#8857)
  • Center titles in docked header when there aren’t two rows
  • Do not display pinned option description on mobile (#8846)
  • Ensures pinned options icon is not on a new line (#8845)
  • Include muted categories on the category page by default (#8842)
  • Add icon for Google Map onebox.
  • Hide the allow_embedding_site_in_an_iframe setting
  • Show vertical topic timeline while composing (#8813)
  • Introduce automatic ‘categories topics’ setting (#8804)
  • Admins should only see their own PMs when searching in:all
  • Invalid CSV error message now includes information about the malformed line (#8773)
  • Use ‘-’ as default category slug (#8607)
  • Add confirmation when adding tag synonyms
  • Users must confirm when leaving a private group
  • Minor adjustments to choose topic modal
  • Improve appearance of pm title editing
  • Improve appearance of lists and user fields in mobile bios
  • Ensure all generated backup codes are displayed on the screen
  • Return a friendlier error when the CSV is invalid. Added a cancel button to return to the /badges view
  • Update IE11 deprecation warning, and enable by default
  • Center featured topic on mobile profiles
  • Remove reliance on JS for category box links
  • Sub-sub categories in “Boxes with subcategories” + consistency
  • Correct validation message for category search priority
  • Some category page style adjustments for sub-sub categories
  • Do not use avatars as fallback opengraph images for replies (#8605)
  • Invites#show can’t be requested with json and is not configured properly (#8570)
  • New bell icons for notification/tracking statuses
  • Improve sub-sub-categories styling in categories list (#8593)
  • Show grandchildren in categories list (#8592)
  • Prevent the post admin menu from appearing under the header on OP
  • Reduce opacity on hidden topic contents, but not the controls
  • Minor user admin page adjustments, accomodating for long group names
  • Minor adjustment to give the PM recipient input more flexibility.
  • Increase combo-box tap area for mobile
  • Pluralize “likes/read this”
  • Improve alignment of social login/signup buttons in Firefox
  • Z-index of image lightbox needs to be higher than modal z-index
  • Improve copy on Move to Topic and Move to Message modals
  • Include public groups in mentionable groups set (#8516)
  • Small fixes for iOS signup modal
  • Tag combo box styles should match tags on topics
  • Minor style updates for tag info
  • Attempts to make charts loading less laggy (#8529)
  • Remove ‘show more’ from upload modals (#8470)
  • Removes avatar animation for mobile-user cards (#8483)
  • Remove the double-encoding of user titles.
  • Prevent scrollbars on initial panel load (#8456)
  • Adjusts wizard step margins (#8452)
  • Skip leading spaces in selection when adding a link.
  • Show group full name even when title is same. (#8437)
  • Do not show shadow on hover images on touch devices (#8429)
  • Show obvious message when backup restoration is disabled
  • Adds hover effect on lightboxed images (#8416)
  • Rename ‘Hide results’ to ‘Show vote’ in polls (#8403)
  • Set selected scale to 100% if scale is undefined
  • Make share icons consistent color for dark themes
  • Increase fade on long sign-up form content for more evident scroll
  • More obvious alt auth link
  • Allow enter key to submit test email in admin panel
  • Instead of total user count display only the count of users going to be affected.
  • Adds +n indicator in PM topic list (#8353)
  • Add CSP documentation link to content_security_policy_script_src setting
  • Do not add leading/trailing spaces when copying API key in Firefox
  • Tag input suggests required tags if none have been selected
  • Show user email address on “grant admin access” email and UI
  • Widen tag group name input field and add placeholder text
  • Convert alert & modal close to buttons for improved accessibility
  • Applies correct background to <select> on dark themes (#8234)
  • Improve quoting on iOS
  • Fixes regression with iOS composer
  • Update disabled dropdowns style w/ color variables
  • Standardize tag display in search menu results
  • Dashboard links to git commits list instead of git comparison
  • Make group membership UI clearer (#8210)
  • Emphasizes on local-dates being UTC in excerpts (#8208)
  • Ensure GitHub onebox info does not wrap unnecessarily
  • Improve new GitHub onebox rendering in emails
  • Add newline after closing poll tag for poll builder
  • Wrap digest email footer in a table for better alignment options
  • Include metadata in composer link modal search results
  • Add CSS classes to digest email template to allow for easier styling
  • Add glyph to “Help” button on Password Reset modal
  • Trigger primary action in modals using Enter
  • Use theme colors for GitHub issue labels
  • Better composer hyperlink modal (#8160)
  • Refactor iOS composer layout
  • Stop using fixed-width font to render github issue description
  • Reduce size of github onebox icons
  • Remove iPad keyboard user setting from iOS 13
  • Fix topic progress placement in iOS app
  • Input for name when creating a new authenticator (#8153)
  • Add “Drafts” to quick access profile tab. (#8155)
  • Restrict tall modal height to viewport %
  • Fix composer layout in Android
  • Trigger composer resize when dismissing keyboard in iPad
  • Bypass chrome autocomplete when editing admin text fields
  • Displays reads/likes in the same order that post menu buttons (#8140)
  • Full viewport composer layout on iPad
  • Fix topic progress placement
  • Fix alignment on topic progress bar and remove some magic numbers
  • Improve composer layout in iPads
  • Change composer’s edit reason link to an icon
  • Use Visual Viewport API for iOS composer height
  • Add class to distinguish specific moderator categories on about page
  • Use medium format for displaying time in post notices. (#8074)
  • Show installed version with SHA instead of number of commits
  • Adjusts RTL composer presence avatar alignment
  • Better user image for embed/topics
  • Align timeline controls to the top
  • Hide the read indicator if read count is zero
  • Use Flexbox for topic list embed
  • User vertical-align: middle instead of em units
  • Use color code variable
  • Convert embedded topic list HTML structure from table to div
  • Read indicator improvements. (#8049)
  • Remove unused strings about desktop notifications
  • Small follow-up to #8047
  • Better alignment for tags in the header (#8047)
  • Workaround chrome autocomplete bug in search
  • Layout fix for category boxes w/ long subcategory names
  • Prevents non-lightboxed images in quotes from stretching/squeezing (#8021)
  • Hide “Create Tag” option if user cannot create tag. (#7723)
  • Consistent placement of category-title-before plugin outlet (#8010)
  • Add link to robots.txt editor in site setting description
  • Fallback to unlocalized auth provider name if required
  • Prevent twitter onebox iframes from being taller than mobie viewport
  • Improve error handling for common OmniAuth exceptions (#7991)
  • Modifies admin email template to have more space for the form (#7993)
  • Clear username when opening ignore duration modal
  • Hide login/signup header buttons during authentication flows
  • Add login button icon to no_ember page (#7982)
  • Improve layout of poll builder modal
  • Improves dates on reports export UI (#7971)
  • Use shorter weekday labels in local-dates plugin
  • Use shorter weekday labels in date picker
  • Rename “Keep Post” to “Keep Post Hidden” when hidden (#7767)
  • Style fixes for admin digest email preview page (#7959)
  • Remove confusing border on ignored users list
  • Make profile views consistent with other elements (#7956)
  • Prevents cooked dates from wrapping (#7954)
  • Show a warning when admin clicks save without adding group when changing category permissions (#7947)
  • Increase contrast of pinned/tracking reason text, improve layout
  • Improve account association when account description is missing
  • Add expanded/collapsed class to post-controls (#7932)
  • Fixes onebox favicon vertical alignment (#7926)
  • Improve layout of long tag headings on mobile
  • Refactor avatar upload modal for better mobile spacing
  • Update invite ‘not found’ message
  • Fix profile image upload control spacing on mobile
  • Adds <a> tag with href category box titles (#7901)
  • Remove duplicate copy in two-factor preferences
  • Use SCSS color variables
  • Disable system edit notifications by default (#7896)
  • Swap ignore and mute sections to move the ‘Save changes’ button to the bottom
  • Use height relative to the viewport for robots.txt textarea
  • Rearrange controls in edit modals
  • Ensures popup-tip shows over dropdowns (#7891)
  • Mobile editor style fixes (#7878)
  • Update placeholder for Tags Groups
  • Add title attribute and aria-label to PM icon link
  • Discard selected post if it is not in viewport. (#7869)
  • Expand-post button alignment fix (#7865)
  • Make default site logo height an even 40px
  • Give badge icons width to accommodate for dimensionless SVGs
  • Improve twitter status onebox with line breaks
  • Add styling for quoted tweets (#7832)
  • Improves styling of similar topics results in composer (#7839)
  • Puts tags and categories on same line in search-menu-results (#7830)
  • Improved mobile positioning of topic timer remove button
  • Gives each info its own line in search-menu-results (#7825)
  • Update ignored_user_summary copy (#7748)
  • Move link to show tracked topics, simplify translation
  • Change icon for video placeholder
  • Hide post is unread tooltip after the post is read (#7813)
  • Make onebox video placeholder icon grey
  • Require a confirmation if approving a post in a closed topic
  • New inline button to remove a topic timer (#7790)
  • Add shortcut for deferring topics (#7798)
  • Improves change-timestamp modal datepicker (#7771)
  • Show like icon on archived posts (#7775)

SECURITY CHANGES

  • 2FA with U2F / TOTP
  • Use strict JSON parsing when parsing backup metadata
  • Improve second factor auth logic
  • Correct permission check when revoking user API keys
  • Vulnerability in WildcardUrlChecker
  • Upgrade rack-mini-profiler to avoid possible XSS (#8537)
  • Remove event handlers from SVG files
  • Ensure only image uploads can be inlined
  • Bump puma from 3.12.1 to 3.12.2 (#8464)
  • Check permissions when autocompleting mentions
  • Safely decompress backups when restoring. (#8166)
  • Mini profiler enabled incorrectly for admins
  • Safely decompress files. (#8124)
  • Update rubyzip dependency
  • Update rack-mini-profiler to latest to correct XSS
  • Don’t allow base_uri as embeddable host if none exist
  • XSS when oneboxing user profile location field
  • Reset password when activating an account via auth provider
  • Don’t send CSRF token in query string
  • Bump nokogiri
  • Add rate limiting to anon JS error reporting
  • Don’t reveal category details to users that do not have access
  • Restrict message-bus access on login_required sites
  • Require POST with CSRF token for OmniAuth request phase
  • Sanitize email id for use as mutex key
  • Add confirmation screen when connecting associated accounts
  • Validate backup chunk identifier
  • XSS when displaying watched words in admin panel.
  • SQL injection with default categories
  • Upgrade lodash
  • XSS with title selector on preferences page
  • Strip HTML from invite emails
  • XSS in routes
  • Escape email text for posts containing [details].

PERFORMANCE

  • Avoid shelling to get hostname aggressively
  • Memoize allowed user fields more efficiently (#8968)
  • Memoize PostRevisor#diff_size (#8939)
  • Optimize post editing
  • Load users in batches when generating notifications (#8870)
  • Speed up moving posts on large databases
  • Use a separate route for user cards, and split user serializer (#8789)
  • Cache ranks for featured badges, to simplify user serialization (#8698)
  • Reduce DB queries when serializing ignore/mute information (#8629)
  • Cache ignored and muted user ids in the current_user object
  • Avoid DB queries when checking ignore/mute permission in guardian
  • Cache user badge count in user_stats table (#8610)
  • Do fewer queries when converting posts. (#8358)
  • Cache static assets in NGINX for longer
  • Add a filtered index for banners
  • Add index to notifications to speed up moving of posts
  • Stop destroying drafts on client when posting replies
  • Run expensive clean up uploads less frequently
  • Cache new users counts in summary emails
  • Add index on group to category_groups (#8231)
  • Add unique index oauth2_user_infos(user_id, provider) (#8230)
  • Faster moving of read state
  • Avoid regex for hot path
  • Reuse renderer when rendering email templates
  • Speed up about page render time and limit category mods (#8112)
  • Ensure we warm up schema cache in the entire multisite
  • Avoid spinning a thread each time we close a connection
  • Update readers count when a post from another user is read. Don’t fetch the post data again just to update the count. (#8078)
  • Use CDN url for proxy of favicon
  • Run multiple threads for regular job schedules
  • Reduce window of consistency on user actions
  • Avoid filtering shared drafts when not used
  • Only select the only field we use
  • Precalculate the last post readed by a group member
  • Faster length calculation of composer body
  • Avoid N+1 on topic view
  • Rake posts:rebake_uncooked_posts runs inline
  • Message_bus will be deferred by server when flooded
  • Add more constraint on the Cache Storage usage
  • Improve query speed when looking up direct PMs
  • Use Oj for serializing JSON. (#7820)
  • Limit time spent diffing large blobs of text
  • Use Oj for serializing JSON. (#7780)
11 Likes