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
- Hide search (2)
discourse-login-client
New Features
- Retrieve user avatar (6)
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
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
andcrawler.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
forJobs::BackfillBadge
(32121)