3.3.0.beta2: New admin sidebar, Redesigned bookmark menu, Chat from user profile, and more

New features in 3.3.0.beta2

Powered by Discourse

Self-hosted sites will now have a “Powered by Discourse” badge at the bottom to promote the open-source Discourse ecosystem. Learn more.

CleanShot 2024-05-14 at 16.55.10

New admin sidebar

Experience the new admin sidebar! All aspects of the admin panel are now grouped and categorized for ease of accessibility. All new sites have the admin sidebar enabled by default. If you don’t see it yet, enable it via the admin sidebar enabled groups setting.

CleanShot 2024-05-14 at 13.56.26

Redesigned bookmark menu

The new bookmark menu allows quick options for you to set reminders alongside custom options. You can also edit or delete these reminders. Available in topic footer buttons.

CleanShot 2024-05-13 at 18.34.41

Chat from user profile

You can now directly message users from their user profiles by clicking on chat

Cleaner keyboard shortcuts

The keyboard shortcuts screen gets a refresh and now includes a separation between sections making them easier to scan and find your shortcut.

More options on modals for mobile

Modals now pop-up by sliding up and you can swipe down to close modals. There are now more action options on the left and right side of the titles.

20 Likes

Even more!

But wait, there’s more! We do our best to highlight new features and changes for you, but there’s always too many changes to detail. For a full list of new features, bug fixes, UX improvements, and more, be sure to review the Additional Features and Fixes listed below.

Plugin improvements

discourse-activity-pub

New Features

  • Add tag actors (84)
  • Add bulk publish and process (take 2) (80)
  • Add bulk publish and process (72)

Bug Fixes

  • Don’t create a new topic if it’s an orphaned reply (94)

discourse-adplugin

New Features

  • Add group and category restrictions to house ads (205)

discourse-ai

New Features

  • GPT4o support and better auditing (618)
  • Configurable LLMs. (606)
  • Llama 3 tokenizer (615)
  • Search command now support searching in context of user (610)
  • Allow @mentioning an ai bot in a channel (602)
  • Support Chat with AI Persona via a DM (488)
  • Insert footnote from explained result (591)
  • Add Question Consolidator for robust Upload support in Personas (596)
  • Stable diffusion 3 support (582)
  • Gemini 1.5 pro support and Claude Opus bedrock support (580)
  • Enhance AI debugging capabilities and improve interface adjustments (577)
  • Add basic connection check to DNS SRV resources (563)
  • Allow tuning of RAG generation (565)
  • Add Cohere models to AI helper and automation (576)
  • Mixtral/Mistral/Haiku Automation Support (571)
  • GPT-4 turbo vision support (575)
  • Cohere Command R support (558)
  • Add BGE-M3 embeddings support (569)
  • Remove gpt-4-turbo-0125 preview swap with gpt-4-turbo (568)
  • Add metadata support for RAG (553)
  • Add Claude 3 Haiku bot support (552)
  • AI Bot RAG support. (537)
  • Web browsing tool (548)
  • Add vision support to AI personas (Claude 3) (546)
  • Improve admin plugin UI and use new plugins show route (512)
  • Friendlier reply behavior in bot PMs (535)
  • Add Claude 3 sonnet/haiku support for Amazon Bedrock (534)
  • Allow suppression of notifications from report generation (533)

