# Discourse Version 2.3

**URL:** https://meta.discourse.org/t/discourse-version-2-3/96690
**Category:** Announcements
**Tags:** release-notes
**Created:** [September 8, 2018, 12:16am UTC](https://meta.discourse.org/t/discourse-version-2-3/96690 "2018-09-08T00:16:49Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [September 8, 2018, 12:16am UTC](https://meta.discourse.org/t/discourse-version-2-3/96690/1 "2018-09-08T00:16:49Z")

</div>

### Focus

- ✅ add user Ignore feature (TL2+) that rolls up into shadow moderator PMs when multiple people ignore the same user @Tarek_Khalil

- ✅ post annotations by staff, including automatic friendly nudge post annotation visible next to first posts and returning posts of long absent users, visible only to experienced users and staff @dan

- ✅ Composer image resizing by percentage UI @maja

- ✅ Do not allow saving a category if child permissions are [_less_ restrictive](https://meta.discourse.org/t/subcategories-do-not-inherit-permissions-from-parent-category/17174/20) than parent @maja

- ✅ New site setting to [require 2FA for staff](https://meta.discourse.org/t/requiring-2fa-for-staff/94868) @nbianca

- ✅ Completely overhauled and consolidated [review queue](https://meta.discourse.org/t/proposal-consolidated-review-queue/105588) including category specific moderators and post flag count UI revamp @eviltrout

- ✅ Per category search weight, plus a [variety of search refinements](https://meta.discourse.org/t/search-improvements-in-2-3/113411)@tgxworld

- ✅ Automatically delete abandoned accounts with no posts @nbianca

- ✅ Unicode username site setting @gerhard

- ✅ Better UI for [batch approving](https://meta.discourse.org/t/simple-workflow-for-group-owners-to-add-members/99859) people to enter / leave groups @nbianca

- ✅ [Add English and translated aliases for Emojis](https://meta.discourse.org/t/add-english-and-translated-aliases-for-emojis/86641) @gerhard

- ✅ Discourse footnote / Discourse tooltip and new dashboard all to use the same tooltip core control @j.jaffeux

- ✅ Wiki posts now notify users of edits if they are watching the first post @tgxworld

- ✅ Many assign improvements including overview page showing all assignments and monthly assignment PM reminders @Roman

- ✅ Theme CSS splitting, JS splitting @david

- ✅ Add theming education to setup wizard @pmusaraj

### Codename

- ~~[La Pasiega](https://meta.discourse.org/t/discourse-version-2-2/95438) v2.2~~
- [Vinča](https://en.wikipedia.org/wiki/Vin%C4%8Da_symbols) v2.3 ←

### Start date

Feb 1, 2019

### Planned release date

June 17, 2019

---

<div class="post-metadata">

### Author: ![neil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neil/32/102150_2.png) [@neil](https://meta.discourse.org/u/neil)
#### Post date: [June 18, 2019, 1:19am UTC](https://meta.discourse.org/t/discourse-version-2-3/96690/2 "2019-06-18T01:19:35Z")

</div>

## NEW FEATURES

- SKIP\_DB\_AND\_REDIS env var (#7756)
- Update pull hotlinked images to use `Upload#short_url`.
- Trigger Discourse events from authenticators. (#7724)
- Add base62 sha1 to cooked data attribute
- Add base62 sha1 to data attribute in `Post#cooked`.
- Ban any SSO attempts with invalid external id
- Add locale defaults for Unicode username whitelist
- Support private attachments when using S3 storage (#7677)
- Make staff action logs page support infinite loading
- Show tags in crawler view of tags page for static site
- Can sort reviewable queue
- Show “in reply to” on the review queue
- Enable\_performance\_http\_headers for performance diagnostics
- Dynamically update the topic heat settings monthly (#7670)
- Migrate uploads to S3 during restore
- Displays average for 2 columns tables which support average
- Uses native date picker on mobile (#7541)
- New rake task to invalidate broken images in post
- Multi-file javascript support for themes (#7526)
- Load theme setting descriptions from theme locale files
- Add support for defer topic functionality
- New rake task to watch all replied topics
- Add autocomplete discourse on full page search
- Mute topics tagged with both muted and unmuted tags.
- Implement Onebox for posts including polls. (#7539)
- Introduce dedicated storage and DB constraints for anon users
- Support ``[description|attachment]`(upload://``)` in MD. (#7603)
- Allow import of hidden site settings (#7601)
- Allow running message\_bus in a different redis instance (#7616)
- Use GIVE\_UP=1 to inform rake posts:missing\_uploads you are done
- When suspending a user, allow the Delete + Replies action
- Send notification when member was accepted to group. (#7503)
- Add backup directory for mmdb files
- Detect theme errors and catch them (#7589)
- Rake posts:recover\_uploads\_from\_index improvements
- Rake task for recovery of uploads from an index file
- Fix\_relative\_upload\_links now multisite safety
- Rename task to posts:destroy\_old\_data\_exports
- Add OpenGraph data to /login page
- Rake posts:destroy\_old\_user\_data\_exports
- Multisite support for posts:rebake\_uncooked\_posts
- Warn about sidekiq overload prior to migrating
- Posts:rebake\_uncooked\_posts to look at mismatching baked\_version
- Add uploads:s3\_migration\_status for looking at current status
- Big warning for uploads missing which can be very very slow on S3
- Add toggle for uploads:missing so it can skip external
- Make posts:missing\_uploads multisite friendly
- English locale with international date formats
- Add attachment support to xenforo importer (#7548)
- Display ‘last updated’ on dashboard, improve release notes link (#7560)
- Allow a huge number of users to share common prefix
- Preserve notifications levels when splitting topics. (#7494)
- Update mini\_racer to version including heap dump support
- Allow shadowing all s3 settings
- Use the exact name provided by auth provider
- Allow overriding download of maxmind db via env
- Claim Reviewables by Topic
- Use full screen login by default for social login methods (#7481)
- Option to skip posts with ignored missing uploads
- Create notifications on wiki edits for watching users.
- Hide Reviewable scores, change score filter to Priority
- Use Beacon API for tracking clicks. (#7483)
- Flag count in post menu
- Rake task to bulk grant badge to members of a group
- Only scroll to bottom for discobot
- Show edit indicator on review queue
- Show diff of local changes before updating remote theme (#7443)
- Disable native share API on non tablets/phones
- Automatically generate optimized site metadata icons (#7372)
- Added unlisted topics option to advanced search (#7447)
- Category Reviewable by Group
- Adds support for dates in polls (#7450)
- Initial implementation of generic filters for reports
- Ignoring users from the preferences page in a cleaner way (#7289)
- Generic theme component bbcode wrapper (#7400)
- Add `data-original-href` attribute to Vimeo iframes
- Use failed\_to\_login for SSO error (#7394)
- Stop running migrate to new scheme once done
- Add support for Unicode usernames and group names
- Always track clicks using AJAX. (#7373)
- Add import script for Friends+Me Google+ Exporter JSON archives (#7334)
- Remove user IDs from internal URLs. (#7406)
- Better wizard privacy controls (#7391)
- Let staff add custom post notices. (#7377)
- Native app banner improvements
- Clarify Reviewable User Actions
- Allow users to tone down digest emails (#7353)
- Create new helper method ‘Discourse.stats’ (#7388)
- Add suggested\_topics\_unread\_max\_days\_old
- Send the user a notification when their post is approved
- Allow API requests to specify the `DISCOURSE_VISIBLE` header
- Add setting to strip whitespaces from incoming emails. (#7375)
- Include a user’s pending posts in the topic view
- Multiple SCSS file support for themes (#7351)
- Add user preference for title counter mode (#7364)
- Display the reason for many reviewable items
- Extract ‘invite only’ setting in a separate checkbox control
- Enable NGINX brotli support unconditionally
- Remove “COMPRESS\_BROTLI” optional behavior
- Send user activation reminders. (#7280)
- Support searching custom staff actions (#7346)
- Remove ignore feature SiteSetting and enable ignore by default (#7349)
- Refresh MaxmindDb during assets:precompile. (#7340)
- Mark last notification unread when removing timings
- Ability to restrict some tags to a category while allowing all others
- Add scheduled job to ensure s3 uploads existence
- Change layout when default page is category to tabular for \_… (#7270)
- Bump onebox version, add styling for new reddit image onebox
- Ensure consistency of post uploads in cooked content
- Allow users to customize bonuses for reviewable types
- Delegated authentication via user api keys (#7272)
- Let users delete their own topics. (#7267)
- Add ignore duration selection for user notifications preferences page (#7269)
- Introducing new UI for tracking User’s ignored or muted states
- Introduce ignore duration selection (#7266)
- New ‘Reviewable’ model to make reviewable items generic
- Add Armenian language
- Unconditionally update Topic updated\_at when posts change in topic
- Change layout of escaped\_fragment\_ topic page to table one like live discourse (#7250)
- Allow auth providers to define specific icons
- Add page for all group membership requests. (#6909)
- Introducing new UI for changing User’s notification levels (#7248)
- Unified popover implementation (#7244)
- Implements a Well-Know URL for Changing Passwords
- User and group cards on mobile (#7246)
- Add every month / 6 months options to email digest. (#7247)
- Allow categories to be prioritized/deprioritized in search. (#7209)
- Improve avatar education link (#7240)
- Include muted users count within the ignored users report (#7230)
- Ignored user notification behaviour should be as a muted user (#7227)
- Only allow TL2 Users to ignore other users (#7212)
- Add scheduled job to purge expired ignored users (#7211)
- Locale support for seeded categories and topics (#7110)
- Post notices become old after 14 days. (#7197)
- Clean up inactive users. (#7172)
- Custom colors for default letter avatars (#7167)
- Display notification count in title for logged in users (#7184)
- Ability to exclude category from search results. (#7194)
- Adding early relase unicode emojis (#7188)
- Allow users to fetch a customized manifest on PWA install
- Updates emoji to latest 12.0 version (#7095)
- Add more granular user option levels for email notifications (#7143)
- Exposing a way to add a generic report filter (#6816)
- Enforce two-factor authentication. (#6348)
- Support custom icons in themes (#7155)
- Add `IgnoredUsersSummary` daily job (#7144)
- Enable experimental Badging API (#7173)
- Fetch email from auth provider if current user email is invalid (#7163)
- Skip sending emails to domains on the `.invalid` TLD (#7162)
- Add site contact group. (#7152)
- Add more control over post notices. (#7148)
- Unhide the embed\_whitelist\_selector setting (#7137)
- Add `Top Ignored Users` report (#7153)
- Log user approvals. (#7121)
- Account for `ignored_users` when merging two users (#7142)
- Header based auth for API requests (#7129)
- Skip small actions when counting replies in PMs. (#7108)
- Special call-out for new / returning posters. (#7115)
- Add missing S3 regions
- Allow discourse script to skip disabling of emails after restore
- Remove all expired invitations by default
- Create a new message via URL without specifying user or group
- Add about-after-description plugin outlet
- Save ignored usernames in user preferences (#7117)
- Hide ignored user’s Original Post content (#7113)
- Defer flags when deleting child replies (#7111)
- Allow users to easily track/watch/mute topics via email
- Add plugin html hook to insert html before any other scripts
- Add ignored user list to the User’s preference page (#7107)
- Optional detailed performance logging for Sidekiq jobs (#7091)
- Displays groups in menu search (#7090)
- Focus on composer TEXTAREA when iPad has a physical keyboard
- Use smooth scrolling for J/K keyboard shortcuts. (#7084)
- Import script for AnswerBase
- On iPad bluetooth keyboard use ALT-ENTER for post submit
- Allow iPad users to specify they have a physical keyboard
- Introduce Ignore user (#7072)
- Image resizing discoverability (#6804)
- Allow wildcard in allowed\_user\_api\_auth\_redirects setting (#6779)
- Add localized timezone names (#7004)
- Mini\_sql upgrade
- Add `f` and `t` search shortcuts for first post / title
- Add ability to clear previously set mobile\_view with mobile\_view=auto
- Allow moderators to change topic timestamps (#7053)
- Add missing autocomplete suppressions
- Merge share and invite actions together (#7021)
- Improve handling of backup storage errors
- Do no search for groups unless a term is specified
- Autocomplete usernames early in topic based on participation
- Added settings/translations support to theme editor UI (#7026)
- Trigger an event after a backup restore
- Always update docker image for dev prior to launching
- Allow blocking emojis (#7011)
- Trigger user profile create and update event (#6958)
- Add APIS for unpausing all sites
- By default exclude thumbnails from backups
- AWS SNS bounce notifications webhooks
- Setting for excluding optimized images from backups
- Makes create-account userfields using dropdowns accessible (#6991)
- Setting for compression level of upload in backups
- Calculate CSP based on active themes (#6976)
- Color-palettes component (#6992)
- Hidden site setting to always include topic excerpt
- Adds an API to register topic footer buttons
- Displays report description when hovering activity metrics (#6983)
- Shortcut ‘g s’ goes to first suggested topic
- Calculate sprite-sheet based on currently active themes (#6973)
- Allow string theme settings to display with multiple lines
- Returning falsy value from upload handler stops upload. (#6969)
- Use amazon s3 inventory to manage upload stats (#6867)

---

<div class="post-metadata">

### Author: ![neil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neil/32/102150_2.png) [@neil](https://meta.discourse.org/u/neil)
#### Post date: [June 18, 2019, 1:20am UTC](https://meta.discourse.org/t/discourse-version-2-3/96690/3 "2019-06-18T01:20:22Z")

</div>

## BUG FIXES

- Correct translation key in session controller specs
- Use .email-login class for page
- There is new behavior on a live site, staff are granted access.
- Respond with 400 error on invalid redirect param
- Do not allow unbound membership lookups
- Staged users should not be included in TL groups
- Ensures local-dates modal is not taking full height on mobile (#7772)
- Sub-categories was not getting selected for pre-filled topics
- Allow tall tables to scroll vertically on iOS
- Allow the clear callbacks to execute in acceptance tests
- Site settings loading default values when no db
- Remove onebox src from `Jobs::PullHotlinkedImages`.
- Do not attempt to migrate pre-existing uploads
- Do not change directory when decompressing S3 inventory
- Remove topic timer info on completion
- Stop re-downloading backup maxmind
- `InlineUploads` matching on external bbcode img url.
- Edge cases with markdown references for `InlineUploads`.
- `InlineUploads` does not correct urls with uppercase extension.
- Unsubscribe seemed to be missing some events (#7762)
- Performing actions on a particular reviewable was displaying an error
- Cover more edge cases in `InlineUploads`.
- Clean up cooked group bio when bio is removed (#7745)
- Correct more edge cases with `InlineUploads`.
- `InlineUploads` raises an error when img tag is invalid.
- `posts:inline_uploads` rake task needs to bypass bump.
- Check `postStream.gaps` exists before trying `postSteam.gaps.after`
- Trigger change event when inserting text
- Memory Leaks w/ Container (#7750)
- Memory leak when adding ajax prefilter repeatedly.
- Memory Leaks when decorating posts (#7749)
- Memory Leaks when decorating posts
- On tag change notify only users watching the tag. (#7707)
- Skip external urls which has upload url in query string.
- Handle array in redirect param
- Mark ignored posts as ‘read’, if last visible post is read (#7739)
- Do not live-load posts from ignored users
- Undefined method in `posts:inline_uploads`.
- File size text should not be part of link.
- Use markdown for images and attachments in `Email::Receiver`.
- Use new attachment markdown format in `ImportScripts::Uploader`.
- Use attachment format in user export system post take 2.
- Use attachment format in user export system post.
- Use `Upload#short_url` when quoting an image.
- Composer preview not caching inline onebox.
- Add ‘deleted’ to the list of status filters (#7738)
- Broken spec
- In reply to would sometimes have a broken link
- English locale must not fall back to any other locale
- Removing hidden tag bumps topic when all tags are removed
- Updating a user profile as admin shouldn’t change the user’s locale
- Prevents screen-track from leaking object (#7734)
- Removes leaking handler in select-kit (#7729)
- Avoid infinite loop if disk space is low
- Select-kit events were sometimes not cleaned up (#7728)
- Always schedule pull\_hotlinked\_images in cooked\_post\_processor
- Do not download emojis in pull\_hotlinked\_images
- Handle missing plural keys on client
- Safari desktop doesnt support input`[time]` (#7719)
- Permit new tags when allow\_global\_tags true. (#7722)
- Always take the first post in the RSS fee
- Ensure consistency should handle cases where a topic trashed
- Ensure\_consistency was able to create corrupt category topics
- Add support for custom/plugin notification title attribute
- Use URI.regexp to find URLs in plain text
- Round the calculated heat values
- Do not resize images in Onebox while lazy loading.
- Correct link to list of watched words
- S/thumb-tack/thumbtack (#7718)
- Prevents appEvents to leak (#7714)
- Periodically ensure consistency of categories. (#7663)
- Clone dateTime before changing timezone
- Missing `title` attribute when quoting an image.
- Add unit to width and height CSS properties.
- Broken serializer spec with no payload
- Ember was raising an error without a `.set` here
- Use correct locale when translating without cache
- Regression and attempts to have clearer naming (#7701)
- If favicon is missing due to bad url we would return a 500 on favicons
- Prevent deadlock (#7691)
- Don’t send post edit notification when hidden tags are changed
- Remapping URLs didn’t affect upload site settings
- Use hijack for processing bulk invites (#7679)
- Do not store bulk invite CSV file on server
- Corrects description as it’s not unique (#7688)
- Fix locale key
- Handle clicks counters in quotes
- Accept github theme urls with a trailing slash
- Ensures correct i18n key is used (#7686)
- Ensures we have data to compute average (#7685)
- Add title attribute for notifications
- Clean broken relations before adding javascript\_caches foreign key
- Default top timeframe was overriding best\_periods\_for
- Trigger user\_updated webhook when avatar changes
- Better error message when user without permissions replies via email
- Fix select badge as user title on badge page (#7682)
- Drop deleted posts from search index
- Correctly escape regex url
- Search indexer had various cases where it could fail
- Redirect to top was always redirecting to ‘All’
- Crawler footer style needed to be more specific
- Regression with finding reviewable counts on topics
- Display generic descriptor for associated account with no info
- Use crawler layout when saving url in Wayback Machine (#7667)
- Migrate\_to\_s3 wasn’t IAM profile aware
- Use the full URL for reviewable content to make the API easier
- Histories should be reverse chronological
- For API consumption it’s easier if the lings are the full URL
- Category topics should not be deletable via review queue
- Broken test, also typoed property
- Linting via prettier
- Don’t show the “Flag to delete” message to staff
- Add Chromebook detection.
- The en\_US locale depends on en
- Ensure the post url is present
- Reduce poll when post is nil
- Create system message in user selected locale
- Icon deprecation s/group/users (#7638)
- Incorrectly removed moveTypes array (#7637)
- Lookup should be done against locale of reference (#7632)
- Displays text of asset-version changed modal (#7631)
- Have nginx always pass `/uploads/short-url` requests to app.
- Verify the exitence of s3\_object properly without db name
- Ensures post-small-action is using timezone to display dates
- Replace details content with instruction.
- Position emoji-picker around d-editor.
- Bump search index version.
- Correct translations for logs error rate notice (#7622)
- Use the right property for post ID.
- Ensures events have access to correct context (#7621)
- We shouldn’t memoize the last time something is read
- Delete system generated message when user\_export record is deleted (#7595)
- System generated message for user export should be closed by default
- Refresh automatic groups after inviting moderators.
- Username suggester incorrectly skipping over whitelisted username
- Exception which was meant to be ignored and logged was failing
- Ensure we can download maxmind without redis or db config
- Rake maxminddb:get broke cause it required environment
- Don’t send replies to flags that are ignored by expiry
- When deleting a user via queued posts, block urls, ip and email
- Adding a user to a group twice under concurrency
- Update mapping between locales and Postgres dictionaries. (#7606)
- Attempts to prevent stacked-chart from being cut off (#7608)
- Update tags on change. (#7581)
- Consistently handle category param
- Catch proper exception
- Warn instead of excepting if MaxMind DBs can’t be downloaded (#7600)
- Gunzip the downloaded file
- Gz\_file might be nil here
- Introduces onSelectAny (regroup onSelect and onSelectNone) (#7594)
- Correctly cache hash of extra translations
- Fallback locale was not available for extra translations
- Add missing unique index on user\_id for user\_profiles.
- Undefined method when serializing a user
- Linting
- Popover should use target when no data attributes
- Allows scrolling when a lot of categories are used (#7590)
- Pull hotlinked images for lightbox links as well.
- Exception when pressing backspace on empty selection (#7587)
- Ensures selection is lookedup into async content (#7586)
- Fix build.
- Ie11 exception on new category popup (#7585)
- Avoid logging a warn for 404s.
- Don’t convert 🙂 into Emoji when emojis or emoji shurtcuts are disabled
- Allow upload recovery to recover uploads with sha mismatch
- Ensures we have an elementFromPoint before using it (#7583)
- Migrate\_to\_s3 task should remap attachment links too.
- Adds groupBy to lodash available functions list (#7579)
- Shows parent category name in title anchor (#7576)
- Use tar -xzvf to extract maxmind vs Ruby wrappers
- Skip upload recovery if file not found in s3
- Skip old scheme upload URLs while validating s3 uploads remap
- Remove the unwanted code.
- Puts focus-event at application level (#7568)
- Better node check for clickoutside in widgets (#7573)
- Should not migrate the system uploads to s3
- Ensures mousetrap is reset with the application (#7569)
- Ensure we don’t queue any jobs during s3 migration
- Skip uploads without etag in s3 inventory check.
- Handle clicks counters in full quotes
- Return consistent character encodings when downloading S3 uploads
- Prevents events on toolbar when in form (#7567)
- Only delete theme folder if it has been created
- Missing post revision when editing the first post.
- \_.include is no longer imported from lodash
- Wrong file used when updating lodash (#7564)
- Small tweak to percentiles based on feedback
- Blocked watched words should apply to staff (#7547)
- Btn class was duplicated on admin-menu-buttons (#7555)
- Share-and-invite modal was too narrow (#7559)
- Include posts with data-orig-src attribute in have\_uploads scope query.
- Skip validation while recovering uploads from s3
- Retrieve original filename from s3 object’s content disposition header
- Select-kit too narrow in topic timer
- Don’t hide back button at the bottom of timeline (#7544)
- Do not send duplicate alerts for the same post (#7476)
- Remove full quote on direct replies when “typographed”
- Make serverside and clientside omniauth origin redirects consistent
- Ensure `get_a_room` link starts with 'base\_path translation
- Add bucket folder path only if not exists
- Return 404 only if upload url also not internal.
- Make frozen string mutable in incoming\_domain
- Don’t allow username to be changed to same as password
- Don’t try to delete inactive moderators
- Do not log username change if the save process was unsuccessful
- Issue with incorrect heights when cloaking plugin content in posts
- More efficient topic-footer-button-api (#7535)
- Remove trailing slash from topic URL
- Prevents exception if report doest define filters (#7532)
- Allow underscores in s3\_upload\_bucket setting
- Reload the user record instead of fetching via email
- Track mutations on topic edit category-chooser only on select (#7528)
- Delete duplicate invites earlier in the process
- Customizing missing pluralized translations didn’t work
- Catch InvalidPluralizationData exception in fallback locales
- Correctly calculate fallback locale list
- When mutating a string to build a diff. Duplicate it first
- Invalid URL for queued posts review
- Pluralization error for tag error message
- Don’t increment version if the reviewable operation fails
- Correct CSS for instagram video play icon
- Process image onebox correctly when image is wrapped in a link
- Don’t display option for users to flag and notify a bot.
- Don’t create staged users when processing forwarded email fails
- Show error message if message exists
- Do not show self edits in Post Edits report. (#7510)
- Escape Vimeo iframe URL
- Return error if new topic category not found take 2
- Reduce iPad app nav padding
- Hide Uncategorized in site menu when disabled. (#7509)
- Remove default val for colors step if a default theme has been set.
- AllTimezonesd was mistakenly removed (#7513)
- Variable is different from key (#7512)
- Return error if new topic category not found
- Short description title on client side when empty description
- Correctly clear theme stylesheet cache when changing color scheme
- Frozen string exception (#7505)
- Frozen string exception (#7506)
- Add short description to title on client side
- Dynamically adjust scale when rendering wizard canvases
- Skip attachments in click track.
- Uglifier needs harmony for ES6 compatibility
- Return an error if a user tries to whisper
- Lighten instead of adding transparency to consolidated pageviews (#7495)
- Simpler w function check (#7496)
- Move default options that were in the bufferedRender function. This will fix shortcut navigation for discourse-assign (#7497)
- Wrong color palette after backup restore
- Optimized site icons were missing after backup restore
- Close topics deleted by users and ensure topic stubs are destroyed. (#7430)
- Only unregister service workers that belongs to Discourse.
- Discobot mention tutorial should be case insensitive.
- Your own likes were missing on posts
- We just show likes to see like count
- Like-count has been removed from the post menu
- Don’t bump topics when hidden tags are added or removed
- When mutating a string to build a diff. Duplicate it first (#7482)
- Make select all and below skip small actions. (#7425)
- Do not move hidden post actions. (#7424)
- Encode the URL per RFC 3986 spec
- Importing of polls from phpBB3 was broken
- Don’t trigger PG failover when running `db:migrate`.
- Correctly display browser is old message to IE10
- Conflict error (version was already used)
- Don’t remap readonly columns
- Fail gracefully if username parameter is missing when creating user
- Forces a reload of emoji list if clicked on more (#7473)
- Prioritize VERP key over final\_recipient header in bounced email
- Add ReadOnly hear to /srv/status
- Uses translatedTitle to check validity of topic footer btn (#7472)
- Ensures click on topic link has link for target and not children (#7471)
- Can’t remove user profile uploads.
- Better handling of category filter deselection (#7468)
- Properly associate user\_profiles background urls via upload id.
- Incorrect DB query for `AddUploadsToCategories` migration.
- Crawler layout CSS adjustments (#7469)
- Allow category group reviewers to edit queued posts
- Posts in the approval queue were sometimes dropping category
- Make ‘stats’ method compatible with multisite.
- Use full screen login for new-topic route (#7467)
- Add test to confirm updating category works.
- Pass correct date arguments to server when exporting CSV
- Initialize empty object if no custom filters are present
- Recursively delete nested replies
- Mark invited admins as ‘approved’ (#7459)
- Linking to `/new-topic` from `/latest`
- Prevents google to track certain pages (#7463)
- Prevents google to track certain pages (#7455)
- Loading more broken on groups page.
- Cache\_critical\_dns was never caching pg replica (#7461)
- Use PostgreSQL ‘ON CONFLICT’ to deal with race condition
- Use more specific target for “.tag-box”
- Staff-only tags visible on /tags page when restricted to a category
- Generate ASCII slug with default locale
- Skip click-tracking for mentions
- Remove duplicate Emoji names from blurb
- Reduce mentions in blurbs to @username or @groupname
- Category logo upload error in Discuz importer.(#7453)
- Prevents exception in the composer with regexp flags
- Revert tracking links in quotes
- Open links in external tabs. (#7444)
- Respect “open external links in new window” in quotes and edit history
- URL encode username and first letter in avatar URL
- Prevents exception when clicking directly on site text
- Prevents exception when search q params is a hash (#7437)
- Prevents exception when searh q params is a hash
- Set upper limit on clean up invalid users (10 years)
- Fixed uploadPlaceholder regex failing on not escaped characters (#7442)
- Ensures file extension doesnt have a leading point (#7449)
- Restores skipHeader computed property
- If mandatory parent tag is missing, add it
- Get vimeo URL from `data-original-href` iframe attribute
- Plain text table detection should work even if html content not found.
- Update mini scheduler
- Return ‘failed’ attribute when catching an ajax error and the attribute is present
- Uses no tags label for tag-drop header (#7438)
- Don’t try to delete inactive admins
- Fix notifications for flag PMs and show topics with moderator posts in inbox (#7331)
- Category list order using category featured topics (#7283)
- Ensures we have touches when starting pan event (#7435)
- Rescue InvalidURIError when removing user ids from links
- Narration Bot now gets site setting for automatic post deletion (#7432)
- Use first grapheme cluster for letter avatar
- Handle missing letter avatar
- Reload the ‘post’ model to retrive raw field value.
- Don’t treat ‘upload\_patterns’ as constant to make the rake task compatible with multisite
- Fall back to large logo on mobile no\_ember pages
- Make sure we hide the first post in a topic by an ignored user (#7428)
- Refactor padding when exiting composer
- Do not replace text of collapsed ignore posts (#7422)
- Disable input zoom on search in iOS
- Error when trying to move the same file to tombstone.
- Prefer data-original-href attribute to get iframe URL
- Ensure image tracking custom fields have no dupes
- Old `Upload#url` scheme support for `Upload.get_from_url`.
- Approved posts were not enqueueing alerts
- Do not track a elements with no href.
- Do not track user mentions.
- Safer scoring with concurrency
- Don’t add the reviewable score twice
- Broken plugin spec
- Improves locale support in tag-drop (#7418)
- Improves share/invite behavior on mobile and especially iOS (#7416)
- Hide ignoring users in preference for users with TL less than a member (#7415)
- Hide ignoring users in preference for users with TL less than a member
- Return the right response code for invalid theme id.
- Remove like\_count and `<hr>` tag from post crawler layout (#7413)
- Detect SNS notifications for SES correctly (#7284)
- Add unique index on group\_requests(group\_id, user\_id). (#7399)
- `nil` error in list, incorrect count in reviewable pending
- Use last\_activity\_date instead of created\_at for crawler view
- Automatic scrolling in PM not working.
- Prevents exception when the node doesnt exist anymore (#7408)
- Retrieve posts in order by id.
- Url in Russian translation
- Lint
- Replace references to flags in the header with review
- Disable webhooks on 410 and 404 HTTP responses (#7392)
- Show when a post has been deleted in the flag review queue
- Use `saved_change_to_value?` in site\_setting\_saved event
- Prevent anonymous users from changing their email/username/name (#7311)
- Better handling for toggling `must_approve_users`
- Add the last missing translation for push notifications
- Attempts to fix a regression making touchs on emojis less reliable (#7383)
- Restoring backup shouldn’t change disable\_emails from “yes” to “non-staff”
- Do not strip email lines having lists.
- Publish web hooks when topic archetype is converted.
- Missing topic edited web hook when publishing a topic.
- Bulk invite should skip invite and add existing users to groups.
- Bulk invite should not add users to automatic groups.
- Prevent exception in rescue block.
- Group requests page missing wrapper
- Prevent input zooming in iOS
- Set text title for desktop push notifications
- Do not error when importing a theme with empty files
- Show available details when rescuing error
- Properly log webhook errors in UI on rescue (#7376)
- Fixed category reordering using arrow icons (#7374)
- ‘have\_uploads’ scope should include all uploads without multisite ‘upload\_path’ prefix
- Change to correct bundled version
- Skip `<br>` inside `<p>` if next character is \n
- Rescue `avatars:refresh` rake task
- Detect local assets for subfolder installs
- Save registration IP address for invited users
- If creating an active user via the API, create reviewables
- Only consider pending queued posts for cleaning up uploads
- Our rspec suite should not require a network connection to github
- Strip spoilers in notification excerpts
- Show email for staged users in user cards. (#7354)
- Display conextual count on favicon if selected
- Better to put a ReviewableUser back into pending than silently fail
- Disagree and Restore should not revert edits
- Don’t try to create a reviewable user twice
- Correctly retrieve ‘login required’ setting value on wizard (#7355)
- Correctly retrieve ‘login required’ setting value on wizard
- Fallback to last post when the in-view post cannot be detected.
- Missing translations
- Should be able to recover a user deleted post if raw didn’t change
- Fixed deleted posts layout (#7348)
- Sites with SSO that required approval were not creating reviewables
- Don’t send activation reminder to staged users
- Always allow us to reject users, even if they are deleted
- Use ‘freeze’ method again to fix ‘cant modify frozen string’ error
- Fix assets:precompile rake task.
- Ensure TarReader is closed.
- Should look through posts for image markdown
- When banner is removed update all clients
- Empty the missing list on each post loop
- Pending users email went to the wrong place
- Keep highlighted text for quoted replies by ignored users (#7345)
- Only show “Approve” button for the admin user if reviewable
- Should find records by sha1 only in Upload model
- Broken tests
- Optimize query and avoid bloating memory in `Jobs::MigrateUploadScheme`.
- Web\_crawlers had been mistakenly removed (#7342)
- Removes link to old dashboard (#7341)
- Use new changed method name and remove whitespaces
- Display the username instead of {{username}}
- Missing translation key for Reviewable -\>` Deleted
- Take action should agree with all pending flags
- Remove quoted post text and block realtime replies from ignored users (#7336)
- Assign `decoratorHelper` (#7338)
- Clean up `topic_search_data` of trashed topics.
- Don’t try and reindex posts that have been trashed.
- Sometimes queued post would have a string for a category
- Queued Posts were not saving tags properly
- ‘currentUser’ is a property of the ‘widget’
- `decoratorHelper.widget` is not always present
- Layout was off in single-page user-preferences
- Hide post replies content for ignored users (#7320)
- Migrated flags should be reviewable by moderators
- Skip some checks for CJK locale in TextSentinel (#7322)
- Don’t trigger notifications when changing category/tags of unlisted topics (#7323)
- Recover from migration failure
- Make sure the site setting works and fix build
- Computed is not used
- Only perform logic on `create` commits
- Reviewable counts were not updating properly
- The option to delete replies was missing from the new review queue
- Show replies to the post, not the topic
- Set missing count in redis even if zero
- Rewrite old `/admin/flags` links to use the review queue
- Do not raise exception if the file is missing
- Use unfiltered URL when viewing all badges.
- Deleting Users should work nicely with Reviewable Users
- URL to user profile in poll results. (#7315)
- Protected method called, I’ll fire myself now
- Don’t create two reviewable scores for a user
- Reviewables should not be created for users until they are active
- Reverts href removal from user/group cards links (#7318)
- Allow queued posts from deleted users to be rejected
- Add more links to bandge cards.
- Links in badge summary were not clickable. (#7303)
- Clean up user export csv upload records in scheduled job (#7309)
- Letters between words incorrectly highlighted within post.
- Avoid penalizing long documents too much in search.
- Grant first quote at the date post was created
- On rebakes should not recreate quoted\_posts records
- Restrict scope of old scheme upload migration.
- Regenerate optimized images instead of migrating from old scheme.
- Ensures click on emoji in picker doesnt propagate (#7308)
- Restricted site text better error
- Category id wasn’t stored when enqueueing a topic
- Inconsistent user card position in Safari
- Do not allow `invite_only` and `enable_sso` at the same time
- Allow us to serialize reviewables with deleted topics
- Only staff can banner topics
- Uncategorized pm not allowing edit (#7276)
- `UploadRecovery` should look through posts for img src and bbcode.
- Handle more cases in `UploadRecovery`.
- Double render error with delegated authentication
- Don’t reindex posts belonging to a deleted topic for search.
- Don’t attempt to reindex posts that have an empty raw.
- Don’t log a second pending action
- Don’t refer to pending review items as flags
- Ensures popover is hidden when changing route (#7300)
- Handles boolean with popupMenuOption (#7299)
- Don’t enqueue TruncateUserFlagStats job when not needed
- Whitelist ‘feGaussianBlur’ and ‘filter’ svg elements
- Improves DST support of dates when recurrence is used (#7297)
- Keep `alt` and `title` in lightbox when indexing for search.
- Relevance search will now consider document length in ranking.
- Don’t index posts with empty `Post#raw` for search. (#7263)
- Don’t index posts with empty `Post#raw` for search.
- Better display if the topic is deleted
- Let users delete topics.
- Apply `min_score_default_visibility` to reviewable topics list
- Missing translations for agree/disagree details
- Allow users with posts to be rejected
- Reset embedding settings when no embeddable host, log host changes (#7264)
- Check if user is already allowed before adding to topic allowed users (#7242)
- Avoid the deleted\_at scope when recovering a topic from a recently recovered post
- Ensures score is 0 and not null if no associated reviewable\_scores
- Correctly uses woman version of previously genderless emojis (#7285)
- Avoid error on ajax.abort() when client has not opened the request.
- Safari needs a max-width to prevent modal overflow
- Admin chart y axis labels being rounded up/down when value is small.
- Admin search logs should filter by date instead of timestamp.
- `SearcLog.term_details` generating incorrect data because of case.
- Remove `:term` from `admin/search_logs/term/:term` route.
- Expire theme cache after remap
- Approved is status 1
- Missing events for ReviewableUser migration
- Approved should not be assumed in the migration
- ReviewableUser is not created yet
- Incorrect API in narrative bot
- Add missing strings.
- Regressions in JS test suite
- Remove old flagging scss, fix more linting
- Lint on JS
- Moment.js uses a more specific language code for Armenian
- `Upload.migrate_to_new_scheme` undefined error when external image fails to download.
- Switching composer action shouldn’t trigger abandon popup (#7261)
- Re-download hotlinked optimized images (#7249)
- Download local images, even if download remote is disabled
- Staff action records now also accepts action\_name as filter (#7256)
- Corrects link to moderators\_activity report (#7265)
- Failed to show details about some bounced emails
- Check can\_create\_tags on mini-tag-chooser as tag-chooser (#7260)
- Better styling with popover (#7259)
- Uses aria-label instead of title as it’s useless with popover (#7258)
- Flaky test in reports (#7255)
- Flaky test in reports
- Send only one post request when changing topic notification level (#7254)
- Forcing permissions of seeded categories shouldn’t fail
- Post blurb incorrect when search contains a phrase match.
- Destroy optimized image if attempting to migrate to new scheme fails.
- Skip validation when saving in `Upload#migrate_to_new_scheme`.
- More explicit grid layout
- Remove duplicate site settings and add unique index
- Make migration resilient against duplicate site settings
- Dry run broken for `uploads:migrate_to_s3`.
- Fixed changing composer mode escaping title (#7191)
- Onebox discourse user not respecting enable names (#7245)
- Always include custom fields in CategorySerializer
- Set text for titles in custom push notifications
- Prevent sending multiple summary emails due to Sidekiq delays
- Clear unsaved groups when switching user (#7236)
- Prevent critical emails bypassing disable, and improve email test logic
- Destroy `OptimizedImage` record even if `Upload` record is invalid.
- Handle BBCode in `migrate_to_s3` task as well.
- Suppress autocomplete on group filter
- Rebake lightbox and use short upload urls in `migrate_to_s3`.
- Add `sassc-rails` for plugins using sprockets to compile scss
- Discourse client should know about Logster (simpler approach) (#7237)
- Discourse client should know about Logster (#7232)"
- Discourse client should know about Logster (simpler approach)
- Respect the disable\_emails=non-staff site setting correctly
- Topic with no tags
- Upload watched words should use UTF-8
- Discourse client should know about Logster (#7232)
- Destroy optimized images in `upload:migrate_to_s3` rake task.
- Do not update last seen notification ID when forced to enable 2FA." (#7222)
- Fixed failing discourse-prometheus-alert-receiver plugin specs
- Don’t override .is-hidden on mobile
- Staff should be allowed to ignore users (#7216)
- Do not show post notices for bots.
- Disable buttons when loading more results on full page search.
- Use same weights for calculating rank and searching for posts.
- Search spinners hides all results when loading more.
- Improve UX for second factor enforcement. (#7207)
- New account modal too narrow in Safari
- Login modal too narrow in Safari
- Use default frame size for Instagram login
- Don’t push browser state if navigated from root url to home page url and vice versa
- Don’t redirect incorrectly after full screen login (#7170)
- SES webhook wasn’t parsing the message
- Reindex post for search when post is moved to a different topic.
- Don’t ignore category in search when using category filters.
- Seed data classes couldn’t always be found
- Windows has no country flags (#7199)
- Show ‘emails disabled’ to staff users when disabled for non-staff (#7187)
- Fixed edit category description redirecting without saving (#7192)
- Prettier for lightbox.js
- Only change content of meta tag
- Prettified code
- Made reorder more convenient by clamping the entered number
- Fixed reorder categories by number not working correctly
- Respect permalinks starting with “/category” (#7171)
- Don’t check system uploads in migrate\_to\_s3 rake task
- Bumps emoji cache version (#7195)
- Brings back `[+ New Topic]` btn from share-popup post action (#7182)
- Set default returning\_users\_days to 120.
- Prevents overflow on emoji picker on mobile (#7189)
- Emoji sets were inverted due to unicode order change (#7186)
- Use correct emojis for Twitter and Facebook
- Ensures add/remove btn is shown if you can only invite (#7185)
- Use correct sprite path for non-local setups
- Do not trigger post alerts for empty posts. (#7138)
- Update user options in rake task
- Prevents duplicate error on instragam migration (#7178)
- Images:compress rake task
- Skip create\_post\_notice when importing
- Prevents quote shortcut key to show in composer before quote (#7177)
- Migrate old null override for upload site settings.
- Outsourced erb part from emoji.js.es6 (#7168)
- Topic filters persist when navigating to home page (#7175)
- Topic filters persist when navigating to home page
- Migrate old blank override for upload site settings.
- Ruby bench script no longer working
- Allow banner topic posts to be moved to regular topic (and vice versa)
- Backwards compatibility for `SiteSetting.queue_jobs`
- Failed to detect existing category permalink
- Optimise querying Post’s serializer ignored attribute (#7169)
- `Upload#migrate_to_new_scheme` should not migrate system uploads.
- `StaticController#favicon` reads from disk when using local store. (#7160)
- Use prioritize\_username\_in\_ux in post notices.
- ‘topic’ can have null value
- Better emoji escaping for topic title
- Properly support defaults for upload site settings.
- A temporary fix when CJK user tries to add a long title (#7045)
- Prettyfied code
- Fixed typo
- Invite-panels regressions on private topics (#7157)
- Prevent mixed api auth headers & query params
- Disable notices for posts by anonymous.
- Notify on tag change. (#7119)
- Invite approval `StaffActionLogger` bug (#7151)
- Invite approval `StaffActionLogger` bug
- Error with two inputs having the same id (#7147)
- Disable ‘Create Topic’ button if tag is staff-only. (#6984)
- Disable ‘Create Topic’ button if tag is staff-only.
- Staff-only tags should always return 404.
- Advanced search category term should be case insensitive.
- Changed warning css class
- Added test for has\_more
- Text content search warning if more than 50 results
- Fixed vanishing select boxes on full search as new content loads
- Ensures tag-groups are used to allow category edit on topics (#7141)
- Make post notices invisible to poster.
- Various improvements to post notices.
- `uploads:migrate_to_s3` broken for GlobalSetting using file provider.
- Lightbox wrapper within open details should show.
- GET request didn’t use headers
- Job exception: undefined method `email’ for nil:NilClass
- Add translation to `ignore_user_enabled` SiteSetting (#7134)
- Retranspile theme JS when settings YAML changes (#7131)
- Experimental fix to Ember.ENV.EXTEND\_PROTOTYPES rare exception (#7133)
- Date format and styling for post notices
- Only call ‘unlink’ for tempfiles
- Sanitize theme settings properly before injecting into stylesheets (#7031)
- Do not display add/remove participants if you can’t actually do it (#7125)
- Remove padding from onebox site icon in composer preview
- Missing translations when “en” set as fallbackLocale
- Add additional rescue for assets:precompile
- Nav-pills not highlighted on user preferences page (#7126)
- Respect code indentation
- Changed poll age message to upcase (#7124)
- Loading draft also replaces the recipients (#7122)
- Return actual errors if PostCreator fails (#7096)
- NodeBB import details
- Post & topic destroyed hooks not triggering with tag filter
- Failed to save email template with pluralized subject
- Fixed custom emoji circumventing “max emojis in topic title” set… (#7116)
- Bugs in safari where select-kit is not expanding on iOS (#7118)
- WebhookPostSerializer spec failure
- Allow moderators to create categories setting broken
- WebhookUserSerializer spec failure
- Fixed editing whispers bumps topic (#7106)
- Remove ignore user feature from `user-card-contents` component (#7104)
- Anonymous user filtering bug in PostView (#7089)
- Anonymous user filtering bug in PostView
- Select-kit perf and positioning improvements (#7093)
- Pending counts were not shown on invites tab
- Remove duplicate definition of create\_categories.
- Any subcategory permissions are valid if everyone has access to parent category (#7097)
- /signup and /password-reset direct links were broken
- Error when filtering site settings
- Allow underscore and dash in username search
- Prevent default event and stop bubbling up when card popup is closed in mobile
- Don’t add bottom padding for avatars in composer preview
- Staff/admin shouldn’t be able to create uncategorized topics (#7077)
- When posts are moved to a message then small action post should not be publicly visible (#7085)
- Only profile owner can see links to watched/tracked/muted topics (#7083)
- Shows invite panel on mobile from topic footer buttons (#7080)
- Styling for resizable image wrapper in editor preview
- Polls acceptance tests
- Preload poll voters
- ManagedAuthenticator should automatically update last\_used time
- Use field name to name files in theme export. (#7009)
- Make it possible to use backup code everywhere where 2FA required (#7010)
- Use \* when apply italics in the editor instead of \_ (#7063)
- Escape\_comma wasn’t working in CSV exports
- Group\_names field wasn’t properly serialized
- Prevents double network calls and other quirks on admin emails (#7074)
- Prevents autocomplete from going over search input (#7075)
- Do not update tag name on /tags/intersection
- Ensures topic’s category allows topics tags (#7060)
- Attempts to fix an error with EXTEND\_PROTOTYPES (#7067)
- Users list show was loading multiple times with different params (#7058)
- Strip invalid byte sequences
- Hide ‘show associated accounts’ button if moderators can’t see emails
- Rtl topic progress wrapper position (#7070)
- Heisentest - Stored uploads don’t always start with 1X
- Heisentest - don’t memoize on a class variable
- Outgoing emails were not disabled after restoring backup
- Send test email doesn’t show a status
- Allows {{d-button}} to set a form attribute (#7056)
- Live refresh parent themes when editing child themes
- Allows right-click on post-date sharing link (#7054)
- Prevents other tests from leaking modified theme color (#7051)
- S/isMessage/isPM (#7048)
- Allows invite modal from topic-map post-actions (#7047)
- Use s3\_endpoint in migrate\_to\_s3 when not using S3
- Don’t update gravatar if the user has no email
- More reliable native sharing (#7039)
- Stricter window.navigator.share check (#7037)
- Ensures panel’s shareUrl is not erased by topic’s shareUrl (#7035)
- Ensure local images use local CDN when uploads are stored on S3
- Use CDN for optimized loading images. (#7006)
- Create and consume temp table inside a transaction (#7030)
- Race condition in SidekiqPauser.
- Use autocomplete=“discourse” to disable Chrome address autofill
- An `<a>` with a target of \_blank wants a new window
- Hide advanced theme fields behind a flag, pending UI improvement
- Should be possible to save an empty theme\_field in the editor
- Don’t try to rename group when username is taken
- Always rename groups with the default locale instead of using the user’s locale
- Slow test (deadlock)
- Refactor to prevent themes affecting core stylesheets (#7029)
- Removes legacy browsers-refresh button (#7028)
- Moment\_js locale files for zh\_CN and zh\_TW were not found
- Moment\_js locale files provided by plugins were ignored
- Should not generate payload until active webhooks are exist
- Stricter matching on local-dates (#7023)
- Do not show “move to new PM” option to moderators
- Don’t import parts of the email address as name
- Add missing translation. (#7014)
- Push notifications could fail with UnauthorizedRegistration
- Delete push subscription on MismatchSenderId error
- Stop autocomplete for invalid usernames. (#7005)
- Unable to create new categories
- Remove ‘backfill\_etags’ keyword argument from ‘uploads:missing’ rake task
- Fix failing test.
- Run the rake task only for uploads created before a day from inventory date
- Logspam due to 404s on CSS files
- Validate parent category/subcategories permissions
- Make composer full screen shortcut work when inputs have focus (#6907)
- Tags added while editing a pending approval topic do not show up (#6959)
- Add multisite support to Sidekiq::Pausable. (#6960)
- Add onceoff job to remove double quotes from s3 etags
- OptimizedImage model doesn’t have ‘created\_at’ date column
- S3 inventory can have duplicate etags
- S3 inventory data can be splitted into multiple csv files
- Upload emojis sequentially to prevent rate limit
- Sets categoryId but do not scope when replying as new topic (#7002)
- Reverse consolidated pageviews stacked chart order (#7001)
- Add support for missing verbs in user api key
- Translate bootbox confirmation dialog (#6981)
- Remove extra periods (#6998)
- Bump onebox version to include imgur security fix
- Heisentest - suspicious logins report was not ordered by date
- Clear the cache after destroying theme\_fields
- Allow unbaked theme fields to be destroyed
- Unpause sidekiq before adding uploads to backup
- Scale down swipe in detection to 20px from edge of the screen
- Only respond to menu open swipes on Andorid
- Some posters were not getting added to topic\_allowed\_users when moving posts to a new PM
- Display post updated date in non-JS view for crawler
- Do not treat TIFF, BMP, WEBP as images
- Allow restore when latest migration is a post\_migration
- Allow reverting theme/text settings from cookie back to default
- When disagreeing with a flag that silenced a user, unsilence them
- Allow subexpressions in raw handlebars helpers
- Prevent duplicate params for raw template theme handlebars helpers
- Position invite footer button before archive (#6990)
- Improves positioning of footer buttons on mobile (#6989)
- Remove double quotes from etag value in API response
- Hides topic-footer-mobile-dropdown when no content (#6985)
- Add support for style element in SVGs
- Old migration was loading up invalid model schema
- Correctly process {{each}} in raw handlebars templates for themes
- Validate Invite email against `EmailValidator.email_regex` (#6975)
- Destination prefix in S3 inventory configuration is incorrect
- Include error message if the “accept invite” process fails
- Bucket name is missing in S3 inventory data path
- Unpause Sidekiq before uploading backup to S3
- Users should able check the emails for self
- S3 endpoint broke bucket creation in non-default region
- Rescue and display import errors when updating theme via git
- In:title should work irrespective of the order. (#6968)
- Register pan events for touch only
- Fix delete button for Tag Groups. (#6965)
- Some brittle tests with hardcoded ids
- Login button icons should be white
- Don’t raise error if s3 set via global setting

---

<div class="post-metadata">

### Author: ![neil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neil/32/102150_2.png) [@neil](https://meta.discourse.org/u/neil)
#### Post date: [June 18, 2019, 1:20am UTC](https://meta.discourse.org/t/discourse-version-2-3/96690/4 "2019-06-18T01:20:54Z")

</div>

## UX CHANGES

- Improves change-timestamp modal (#7766)
- Copyedits on reviewable filters
- Use a glyph to indicate a new topic instead of “New Topic:”
- Make input caret color match text color
- Display “Queued Topic” if a Queued Post will create a topic
- Shrink oneboxes and other wide content in custom post messages
- Lighten OS icons in recently used devices
- Move archive button in topic controls dropdown (mobile view). (#7681)
- Z-index fix for preview on iOS
- Add missing classes to user preferences
- Merge settings related to muted tags. (#7656)
- Cleanup crawler styles, improve [schema.org](http://schema.org) markup (#7668)
- Minor composer button alignment adjustments, simplification
- Move preview button to bottom right of mobile composer
- Adjust text a little more
- Better language about sensitivity
- Try tweaking how soon images are lazily loaded
- Wrap long names on user admin page
- Separate section for 2FA settings, more consistent layout
- Prevent long names from overflowing on user admin
- Prevent long names from overflowing on user profiles
- Remove padding from empty row
- Hide pending score statuses
- Ignore leading/trailing whitespaces in site settings search
- Rename discobot tutorial triggers.
- Save scroll position in tags topic list. (#7511)
- Better permalink feature description/warning.
- Initialize client side category model with right search\_priority.
- Add information about the use of permalinks
- Correct order of site statistics on /about page
- Switch mobile header back for 5s when notification comes in.
- Fills picker with emoji autocomplete state on `more` click (#7466)
- Changed post stream placeholder to animation (#7434)
- Only do plain text table detection in outside code if HTML pasting enabled
- Add transliteration support for the Greek language
- User card loading (#7404)
- Update post actions to “Approve Post” and “Reject Post”
- Replace staff notice icon with user-shield.
- Editing theme name stays active when switching themes.
- Add link to e-mail troubleshooting guide on the finish-installation/confirm-email dialog
- Do not close login modal and search menu on outside mouse up event. (#7366)
- Reorder post admin actions for greater consistency.
- Don’t clip staff shield in user cards (#7398)
- Show user card on load (#7380)
- Changed error draft status to icon (#7369)
- Move total user count
- New layout for groups page, allow changes to automatic group bio (#7350)
- Improve review queue layout on small screens
- Replace lightbox loading text with spinner (#7393)
- Detect DiscourseHub user agent in recently used devices
- Add translations for lightbox
- Switch ellipsis direction when expanding web hook event details.
- When editing a reviewable, show created\_by
- Add a description for scores
- Render wizard previews for high-DPI displays (#7371)
- Render wizard previews for high-DPI displays
- Responsive reviewables down to tablet width
- Tone down user card email color
- Switched composer draft saving to animations (#7356)
- Sets min date on calendar when initial date is set (#7361)
- Minor local-dates form improvements (#7360)
- Full revamp of local-dates form (#7357)
- Better organization of category settings
- Simplify merged reviewable table
- Unify admin intro styles for badges/customize, improve mobile
- Unify reviewable scores + history
- Mobile - fix editor button space, divider, extra upload icon
- Copy and formating improvements to local-dates form (#7343)
- Move up profile picture field next to the username
- Don’t show the username of the first user in the conversation
- Show the score status
- Moves local-dates from popupMenu to toolbar (#7335)
- Display signup cta even if ‘must\_approve\_users’ setting enabled.
- Only highlight close icon on hover, not lock
- Add “consecutive” to visit badge short descriptions
- Better close button positioning in alerts, some cleanup
- Show tags on flags too
- Update the reviewable count before the message bus
- Displays exact date on title attribute of topic timer info (#7326)
- Adjust layout, allow additional responsiveness
- Show user fields when reviewing a user
- Slightly improved reviewable user display, plus link to admin if possible
- Reduce specificity of reviewable item styles
- Remove extra border on old mobile post notices
- Improve posts layout for crawler (#7286)
- Add awaiting-approval class to login modal
- Get rid of preview\_for (#7314)
- Reviewable spacing adjustments
- Reviewables fixes
- Restructure queued posts to match flags, fix text
- Reviewable layout improvements
- Gives aria-label to topics count in category-row (#7307)
- Ensures only `<li>` are used as top level in breadcrumb (#7306)
- More compact local-dates preview (#7305)
- Wrap title on search log term page with a proper div.
- Pass period params when looking at search logs for a given term.
- Consistent profile image positioning on desktop and mobile
- Link directly to the post, not to the topic
- User-card adjustments for users with hidden profiles (#7293)
- Show which groups are missing permissions for parent category (#7252)
- Always use relative age for post notices.
- Better display for deleted users in the review queue
- Improve ignore button alignment on user profiles
- The text “Count” is clearer than “Reviewable Count”
- Minor profile page restructure
- Unified emoji escape regex
- Use a step size of 1.
- USe bar chart for admin search logs details page.
- Use the same default period for search logs index and term.
- Collapse advanced search on mobile when searching.
- Prevent mobile nav from collapsing while content loads
- Improves local-dates form (#7268)
- Prevent images and lightboxes from extending outside blockquotes (#7262)
- Hide link to incoming email when there is no bounce key
- Improve mobile search
- Show spinner during text replacement
- Inherit badge icon color
- Indent category badges to indicate sub-categories.
- Add more tag classes to topic view (#7228)
- Add padding to hidden content link
- Show if webhook is disabled (#7217)
- Enabled sorting for more columns in admin user list (#7208)
- Better emoji escaping for topic title (#7218)
- Use a less technical term (“replace”) for reseeding (#7223)
- Improve user profile header layout on mobile
- Hide mobile header notification badges if title is visible
- Set color to gray for old post notices.
- Order categories based on latest activity for all page styles (#7196)
- Better emoji escaping for topic title (#7176)
- Don’t reload page after saving settings when editing category.
- Show spinner when searching on full page search.
- Add tag classes to topics in topics list view (#7198)
- Enabled pinch to zoom for lightbox (#7161)
- Enabled pinch to zoom for lightbox
- Add instructions to update email when sso\_overrides\_email is enabled
- Update brand color, some login adjustments
- More height for when there are recently used
- Order categories based on recent activity when using categories\_and\_latest\_topics layout (#7166)
- Adhere to Facebook & Twitter brand guidelines for share icon colors
- Make name optional for confirmation user field (#7149)
- Focus on search box when emoji picker is opened (#7098)
- Added tooltips to topic admin menu (#7146)
- Added tooltips to topic admin menu
- Change `ignore` button color (#7150)
- Add a paragraph description on the tags tab of the category settings
- Style adjustments for post notice feature
- Better handling of width and overflow for login/signup
- Post-notice max width on desktop
- Fix post notice on mobile
- Various tweaks to search-menu (#7114)
- Poll style fix, button classes
- More consistent structure for active nav-pill
- Localize date format in “new user of the month” message
- Display error message if no time frame selected in topic status update
- Fix redeemed invite table layout
- Previous positioning was better for the image resizer
- Add slash to mobile category page totals
- Improve layout of invite table
- Limit onebox thumbnail image size in emails
- Make Uncategorized category less confusing
- Don’t concatenate title on “Edit Category” dialog
- Image preview resizer style
- Don’t link to theme source unless it’s http(s)
- Correct locale key for theme compatibility error
- Don’t add padding bottom for emojis in composer preview
- Use official Facebook logo
- More consistent table header styles, removing duplicate styles
- Don’t override unset flair color
- Puts back share-panel as floating pane on post actions (#7066)
- Apply new-user color to full name and username
- Better alignment of similar topics in composer
- Make composer resize work on touch devices (#7068)
- Make composer resize work on touch devices
- Improve moderator icon alignment
- Puts more emphasis on the shared url on share panel (#7055)
- Increase width of hamburger menu to 320px
- Better wrapping of group header elements
- Disabled lightbox expand button when loading image meta.
- Default user facing routes to `/g` instead of `/groups`. (#7042)
- Lightbox support for image uploader. (#7034)
- List popular themes and components in admin panel (#6997)
- More spacing between social links (#7036)
- Make “Category” in topic validation errors translatable
- Moderator post wasn’t completely translatable
- Allow users to see filename in image-uploader component. (#7022)
- Moves wizard’s “Finish” button to the left of back and next (#7027)
- Reduce subcategory badge spacing
- Make adding permissions more visible and intuitive to click. (#6999)
- Reduce font size on about pages
- Signup form labels were too constrained, minor cleanup
- Embedded post collapse button hover color fix
- Show envelope when tag is only used in PM
- Use regular envelope instead of solid envelope
- Alignment fix for names with emoji
- Hide branch/private repo options in admin theme import modal
- Modifications to admin/customize layout
- Rename color scheme to color palette in UI
- Truncate (don’t wrap) badges in user cards if the text is long
- Turn off autocomplete on composer title
- Disable browser’s autocomplete in search menu
- Moving the create theme buttons, adding buttons to theme index
- Use translatedLabel for aria-label in buttons.
- Reduces white-space in polls (#6956)
- Minor button icon color fixes
- Checkboxes were too close to other inputs
- Header icon color fix

## SECURITY CHANGES

- Add confirmation screen when logging in via user-api OTP
- Add confirmation screen when logging in via email link
- Bump Handlebars to version 4.1.2
- Lodash 4.17.11 (#7565)
- Updates lodash from 1.3.0 to 4.17.5 (#7546)
- Avoid use of send in favor of public\_send
- Fix tab nabbing.
- Jquery CVE-2019-11358
- Update nokogiri
- Update Handlebars to 4.1
- Remove XSS in composer preview when applying image scale buttons.
- Properly validate return URL for SSO
- Upgrading Rails version to 5.2.2.1
- Bypass long GET requests
- Do not leak private group names. (#7008)
- Escape HTML in dashboard report tables

## PERFORMANCE

- Use url instead of file key in temporary inventory table.
- Use already loaded post when quoting or opening draft.
- Fix N+A+lot query
- Optimize lookup of reviewable info in post stream
- Only check for totp record on current user at when needed
- Speed up topic poster lookups
- Bypass slow locale lookups in various cases
- Stop reindexing and skipping deleted posts
- Omit user profile and private message stats in web hook serializer.
- Fix N+1 queries for non-JS topic view.
- Prefer joins over `IN ()` queries.
- Ensure priority for rake rebake tasks is ultra low
- Move crawl\_topic\_links to the low queue
- Mark posts for rebake vs forcing a rebake inline when migrating to s3
- Remove “new posts” stat from summary email
- Improve performance of publish\_notifications\_state
- Reduces cpu/memory consumption of sk in some cases (#7525)
- Speed up spec suite, avoid featuring topics
- Remove SQL notifiers for every SQL execution
- Avoid looking up the same category twice in `TopicCreator`.
- Avoid checking for consecutive replies in test
- Skip post validation by default when fabricating posts (#7508)
- Skip compressing locales for faster rebuilds (#7501)
- Speed up migrate\_to\_s3 rake task by deleting optimized image record.
- Remove avg\_time calculations and regular jobs from posts and topics
- Add missing bounce\_key index to email\_logs
- Use cdn when serving site settings upload.
- Move `where` clause up to speed up CalculateAvgTime daily job (#7462)
- Call web hook events in a new thread (#7451)
- Destroy users in batches of 50 users
- Add index on user auth tokens (for user lookups)
- Allow looking up incoming email by user\_id
- Use delete\_all to remove notifications and topic\_users
- Speed up user deletion logic
- Speed up `Upload.migrate_to_new_scheme` by limiting remap scope.
- Use ‘delete\_all’ method instead of ‘destroy\_all’
- Very post upload’s existence by preloaded upload sha1s array
- Flush topic timings less frequently
- Avoid looking up the same group multiple times during bulk invite.
- Add `index_reply_id_on_post_replies`.
- Correct clean up inactive so it does not clog scheduler
- Add `index_for_rebake_old` to `posts`.
- Simplify query of `UserStat#update_topic_reply_count`.
- Do not create staged users for most rejected incoming emails (#7301)
- Add index for `post_search_data` and `topic_search_data`.
- Add index `id DESC, baked_version` ON `posts`.
- Use joins for `Post.for_mailing_list` instead of `NOT IN`.
- Speed up suggested unread
- Add index for (action\_type,created\_at)`on`user\_actions` table.
- Speed up home page unread+new query
- Keep track of when a users first unread is
- Delete search data of posts from trashed topics periodically. (#7302)
- Better use of index when queueing a topci for search reindex.
- Improve quality of `PostSearchData#raw_data`. (#7275)
- No need to select entire group just to find name
- No need to select the full theme just to get color scheme
- Add index to speed up scopes for `UserSecondFactor`.
- Add index to speed up `User#number_of_flagged_posts`.
- Reduce number of queries and size of payload when searching.
- Avoid loading ActiveRecord objects when checking for second factor.
- N+1 queries admin users pages.
- Remove final N+1 from theme admin page
- Reduce N+1s on theme admin page
- Include content-length header for CDN
- Do not include suggested topics when loading new posts
- Reduce hit to Redis server when keeping a site in reaonly mode.
- Restore `exists?` in favor of `blank?`.
- Only require aws-sdk-sns gem when it’s being used
- Cache build\_not\_found\_page
- Add text/javascript to NGINX gzip\_types

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [June 18, 2019, 1:42am UTC](https://meta.discourse.org/t/discourse-version-2-3/96690/5 "2019-06-18T01:42:46Z")

</div>


