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
- Pagination was broken past 50 follows/followers (239)
- Use correct page for load_more_uri (238)
- Allow topic title editing for non-ActivityPub posts (235)
discourse-custom-topic-lists
Bug Fixes
- Use TagDropHeader component instead of just strings (48)
All Features and Fixes
New Features
- Skip spam scanning when relevant content is unchanged or edited by staff (34391)
- Ability to regenerate short summaries (34345)
- Disable user tips + narrative bot welcome post for all sites (34316)
- Translation progress admin UI (34239)
- Enable topic creation button for read only categories (34211)
- CRUD access for ai-artifacts (admin only) (34193)
- Improve color palette sorting order in admin (34282)
- Opt-in to the responses API when using Azure (34290)
- Display automation scripts in the AI features page (34254)
- Localize topic view in crawler view (34253)
- Filter tips for assigned topics (33992)
- Localize topic titles and category names in crawler view (34212)
- Remove dark mode checkbox (34165)
- Add previews to color palette selectors (34129)
- Add support for ‘minimal’ reasoning effort in OpenAI models (34179)
- Support GPT-5 (34168)
- Theme default option in user interface (34126)
- AI header icon should remember last URL (34108)
- Add support for matryoshka in Gemini embeddings (34145)
- Make staff action logs export respect the filter (34113)
- Theme default option in user interface (34110)
- Add date range selector to staff action log (33959)
- Add toggle for PM gists to Discourse AI (34107)
- Add option to hide IP addresses from moderators (33682)
- Make HyDE optional in AI search (34074)
- Localize topic titles in notifications and bookmarks (34059)
- Use a persona when running the AI triage automation script (34010)
- User preference for editor Markdown monospace font (34051)
- Add dark color scheme setting for themes (33967)
- Allow re-localization twice a day if post version has changed (34023)
- Add new edit_tags_allowed_groups setting (34000)
- Fetch pre-build JS assets by default (34009)
- Color mode preference (33875)
- Reset bump date when unhiding a post (33926)
- Add unicode username support for composer rich text (33734)
- Reset bump date when hiding a post (33895)
- Localize language names (33790)
Bug Fixes
- Refresh palettes list when navigating back to palettes list page (34374)
- Include llm_persona_triage scripts in the AI features’ triage section (34395)
- Truncate seeded persona’s names to fit name length constraint (34393)
- Allow users in content_localization_allowed_groups to delete translations (34385)
- Language dropdown in wizard should filter correctly (34379)
- A typo on the change callback for wizard (34378)
- Fix the closing paragraph tag in locale (34372)
- Ensure confirm user fields are exported correctly in user lists. (34375)
- Hide header search for certain routes (34294)
- Prioritize default light and dark palette in admin (34348)
- Allow themes index to resort when adding new themes (34314)
- Incorrect site setting link for plugins in admin search (34349)
- Edit color palette button pointing to wrong route (34318)
- Link to correct staff action logs for theme site setting (34315)
- Improve automation on/off toggle (33482)
- Use group name in unreachable mention warning (34174)
- Clean up user_auth_token_logs even when verbose logging is disabled (34196)
- Set category text color on field blur (34289)
- Deleted topic causes an issue when replacing attributes (34286)
- System theme site serializer and stylesheet manager specs (34277)
- Ensure AI gists render on mobile (34261)
- Border-radius should appear in the edit topic title input (34258)
- Improve color input hex autocomplete (34218)
- Use correct subcategory subfolder path in crawler (34250)
- Don’t make Horizon’s palettes user-selectable (34062)
- Use a valid value for disabling backups using backup_frequency (34245)
- Theme site settings not reloading across processes (34242)
- Remove redundant allowedGroups parameter (34244)
- Allow admins to delete invites created by others (34064)
- Simplify full name requirement logic during signup (34215)
- Update small screen styles (34232)
- Assume buffer also carries stuff from previous chunks, not just the last one (34230)
- Showing errors during social auth in some edge cases (34220)
- Improve signup destination URL handling (34221)
- Improve filtering with multiple tag filters (34120)
- User autocomplete search cache pollution (34208)
- Update final destination to use more recent user agent (34207)
- Rich editor ENTER after non-text node (34188)
- Paste mention from post to rich editor (34184)
- Hcaptcha plugin was incompatible with login-required sites (34181)
- Show error message when social auth fails for suspended users (34173)
- Redirect to ‘private’ topic when using discourse connect (34176)
- Rich editor html_inline parseDOM not setting the tag attr (34175)
- Do not exit early from login route in webviews (34172)
- Url escaping on rich editor when autolink/linkify (34164)
- Correct open ai endpoint call (34170)
- Don’t try to update automation field if we couldn’t create a Persona due to missing fields (34147)
- Remove confusing multi link markdown example from summary persona (34146)
- AI search tool should respect new hyde setting (34117)
- Make sure we don’t add parts of the same chunk twice when dealing with ParserErrors (34143)
- User tips in languages with apostrophes (34118)
- Show loading spinner when redirecting to discourse connect (34135)
- Make theme live-reload safer (34133)
- Update logic for displaying admin palette warning (34121)
- JS/HBS connectors in themes (34130)
- Catch possible PG exception from
Chat::AutoJoinChannels
(34132) - Event scheduler could create dupe record (34127)
- ‘destination_url’ cookie handling (33072)
- ‘custom’ prefix was removed. Cleanup llm_report’s model field (34099)
- Partial migrations (34085)
- Do not perform null translation (34084)
- Make sure strings are correctly escaped before seeding a persona for triage scripts (34082)
- Update fallback style for category-link helper (34076)
- Use correct variable for triage personas migration (34067)
- Remove custom prefix when seeding personas for triage (34066)
- Infinite reload in viewport-based-mobile-mode (34058)
- Helper rake task typo in llm setting (34057)
- Add compontent to all themes button (34056)
- Show category localization selector for non-supported locales when localization exists (34025)
- Event notification translation for predefined attendance (34053)
- Initialize mobileMode earlier (34036)
- Filter route views- error, “views” is ambiguous (34033)
- Debounce resolution of image urls on rich editor (34035)
- Handle
LOAD_PLUGINS=0
inassemble_ember_build.rb
(34029) - Allow here as a valid mention (34028)
- Add mention warnings for composer rich text (33857)
- Ensure imported category slug is deduplicate (34012)
- Remove unneeded overflow in horizontal-scroll-sync (34016)
- CSV bulk invites broken when S3 uploads enabled (33995)
- Mention with a status should open the user card (33979)
- Optimize shortcomings from topic truncation from a27e20c (33983)
- Element-classes implementation on older browsers (33981)
- Tabbing out of the markdown editor (33940)
- Extend cache key due to user locale (33975)
- Completion rate double-count and normalize (33963)
- Composer mode was not being remembered on new PM (33962)
- Check tag group names in form template validator (33850)
- Composer link modal ENTER event (33945)
- Remove old code reference on Discourse AI migration (33943)
- Ensure usage report is timezone aware to prevent gaps (33913)
- Also show native names when editing category localizations (33930)
- Move custom digest text to correct spot (33912)
- Correct variable name (33935)
- Process templates before previewing (33848)
UX Changes
- More reactive user preference color previews (34361)
- Fixes and improvements for color palettes (34359)
- Remove wizard-specific styling and add core classes (34323)
- Display toast message when deleting a theme (34355)
- Always keep mobile composer at fullscreen (34358)
- Remove
barThickness
so translation bars scale naturally (34362) - Fix timeline handle color in dark mode palettes (34360)
- Don’t make seeded palettes user-selectable (34347)
- Update copy from Active ->` Default for themes + palettes (34346)
- Fix category dropdown size in title editor (34335)
- Don’t highlight admin content on hover if it isn’t clickable (34332)
- Improve the color picker styling (34328)
- Increase timeline handle contrast slightly (34327)
- Sidebar btn light dark support horizon (34319)
- Set emoji size to 1em (34325)
- Add admin report for associated accounts by login provider (34187)
- User status emoji alignment in sidebar and chat mention (34320)
- Use rotate icon for convert theme button (34317)
- Show bulk select on filter page when set to show in nav controls (34237)
- Fix Horizon disabled new topic button (34293)
- Post action button simplifications (34141)
- Move
selected
andhover
colors up in the color palette UI (34278) - Add background image setting for welcome banner (34222)
- Remove flex from admin email appearance form layout (34291)
- Improve admin search padding (34280)
- Switch to overflow:auto on post-controls (34263)
- Improve header alignment in mobile modals (34260)
- Correct missing padding (34255)
- Adjust appearance of search icon (34235)
- Different style for markdown/rich editor toggle (34161)
- Improve wording of non-user-selectable option for colour palettes (34251)
- Improve copy for restricted category tags (34240)
- Fix theme toggle component positioning in Horizon (34226)
- Visited styles on categories topic list (34225)
- Add unique class to user profile toggle button (34223)
- Remove margin on user badge (34216)
- Add hard break with double space+enter on rich editor (34157)
- Make rich-editor
[quote]
non-isolating (34177) - Fix padding/spacing issues at smaller widths (34180)
- Fix more-topics in the posters column case (34178)
- Add
[^n]
rich editor footnote input rule (34163) - Add
[quote]
rich editor input rule (34162) - Add welcome banner page visibility setting (34119)
- Consistency and accessibility improvements for keyboard shortcuts (34090)
- Avoid prosemirror nodes w/ content and draggable:true (34153)
- Fix more-topics tabs interaction with
--space
(34047) - Minor search spacing improvements (34152)
- Set header tag color to header_primary-high (34150)
- Fix old syntax (34138)
- Do not target topic-list-item data elements in bg color definition (34136)
- Category header restyle (34081)
- Render emojis consistently on 404 page (34115)
- Fix width on hidden-upload-field on the admin backup btn (34103)
- Horizon theme, fix d-toc class on smaller screens (34105)
- Expose shift buttons for lists on touch-devices (34102)
- Sidebar changes & css cleanup (34097)
- Subcategory image tweaks (34083)
- Use success colour for solved icon in topic list (34092)
- Horizon >` apply small styling fixes for discotoc plugin (33826)
- Resize dmenu width for filter on window resize (34091)
- Add category badges to category filter tip results (34078)
- Fix category badges on 404 page and oneboxes (34071)
- Remove btn-default class from light-dark toggle (34070)
- Make AI streaming more efficient under glimmer post stream (34068)
- Fix quote control position in non-glimmer post stream (34069)
- Add spacing to discourse tag box-style (34065)
- Make tables in blockquotes fixed to prevent overflow (34061)
- Direct to single tag page from tag intersection when one tag remains (34038)
[rte]
properly put cursor at end when putCursorAtEnd is called (34039)- Add trailing paragraph when pasting a
[quote]
at the end of a text block (34037) - Enhances messages dropdown with unread count (33889)
- Improve wrapping and styling in email logs (34011)
- Better handling of admin email log overflow (33988)
- Unify filters for colors, themes, and components (33863)
- Apply consistent spacing and correct emoji size to track-link in posts (33982)
- Horizon >` messages page – change box-shadow to inset (33976)
- Horizon >` chat message popup zindex followup (33977)
- Fix github repo oneboxes in chat (drawer) (33955)
- Fix tabs in new notification panel (33871)
- Ability to customize border colors of oneboxes (33939)
- Hashtag alignment in text and autocomplete (33902)
- Update styling of inline footnotes (33933)
- Improve admin width restriction, fix theme setting width (33938)
- Show 0% instead of em dash in percent-type report columns (33931)
- Modernize footnote implementation and enable in preview (33928)
- Clarify color palette activation button (33909)
- Horizon >` chat-drawer z-index adjustments for popup content (33932)
- Content border variables 2 (33911)
- Fix-overflow (33914)
- On plugin index, unlink preinstall, simplify install banner (33910)
- Show navigate to post button on ignored quotes (33904)
Security Changes
- Welcome banner user name XSS
- Escape names
Performance
- Fix performance regression in
SvgSprite.settings_icons
(34377) - Limit the number of upcoming dates generated (34134)