Bug Fixes

  • Respect “external_links_in_new_tab” user preference… (622)
  • Incorrect description for LLM field (623)
  • Load categories from search response (612)
  • Invalid header button title (621)
  • Dialects var was not defined in prod (617)
  • Load categories for AI search results (614)
  • Improve function call parsing (613)
  • Uses getByIdentifier of d-menu (611)
  • Streaming broken in bedrock when chunks are not aligned (609)
  • Context repairs for @mentioned bot (608)
  • Uploader not removing app event (601)
  • Call after tool calls failing on OpenAI / Gemini (599)
  • Properly cache user locale (593)
  • RAG uploader must support multi-file indexing. (592)
  • Many missing topics when categories excluded (585)
  • Users with empty locales would error out during prompt localization (584)
  • When excluding categories also exclude children (583)
  • More robust function call support (581)
  • Blank metadata leading to errors (578)
  • Load categories for related topics (570)
  • Tools broke on Claude with no params (574)
  • Throwing away first file in diff (573)
  • Never mention the word JSON in tool preamble (572)
  • Secure/unsecure uploads when sharing AI conversations (554)
  • Ask AI highlight fixes (562)
  • Fetch categories data using specific endpoint (543)
  • Revert length issue (556)
  • Avoid error when attempting to show ai helper to anon (549)
  • Avoid replying to the reply user for llm_triage automation (544)
  • Unify automation model translation (540)
  • Prompt engineering for summary prompt (539)
  • Mention suppression was not working right (538)

UX Changes

  • Remove multi llm selector from header and move to composer (619)
  • Prevent social share content from overflowing container (597)
  • Adjust AI share styles for images and quotes (567)
  • Update suggestion radii to accommodate for new default (564)
  • Display the indexing progress for RAG uploads (557)
  • Update Ask AI highlight styling (560)
  • Highlight AI post helper selection (520)
  • Add general onebox styles (550)

discourse-akismet

Bug Fixes

  • Update 3.2 pin to include #133 (134)
  • Explicitly check for defined site setting (133)
  • Update 3.2 stable pin (132)
  • Post Voting plugin dependency in Akismet plugin (130)
  • Display context question for Akismet flagged users (131)

discourse-assign

New Features

  • Add pending assign reminder threshold setting (571)
  • Make it possible to reassign posts on the topic level assign modal (562)
  • Add buttons for unassigning from posts to the topic level assign menu (554)

Bug Fixes

  • Respect pending_assign_reminder_threshold in enqueue_reminders (572)
  • Adaptes acceptance tests for new dropdown-menu (570)
  • Uses the new <DropdownMenu /> component (569)
  • Ensures ctrl+enter from textarea saves (566)
  • Unassign label sometimes touches avatar (561)
  • Correctly refresh UI when changing group preference (560)
  • Unassign buttons on the activity/assigned page don’t work (559)
  • Assignments limit shouldn’t prevent from reassigning a post (556)
  • Recreate notifications on topic reopening

UX Changes

  • Autofocus assignee input (555)

discourse-calendar

New Features

  • Closed events (564)

Bug Fixes

  • Show events calendar on category page irrespective of query params (565)
  • Support endless events in topic list (562)

UX Changes

  • Use json_schema setting color format (556)
  • Use past event class name on the category calendar (552)

discourse-category-experts

Bug Fixes

  • Endorsement reviewable text & endorsement checkboxes (144)

discourse-data-explorer

New Features

  • Add ability to skip sending the PM if there are no results (286)

Bug Fixes

  • Send single report PM to groups (284)

discourse-docs

Bug Fixes

  • Load complete category objects (167)

discourse-encrypt

Bug Fixes

  • Remove unsafe-eval from safe_csp_src? check (315)

UX Changes

  • Show a :no_entry_sign: on checklist items (314)

discourse-gamification

Bug Fixes

  • Username not shown in minimal-leaderboard if prioritize_username_in_ux is false (127)

discourse-global-filter

Bug Fixes

  • Fixes URL for sub-categories in the categories page (143)
  • Allow selecting of new tag in topic list (138)

discourse-google-one-tap

UX Changes

  • Remove the invisible div and fix the mobile alignment. (17)

discourse-group-category-banner-ads

New Features

  • Build admin panel and display ads on categories (1)

Bug Fixes

  • Add anon and everyone group support (2)

discourse-group-tracker

New Features

  • Priority Groups for group tracked posts (54)

discourse-livestream

New Features

  • Add chat mobile view (8)

