Discourse Version 2.4

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