hugh
(Hugh Lashbrooke)
April 29, 2025, 4:43am
1
New features in 3.5.0.beta3
A comprehensive admin search
It is now possible to search the entire Discourse admin from a single interface - this includes pages, settings, themes, components, and reports. To bring up the search box, click the new ‘Search’ link near the top of the admin sidebar. You can also access it from anywhere in the admin interface with the shortcut Ctrl +/ or Cmd +/ . This interface makes it much easier to find exactly what you’re looking, no matter what it is. Learn more and provide feedback here .
Personalize your community with category icons
Categories can now be personalized with icons to reflect the personality of your community. You can select emoji or regular Discourse icons that use the category’s existing colour. This is a great way to make your site feel more unique and your categories more refelctive of the content they include. Find out more here .
Easier configuration management with bulk saving
Gone are the days where you have to save each setting one-by-one. Now, as you edit settings in your Discourse admin, a banner shows up at the bottom indicating how many settings you have modified, allowing you to save them all with a single click. The banner remains in place as you filter settings on the page, and you will receive a warning if you navigate away from a page with unsaved settings. You can use this right now in your Discourse admin.
More robust site search
When searching for content on any Discourse site, you now have more control over the sources of content that show up in search results. You can now specifically target posts written by humans or bots, as well as whispers and regular posts (details on GitHub ). You can test this out on your site today.
Better font selection
Selecting your community’s fonts is now easier than ever. The new font selection panel includes visual previews of the available fonts, as well as text size. This is part of the ongoing improvements to the branding and site appearance configuration experience. Check out the changes in the “Logo and fonts” page in your Discourse admin.
Security Updates
This release includes fixes for these security issues reported by our community and HackerOne .
9 Likes
tgxworld
(Alan Tan)
April 29, 2025, 4:43am
3
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
Bug Fixes
Prevent ActorHandler from attempting to apply updates to categories or tags (208 )
Only update actors to available if they are unavailable (204 )
Delivery tracker thread lock (203 )
About page fixes (201 )
UX Changes
Improve Add Actor in ActivityPub Admin (209 )
discourse-ai
New Features
Allow for persona & llm selection in bot conversations page (1276 )
Display more places where AI is used / Chat streamer (1278 )
Bot Conversation Homepage (1273 )
Experimental Private Message Bot Homepage (#1159 )" (1272 )
Experimental Private Message Bot Homepage (1159 )
Add spending metrics to AI usage (1268 )
Enhance LLM context window settings (1271 )
Update model names and specs (1262 )
Add streaming to composer helper (1256 )
Improve context management (1260 )
Make Mixtral tokenizer available for embeddings (1258 )
Configure persona backed features in admin panel (1245 )
Allow tools to amend personas (1250 )
Allow to send LLM reports to groups (1246 )
Personas powered summaries. (1232 )
Continue conversation from Discobot discovery (1234 )
Flexible image handling within messages (1214 )
Bug Fixes
Eat all leading spaces llms provide when they stream them (1280 )
Guard against situations where there is no reply, pass thread id (1279 )
Tables should group only per their key on usage page (1277 )
Do not re-render conversations sidebar on navigation (1274 )
Omit thinking tokens from chat (1264 )
Invalid context construction for responders (1257 )
Discovery shouldn’t re-trigger when no search (1255 )
Split topic suggester fixes (1253 )
Search discovery quirks (1249 )
Restore gists previous group access behavior. (1247 )
Less generic animation names (1243 )
Maintain newest uploads correctly when constructing context (1242 )
Return false if no current user personas (1241 )
Persona setting should compare integer value (1239 )
Search discoveries improvements (1228 )
Forced tools wasn’t set correctly when tool has no options. (1231 )
Attempt to fix flaky (1226 )
Ensure category badging present in sentiment reports (1222 )
Persona editor keeps dirty data after persisting a single field (1219 )
Post helper menu results should be selectable (1221 )
Do not error when tools are empty (1218 )
UX Changes
Keep composer actions above AI input icons (1291 )
Only scroll when we surpass max input height (1288 )
Minor alignment adjustments for experiemental bot UI (1285 )
Bring back New Conversation button on mobile sidebar (1283 )
Align styling with conventions (1275 )
Improve groups list in feature table when many groups (1254 )
Adjust artificat UI styles (1240 )
Wider search pane, border, smaller font size (1238 )
Show AI bot toggles in the AI bot options section (1229 )
discourse-akismet
Bug Fixes
Send email to user and not admin about deletion (168 )
discourse-calendar
New Features
Adds support for event preview in rich editor (708 )
Bug Fixes
Remove double quotes "
character when building the event’s mar… (716 )
discourse-category-experts
Bug Fixes
Update custom fields when post ownership changes (197 )
discourse-data-explorer
New Features
Add option to send individual report PM to group members (369 )
Bug Fixes
Allow query to be explained (371 )
discourse-follow
New Features
Add following feed to /filter
(148 )
Bug Fixes
Regression when saving user preferences (149 )
discourse-gamification
Bug Fixes
Disable solutions scorable when the solved plugin is disabled (199 )
Update scoring based on table (198 )
discourse-just-chat
UX Changes
discourse-login-client
New Features
Bug Fixes
Use “nickname” instead of “username” in oauth payload (7 )
discourse-open-graph
New Features
Add Open Graph override to Discourse via plugin (1 )
Bug Fixes
Ensure that the URL is not overridden by the plugin (2 )
discourse-prometheus
New Features
Update hist buckets for http_requests_queue_duration_seconds
(147 )
Introduce http_requests_
_duration_seconds
metrics (142 )
Add sidekiq_queue_latency_seconds
metric (139 )
Add success
label to (sidekiq|scheduled)_job_count
(137 )
Add process_cpu_seconds_total
metric (138 )
Bug Fixes
Broken scheduled_job_ran
metric (140 )
Performance
Drop custom labels from http queue duration metrics (146 )
discourse-ratings
Bug Fixes
Remove handlebars dependency (24 )
discourse-reactions
UX Changes
Have discourse reaction extend to 100% height to align correctly on post actions (359 )
discourse-signatures
Bug Fixes
Preferences controller override following core change (85 )
discourse-solved
Bug Fixes
Solutions directory item was using post creation instead of solved creation (361 )
Accepting another answer does not commit (360 )
500 due to absent module (359 )
Exclude deleted topics and posts as solution in user summary (358 )
Standardise the definition of what a solution is (352 )
Some solved topics have no answers (350 )
Multiple topics may have the same post as its solution (348 )
UX Changes
Fix misalignment for non-admin and anon + move to variable use (349 )
discourse-solved-reminders-plugin
Bug Fixes
Fix min value for setting remind_mark_solution_after_days (24 )
Revert 1 day to 14 days (23 )
Preferences controller override following core change (21 )
Optimise and update queries, shorter frequency (20 )
discourse-subscriptions
Bug Fixes
Campaign banner size when sidebar is active (274 )
UX Changes
Campaign banner layout improvements (273 )
discourse-templates
Bug Fixes
Bug when private template allowed group is everyone (103 )
Show the modal if the composer has the preview hidden (101 )
discourse-theme-creator
Bug Fixes
Remove override prepend (109 )
Remove broken extra-locales-controller extension (108 )
discourse-translator
New Features
Translate categories with selected provider (282 )
Show an indicator for posts not originally written in the user’s language (274 )
Bug Fixes
Ensure untranslated post ids exclude those already translated to target locale (285 )
Update localisation instead of category (283 )
Include some of the post content when detecting the title language (277 )
Show toggle button even when original content is displayed (275 )
Do not translate new posts if show=original (271 )
Skip locale region for Google Translate API (263 )
UX Changes
Fix scaling of translator button in topic-progress bar (270 )
Show extra details in failure popup when translation fails (262 )
discourse-video
Bug Fixes
Max video duration based on trust level (80 )
Composer placeholder previews (79 )
Post can be undefined (78 )
Post can be undefined (77 )
All Features and Fixes
New Features
Show localized categories route (32464 )
Set category localizations in category settings (32412 )
Show translated category names from localizations table if they exist for the user locale (32380 )
Implement tag group selection in dropdown and multi-select for topic creation and preview when using Form Templates (32108 )
Allow edit custom flags (32344 )
Release admin search for all sites (32327 )
Implement Form Template Preview (32111 )
Add footnote (plugin) rich editor extension (31719 )
Ctrl+M to toggle between rich/markdown editor (32266 )
Add override for crawler title and description tags (32259 )
Allow searching for whispers and bots (32252 )
Introduce new components listing page (32164 )
Prosemirror-codemark for a fake boundary cursor on rich editor (32165 )
Auto-link/unlink url-like words on rich editor when typing (32163 )
Fonts section for branding page (32031 )
Dynamic size for hot topic IDs cache (32175 )
Prioritize the user who is getting the reply in the autocomplete (32086 )
One-click chat reaction settings (32150 )
Highlight watched words found in reviewables. (32167 )
Copy thread messages when copying thread OP (32139 )
When rich-editor is enabled use Jetbrains Mono as code font (32122 )
When rich editor is enabled markdown is in monospace (32097 )
Bulk save site settings (32013 )
Auto contrast text color for categories (32015 )
Implement chat transcripts in rich editor (31819 )
Allow rejected user details to be scrubbed (31987 )
Add icons and emojis to category (31795 )
Bug Fixes
Allow tags to be restricted to admin only (32493 )
Production asset compilation following c62a4a47 (32491 )
Remove sidebar filter (32485 )
Also cater for fixed category positions when localizing categories (32486 )
Ensure site banner hides when user clicks on close button (32444 )
Don’t null out category attributes if no param keys (32483 )
Also show localized categories for users who are not logged in (32465 )
Rich editor link backspace edge case (32476 )
Also show localized categories for users who are not logged in (32460 )
Add category title badges to boxed layout (32395 )
Correctly reset panel when resizing window (32437 )
Delegate silenced_till from anonymous user to main user account (32416 )
Allow to email backup even if backups disabled (32415 )
Hide unnecessary tabs and buttons when backups disabled (32396 )
Recalculate respects default invitee trust level (32393 )
Error when trying to un-favorite badge (32369 )
Remove z-index from user-status in header (32382 )
Enable drafts dropdown on private categories (32370 )
Pasting img on rich editor could be double-processed (32356 )
Flaky test for FormTemplatesController (#32351 )" (32359 )
Remove mixed declarations from header.scs (32357 )
Flaky test for FormTemplatesController (32351 )
Unclaim reviewables when finished. (32346 )
Make the ‘Keep Message Deleted’ reviewable option work (32345 )
Remove hint for browser search shortcut (32330 )
Set X-Robots-Tag header to prevent indexing of /safe-mode (32329 )
Fix meta data content modifier state leak (32316 )
Escape regex symbols when replaceText is called for ProseMirror (32280 )
Bugs with refresh page after save fonts (32282 )
Wizard logo step JS error (32303 )
Remove newline from rich editor’s pasted img title/alt (32295 )
Add helpers for title and content for application.html.erb
and crawler.html.erb
(32290 )
Rich editor insertBlock implementation (32288 )
Click handler position on rich editor details node (32268 )
Refresh disabled state when switching between site texts (32262 )
Rename branding to logo and fonts (32264 )
Avoid double base path on push notification (32228 )
Switch to search icon on narrow desktop (32215 )
Ensure discovery queryParams do not persist invisibly (32178 )
Ensure uploaded watched word CSVs are converted to utf-8. (32263 )
Move CORE_SVG_SPRITES constant to a method (32261 )
Relax automation restrictions (32238 )
Set last_read_post_number for imported watching topic users (32229 )
Prioritize the author when replying to topic (32244 )
Category badge style missing data attr (32253 )
Logs time even when automation raises (32254 )
Hide search field on invites page (32236 )
Incorrect flag message when en_GB language (32191 )
Safari bug on rich editor’s list item (32243 )
Add category badge style to category list (32109 )
Selecting a parent category shouldn’t clear other form fields (32206 )
Flaky admin_branding_spec fonts section (32209 )
Flaky admin_branding_spec (32193 )
Flaky admin_customize_themes_spec (32169 )
Fallback to #search-menu for search input (32188 )
Archiving messages from group inbox (32166 )
Flaky admin_sidebar_navigation_spec (32168 )
Consistent search shortcuts (32099 )
Admin search page shortcut (32140 )
Hide search field on auth pages (32132 )
Invite_link_max_redemptions_limit min 1 (32118 )
Prevent duplicate category icons (32103 )
Always allow edit category bg color (32102 )
Update tag topic counts when bulk removing tags (32095 )
Create UserHistory only when setting changed (32075 )
Allows to resize textarea (32076 )
Prevents d-menu trigger/untrigger propagation (32078 )
“Input data should be a string” error in ProseMirror (32056 )
Prioritize !important CSS in emails (32061 )
Reapply 94ee3554 (32020 )
Update chat icon position on mobile (32016 )
Do not @import
.css
assets for plugins (32014 )
UX Changes
Fix formatting of two shortcuts (32479 )
Fix rich editor placeholder being cut on mobile (32474 )
Unhide the rich_editor site setting (32455 )
Adjust search blurb text (32467 )
Better differentiation for dark-mode (32450 )
Rich editor placeholder edge case (32448 )
Add missing discourse-table
SVG icon (32447 )
Locale and name shouldn’t be “optional” (32446 )
Remove position & z-index style (32445 )
Fix content from not showing above composer (32443 )
Do not let composer affect chat window height (32423 )
Border radius removal (32424 )
Improve input rules for rich editor autolink/linkify (32366 )
Chat more message actions adjustments (32404 )
Avoid nested paragraph tags causing extra large category descriptions (32403 )
Experiment with animation (32341 )
Small-fixes (32387 )
Avoid auto-linking clash with code marks on rich editor (32365 )
Prosemirror rich editor nodes cleanup / slightly better UX (32361 )
Welcome bannner and search tweaks for mobile (32362 )
Don’t decrease composer monospace font on mobile (32358 )
Header search tweaks (32354 )
Auto focus emoji picker input on mobile (32353 )
Header search mobile support - follow up (32306 )
Add visual variation to theme screenshot placeholder (32077 )
Remove z-index (32319 )
Adjust user-field labels (32317 )
Use ‘unused’ instead of ‘active’ for components (32284 )
Use core description of popular components when there’s no description (32286 )
Remove Ctrl+F search shortcut (32281 )
Keep content on rich editor footnote inputrule (32296 )
Quick mobile fix for quote styles (32297 )
Use mixin for quote border radius (32294 )
Border radius prose-mirror select node (32292 )
Remove z-index (32289 )
Keep the whisper editor font/color style consistent between editors (32287 )
Rich editor html_block without escaping and avoiding \n\n (32269 )
Onebox & quote border radius (32242 )
Avoid leading space when serializing some nodes from rich editor (32270 )
Add tooltip for markdown toggle shortcut (32278 )
Header search mobile support (31711 )
Only toggle rich editor details on caret click (32267 )
Improve associated accounts in user preferences (32247 )
Make admin code editor height more flexible (32241 )
Only-emoji consistency between rich editor and cooked (32245 )
Whisper color and font-style on rich editor (32239 )
Backspace rich editor keymap improvements (32234 )
Improve onebox handling on rich editor (32221 )
Wrap participants in pm topic item (32223 )
Add missing admin config page titles (32198 )
Add flex to mentions mixin + update units (32145 )
Button fixes (32152 )
Proper width of unsaved site setting banner (32137 )
Add flex to mention for consistent alignment and spacing (32105 )
Make admin search setting visible (32142 )
Show keyboard shortcut on full admin search page (31646 )
Align tag separator properly when viewing search in full-page mode (32133 )
Adjust spacing between simple tags in the site settings preview (32125 )
Adjust spacing to prevent last setting from being hidden behind save all banner (32127 )
Rename Twitter login button to X (32123 )
Wrap edit category subcategories (32110 )
Convert emdash+hyphen to a horizontal rule on rich editor (32085 )
Admin Dashboard title (32022 )
Improve mobile topic list tag layout (32048 )
Removing baseline alignment from topic title wrapper (32040 )
Emoji styling adjustments (32039 )
Align the previewless composer with posts (31960 )
Storage stats content overflow (31840 )
Display button loading state upon submit on password reset form (32034 )
Change focus to focus-visible (32021 )
Improve hashtag emoji alignment (32019 )
Only check for toolbar-visible class in mobileView (32018 )
Reposition chat header icon (31951 )
Add loading state to button when confirming password (32012 )
Security Changes
Enforce DM limits properly
Performance
Compile main locale bundles just-in-time (32335 )
Enable brotli in NGINX (32333 )
Set JOBS=1
for low memory build environment (32326 )
Reuse existing core JS build where possible (32311 )
Implement infinite scrolling for new components page (32291 )
Prevent N+1 queries when loading theme/component descriptions (32305 )
Set JOBS=1
for low-memory build environments (32171 )
Set cluster_concurrency 1
for Jobs::BackfillBadge
(32121 )
Accessibility
Use singular tag in accessible category_tag string (32492 )
Add H1 tags for screenreaders on discovery routes (32422 )
Welcome banner heading should not be an H1 (32420 )
Site-text-logo should not be an H1 (32405 )
Add aria-label to reply count link in topic list (32402 )
5 Likes