Bug Fixes

  • Spelling mistake in spec (14)
  • Get tests passing (13)
  • Bad sidebar state (12)
  • Ensure video is shown on mobile (10)
  • Replace runloops next for a timer to allow chat initialization (4)
  • Apply header changes after updating chat channel (3)
  • Remove unused files from plugin.rb (2)
  • Remove unused jobs and setting check on plugin’s reloadable patch (1)

discourse-oauth2-basic

Bug Fixes

  • Appropriately assign values when fetching user details (100)

discourse-policy

Bug Fixes

  • Correctly update the group selector when editing a policy (122)

discourse-post-voting

Bug Fixes

  • Set topic subtype when embedding topics (198)

discourse-reactions

Bug Fixes

  • Ensures activity/reactions doesnt show deleted (288)

Security Changes

  • Hide whisper posts in reactions given endpoint (286)

discourse-saml

New Features

  • Add to staff group when user become admin via sync (94)

discourse-shared-edits

Bug Fixes

  • Restore get() (90)

discourse-solved

New Features

  • Change status on unsolve & fix assign changes (289)
  • Prevents assign notification & change status on solved (285)
  • Add new custom status filters (286)

Bug Fixes

  • Allow searching for unsolved posts with tags (284)

UX Changes

  • Clarify that admins and mods can accept solutions (288)
  • Add admins and moderators to mandatory_values for accept_all_solutions_allowed_groups (290)

discourse-subscriptions

New Features

  • Add new stripe based pricing table (202)
  • Add ZAR currency support (199)

Bug Fixes

  • One-time purchase pending invoice item (210)
  • Login required for Stripe Checkout (209)
  • Prevent duplicate stripe subscription list requests (208)
  • Auto-Create Support Campaign button (206)
  • Update cc save button missing (204)
  • Allow active status for updated webhook (203)
  • Translation missing for Norway (196)

discourse-topic-voting

Bug Fixes

  • Merge votes regardless of voters’ visibility (187)

discourse-translator

Bug Fixes

  • Avoid publishing post if there is no change (140)
  • Skip translations for empty or small actions posts (139)
  • Amazon text size is 10k bytes (137)

discourse-zoom

Bug Fixes

  • Webinar issues related to strict-dynamic CSP implementation (74)

docker_manager

UX Changes

  • Use sentence case and add Discourse to the page title and nav item (211)
  • Rename the word “Upgrade” to “Update” in the UI (208)

All Features and Fixes

New Features

  • Add HTML replacements
  • Force admin sidebar for all admins in admin_sidebar_enabled_groups and handle legacy “hamburger dropdown” in this mode (26899)
  • Remove “Enable Sidebar” step from setup wizard (26926)
  • Revert redirect from wizard to guide (26873)
  • Additional links for moderator’s sidebar (26815)
  • Allow watched words to be created as a group (26632)
  • Encourage users to set chat thread titles (26617)
  • New admin sidebar for moderators (26795)
  • Add experimental tracking of ‘real browser’ pageviews (26647)
  • Implements last read message for threads (26702)
  • Include themes and components keywords to the admin sidebar (26708)
  • Rate limit common AI bots crawlers by default (26731)
  • After wizard admin is redirected to the guide page (26696)
  • Allow users to sign in using LinkedIn OpenID Connect (26281)
  • Add swipe up to close toast notification (26659)
  • Show additional filter links in admin sidebar for no results (26672)
  • Allow dismissing tooltips by clicking their button (26668)
  • Use new bookmark menu in topic footer buttons (26670)
  • Make admin sidebar keywords translateable (26657)
  • Mandatory fields for group site setting (26612)
  • Direct link to components for admin sidebar (26644)
  • Add ‘New users only’ option to user_updated trigger (26648)
  • Merge user associated accounts, favouring the target user upon conflict (26645)
  • Bulk topic tagging allowing restricted operations on sole categories (26602)
  • User Notifications Links Page (26609)
  • Add new plugin outlet ‘after-header’ (26587)
  • Consolidate link notifications (26567)
  • Add ‘Create topic’ automation script (26552)
  • Confirmation when a public section is updated (26546)
  • Add thread support to the chat message mover (26147)
  • Enable new admin sidebar by default (26391)
  • Add message to bulk close topics (26535)
  • Hide summarization in PMs (26532)
  • Add progress bar to toast notifications (26483)
  • Redesigned bookmark modal and menu (23071)
  • Merge discourse-automation (26432)
  • Add args to home-logo plugin outlet (26486)
  • Ignore manually deactivated users when purging (26478)
  • Clear sidebar admin filter with ESC (26408)
  • The ability to expand/collapse all admin sections (26358)
  • Allow re-scoping chat user search via a plugin (26361)
  • Add page number to page titles for crawlers (26367)
  • Simplify crawler content for non-canonical post URLs (26324)
  • More flexible admin plugin config nav definition (26254)
  • Increase default DiscourseConnect session length (26261)
  • Buttons to add and remove objects for schema theme settings (26256)
  • Separate admin page for whats new and reports (26216)
  • Redesign keyboard shortcut modal (26236)
  • Add language picker for theme translations in admin UI (26150)
  • Add chat direct message button to user profile (26135)
  • Allow site settings to be edited throughout admin UI (26154)

Bug Fixes

  • Sidebar mode switching on subfolder (27026)
  • Deep linking to a message in a thread
  • Create directory items for new users when in bootstrap mode (27020)
  • Avoid error from missing meta tags (26927)
  • Incorrect user menu title/alt (27019)
  • Sorting user topics lists
  • Show selected topic with above-topic-list-item (26928)
  • Restore docked body document from glimmer site header (27003)
  • Remove duplicate user menu for old header implementation (27002)
  • Do not auto close on empty identifiers (27001)
  • Change request method for categories/search (26976)
  • Set selected duration to relative time picker component (26997)
  • Bold sidebar header when admin sidebar is disabled (26993)
  • Add missing translations for staff action logs. (26969)
  • Restore behaviour of adding docked classname to document body during header updates (26967)
  • Preveint recurring automations from running before start_date (26963)
  • Disables the modal on mobile bookmark-menu (26958)
  • Allows to disable body scroll lock on swipe modifier (26957)
  • Close d-menu before action in topic menu (26956)
  • Open Powered-by link in new tab (26953)
  • Update duration & interval when input values updated. (26796)
  • Use MaxMind supplied permalinks to download MaxMind databases (26847)
  • Attempt to onebox even if response body exceeds max_download_kb (26929)
  • Track User.status property (26941)
  • Ensure RequestTracker handles bubbled exceptions correctly (26940)
  • Ensures chat notifications links work with subfolder (26938)
  • Inject current user service in category model (26937)
  • Incorrect divider in topic admin menu (26934)
  • Prevents flakey due to usernames with quotes (26907)
  • Improvements to chat message streaming (26892)
  • Allows bots to create/update/stream messages (26900)
  • Ignore SVGs when regenerating missing optimized images.
  • Uses the correct link for the General category (26891)
  • Only show discourse-ai CTA to admins (26895)
  • Preload all ancestors of sidebar categories (26715)
  • Ensure no infinite category loop
  • An existing member of a channel is allowed to join (26884)
  • Correctly pass topic/posts context (26882)
  • Send activity summaries based on “last seen”
  • Make getCategoryIdByName theme migration helper case insensitive (26878)
  • Missing route for edit components (26874)
  • Serialization of staff_writes_only (26866)
  • Nested polls
  • Restore legacy popup menu SCSS (26864)
  • Adds support for location and details in ICS calendar (26862)
  • Select posts menu styles (26857)
  • Do not show bookmark button label in PM topic footer (26858)
  • Handle tags with underscores correctly (26839)
  • Order categories in SQL for Categories#search (26810)
  • Add excerpt fallback for chat message replies (26834)
  • Prevent race condition in recurring automations (26828)
  • Prevents long URL to overflow thread title (26827)
  • Watched Words (+ Groups) with missing action (26826)
  • Do not show empty list in the topic admin menu (26825)
  • Creating watched words…
  • Prevent infinite loop of automations triggering each other (26814)
  • Do not show topic admin menu button to regular users (26820)
  • Prevent duplicate attachments in incoming emails - take 2
  • Do not show hidden posts in search results (26800)
  • Correctly check the user id of the original message (26805)
  • Correctly enable/disable body scroll on modal (26784)
  • Correctly rename scroller everywhere (26783)
  • Better tracking of topic visibility changes (26709)
  • Ensures last read is updated on new message (26772)
  • Ensures we don’t exit without pending automations (26771)
  • Do not increment reply count manually (26769)
  • Relative picker was being reset on change (26766)
  • Build chat message excerpt for thread preview (26765)
  • Include HTML content for authenticated users with crawler UA (26757)
  • Selecting categories for new admin webhooks (26746)
  • Fetch categories for “+subcategories” option (26622)
  • Pass values of objects typed settings to theme migrations (26751)
  • Move user reindexing into a job (26753)
  • themes:update rake task not rolling back transaction on error (26750)
  • Allow deleting avatars from the selectable avatars setting (26720)
  • Ensures we close modal on reaction (26745)
  • Prevents error due to property override (26741)
  • Improve handling of ‘PublicExceptions’ when bootstrap_error_pages enabled (26700)
  • 404 when visiting theme setting objects editor for theme component (26733)
  • Use serialized subcategories in subcategory-with-featured-topics (26718)
  • Automatic code highlighting not applied in fullscreen modal (26710)
  • Messages are already reversed (26692)
  • Ensures last read is updated on exit (26691)
  • In EmailSettingsValidator, unset smtp authentication when there’s no user and password
  • Locale mismatch at theme translations picker (26687)
  • Serialize categories for group posts (26663)
  • Resets pending automations only if necessary (26685)
  • Correct arguments for “show top replies” in topic map (26681)
  • Disable storing invalid post and topic timing when sent from client (26683)
  • Correctly re-attach allowed images in activity summary e-mail (26642)
  • Don’t purge users who were deactivated by the system (26656)
  • Don’t put non-category in Site.categories (26664)
  • Serialize categories for bookmarks (26606)
  • Use ILIKE for searching categories (26619)
  • Correctly unshrink composer when re-editing post (26650)
  • Prevents open to happen too early (26649)
  • Prevents showing discard modal on re-edit (26639)
  • Post uploads setting access_control_post_id unnecessarily (26627)
  • Wait for bookmark save before allowing menu button click (26626)
  • Deleting a groups was throwing an error (26623)
  • Ensure invalid timezone does not block critical emails (26607)
  • Update category breadcrumbs more reliably (26608)
  • Broken timeline back button title (26604)
  • Ensures reply is unlocking body scroll (26616)
  • Only allows kbd and not details
  • Load categories with user activity and drafts (26553)
  • Morph after all the “decorateCookedElement”
  • Add the ident to fix user status styling in posts (26585)
  • Nested list checkboxes css (26581)
  • Let users reset their homepage choice if custom homepage is from… (26536)
  • Bookmark clock icon not showing (26572)
  • Do not autofocus input on edit in mobile (26554)
  • Load categories with post revisions (26496)
  • Prevents mobile DMenu modal to lock scroll (26550)
  • Ensure `[date-range don’t clashes with checklist
  • Checklist weren’t working if there was an image URL
  • Do not show edit sections button on admin sidebar (26547)
  • DiscourseIpInfo.mmdb_download incorrectly joining URLs (26545)
  • Update topic property access in raw topic-status view (26528)
  • Load category info for about page (26519)
  • Keep details open in preview (26518)
  • Log search result clicks in header search menu (26500)
  • Load category before opening composer (26493)
  • Input fields not displaying when adding a object to empty setting (26509)
  • Add home-logo outlet args to non glimmer version (26495)
  • Ensure Theme#settings are instances of ThemeSettings (26481)
  • Don’t allow access to plugin page if plugin is not visible (26431)
  • Restore author on non-first-post crawler views (26459)
  • Body scroll lock textarea (26462)
  • Allows modals to disable swipe to close (26460)
  • maxmind:refresh does not respect refresh_maxmind_db_during_precompile_days (26457)
  • Ensure “save” is translatable in bookmark modal (26446)
  • Print view wasn’t working (26433)
  • Messages list shouldn’t scroll on new message (26438)
  • Only show edit history when navigating via edit notification for posts which have revisions and can have its edit history viewed (26418)
  • Error not being raised for required typed categories property (26443)
  • Use getter for showPoweredBy (26419)
  • Hide footgun max_notifications_per_user site setting (26414)
  • Don’t set smtp authentication type when there’s no user or password
  • Tweaks of select-kit on mobile (26401)
  • Prevents body scroll to hide sticky elements (26400)
  • Export false on confirm user fields when using user invites (26332)
  • Descriptions not showing for some site setting types (26399)
  • Skip tags-related validations when the skip_validations option is present (26379)
  • Allow direct message when max dm users set to 1 (26392)
  • Add content-type header to rate limiter error
  • Calendar options part 2 (26371)
  • Correctly pass down calendar options (26370)
  • Allow redirect when downloading maxmind database (26333)
  • Attempts to update select-kit on keyboard (26345)
  • Fix broken translation in tags input field objects setting editor (26340)
  • Set has_children correctly in Category.preload_user_fields! (26327)
  • Remove broken narrative-bot search context logic (26319)
  • Validate tags using Tag#name instead of Tag#id in ThemeSettingsObjectValidator (26314)
  • Anon users could not edit their own posts (26283)
  • Two elements should not have the same ID (26305)
  • Load subcategories through CategoryList (26297)
  • Serialize parent categories first (26294)
  • Keyboard shortcuts closing table builder modal (26278)
  • Ensure sitemaps include all topics with no duplicates (26289)
  • Correctly render 403 errors to crawlers using basic-html (26287)
  • Error encountered when adding child object in object setting editor (26259)
  • Simplify sidebar custom link implementation (26201)
  • Do not use return in block (26260)
  • Hide chat btn from user card when chat disabled (26237)
  • Add missing chat message illegal flag text (26255)
  • Remove “fake” mentions from extract_mentions (26253)
  • Missing IST KST and JST timezones in cooked posts (26252)
  • Do not lose admin sidebar when opening chat drawer (26235)
  • “Flash” when loading search results (26249)
  • Ensure custom composer button ‘condition’ is run correctly (26245)
  • Wait for the end of search requests (26240)
  • Regressed scroll-lock after mobile menu close (26232)
  • Refreshes post toolbar on topic scroll (26228)
  • Prevent content layout shift on mobile (26238)
  • Show max tag error and prevent search (26233)
  • Ensure dnd icon is updated immediately in glimmer header (26221)
  • Amend broken Mailgun API key check (26206)

UX Changes

  • Use a different JIT message when there are no search results in the users directory (27009)
  • Add missing class for oneboxing youtube video (27005)
  • Use display_name for summary algorithm to display a custom LLM’s name (27006)
  • Topic admin button should match height of siblings (26973)
  • Use breakpoint CSS variable instead of arbitrary 570px (26945)
  • Expand threads list tap area on mobile (26818)
  • Enable_powered_by_discourse site setting default is true (26774)
  • Add CSS for admin plugin empty list CTA (26949)
  • Link to /latest in welcome topic template (26944)
  • Merge the redesign experiment for embedded replies (26876)
  • Use quaternary colour for keyboard navigation (26911)
  • Hide user count in original message link (26890)
  • Update getting started guide (26889)
  • Increase custom user field description character limit (26863)
  • Admin sidebar headings are bold (26801)
  • Fix report color duplication (26799)
  • Loading spinner when clicking an item
  • Minor tweaks to user notifications dropdown (26754)
  • Changes normal level icon for user-notifications (26740)
  • Bookmark button in topic footer should have btn-default class (26717)
  • Fix styling for focused row (26698)
  • Dynamic spacing for summarization buttons (26690)
  • Keep input headings consistently bold (26510)
  • Update to variable text color for variable background (26676)
  • When reopening collapsed composer, reset height (26661)
  • Emoji aligment fixes, followup to #26491 (26618)
  • Prevent toasts from covering header (26615)
  • Improve the identifier for categories typed prop in theme objects editor (26600)
  • Make first admin a moderator to review user approvals. (26588)
  • Display JIT when user list is empty (26579)
  • Fix user menu ellipsis color (26578)
  • Tweak the checklist plugin css (26577)
  • Fix alignment issues around user status (26491)
  • New default border radius (26560)
  • No pointer cursor on “read-only” checklist
  • Shows the bookmark menu improvements
  • Chat >` deleted msg styling (26538)
  • Tweak the mention padding (26492)
  • Better copy for reminder set (26534)
  • Allow a default value to be specified for enum properties (26529)
  • Stop avatar flicker when opening user menu on Safari (26511)
  • Improvements to user tips (26480)
  • Adjustments for experimental bulk select menu (26474)
  • Changes defer copy to mark unread (26468)
  • Rename the word “Upgrade” to “Update” in the UI. (26396)
  • Tweaks enable defer setting copy (26465)
  • Improve validation error message when saving theme objects setting (26455)
  • Fix required validation error shown for not required properties (26453)
  • Switch to new object when adding object in theme objects setting editor (26454)
  • Fix overflow of long site text site names in the header (26450)
  • Minor style adjustments for schema objects editor (26444)
  • Highlight code in em and strong blocks (26435)
  • Minor theme schema editor adjustments for mobile (26434)
  • Wrap small-user-list-content for many users case (26422)
  • Add collabsible headings to theme objects editor, adjust styles (26383)
  • Fix position of characters count on objects setting input field (26357)
  • Add threads fab icon (26349)
  • Update twitter blue to X black (26343)
  • Convert mention style to inline (26317)
  • Better modal backdrop opacity fading (26328)
  • Include message when crawler content is omitted (26325)
  • Improves modal on mobile (26055)
  • Add title attribute to composer preview image controls (26301)
  • Ensure all header buttons are consistently sized (26318)
  • Improve category selector in theme objects editor (26311)
  • Improve layout of theme objects setting editor (26309)
  • Move “All Site Settings” link to top of admin sidebar (26313)
  • Improve group selector in theme objects editor (26312)
  • Hide “powered by” from account activation page (26298)
  • Hide sidebar toggle on account created route (26299)
  • Add chevron icons for expanding and collapsing all toggles in the admin sidebar (26246)
  • Adjust objects editor styles for full page layout (26265)
  • Make input sizing consistent across all browsers (26159)
  • Chat >` fix lock icon in original message link (26227)
  • Do not close post text selection on scroll (26217)
  • First pass styling experimental objects typed setting editor (26194)
  • Update twitter icon, add threads & mastodon (26203)

Performance

  • Optimise query for excluding topics in certain categories in TopicsFilter (27027)
  • Bail out of expensive post validations
  • Improve production JS build in low-memory environments (26849)
  • Reduce overhead from chat message excerpt (26712)
  • Introduce a basic api key serializer
  • Improve performance of most_replied_to_users (26373)
  • Replace posts reply_to_post_number index (26385)
  • Only allow one reviewable notification at a time (26330)
  • Fix N+1 when loading categories with custom fields (26241)
  • Remove unnecessary <link rel="preload"> for theme javascript (26220)
  • Avoid publishing user actions to the user who did the action (26225)
  • Fix N+1 when searching categories (26223)
  • Remove unnecessary <link rel="preload"> (26219)
  • Defer loading channels (26155)

Accessibility

  • Fix topic admin menu button colors for WCAG colors (27007)
  • Improve markup of 404 page search form (26322)
  • Add button role to the reply-to-tab anchor on desktop (26321)
  • Topic map aria-controls needs an ID (26308)
14 Likes