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 support for image attachments (197)
discourse-ai
New Features
- Add diff streaming animation (1355)
- Add participants and invite button to AI conversations (1354)
- Triage can hide posts after adding them to the review queue (1348)
- Allow passing in data attributes to an artifact (1346)
- Hashtag and mention autocomplete for first bot message (1342)
- Allow researcher to also research specific topics (1339)
- Forum researcher persona for deep research (1313)
- Examples support for personas. (1334)
- Improved diff streaming for AI composer helper (1332)
- New setting to control model for translations (1333)
- Support configurable thinking tokens for Gemini (1322)
- Ensure researcher and github helper know the date (1312)
- Enforce jpg/png for all images (1309)
Bug Fixes
- Closing AI menu stops post audio from playing (1369)
- Improve researcher tool - fix topic filters (1368)
- Apply diffs more consistently (1367)
- Don’t error when navigating from AI Bot topic to regular (1366)
- Correctly pass tool_choice when using Claude models. (1364)
- Improve MessageBus efficiency and correctly stop streaming (1362)
- Ensures stream update object is scoped to its initial topic (1359)
- Stabilize diff algorithm for streaming (1358)
- Retry parsing escaped inner JSON to handle control chars. (1357)
- Don’t dig on nil when checking for the gemini schema (1356)
- Add safe navigation to serializer include conditions (1349)
- AI share page assets via CDN on login-required sites (1343)
- Structured output discrepancies. (1340)
- Persona triage should be logged to automation (1326)
- Correct prompt format for img2text used in our AI Bot PDF Rag pipeline (1323)
- Do not display empty state while fetching bot conversations (1320)
- Return structured output on non-streaming mode (1318)
- Invalid access error in logs (1317)
- Handle unexpected errors when browsing web (1314)
- Resource_url replacemente in Persona’s system prompt (1310)
UX Changes
- Allow rounded corners (1365)
- Don’t show AI suggestions in composer when inputs are disabled (1331)
- Stick new question button to top of mobile sidebar (1329)
- Apply bot conversation sidebar styles to mobile sidebar (1328)
- Style adjustments for conversations (1325)
- Stop rendering back to forum link (1319)
discourse-authentication-validations
Bug Fixes
discourse-code-review
Bug Fixes
- Remove autolink commits feature (243)
discourse-data-explorer
Bug Fixes
- Add new attribute that is required when using the basic topic serializer (375)
discourse-doc-categories
Bug Fixes
- Broken specs (38)
discourse-gamification
Bug Fixes
- Scope materialized view existence check to current schema (203)
discourse-livestream
Bug Fixes
discourse-login-client
New Features
- New “revoke” endpoint (12)
Bug Fixes
- Automatically skip create confirm when plugin is enabled (11)
UX Changes
- Add the user’s intent as a query parameter (10)
discourse-preset-topic-composer
Bug Fixes
- Broken specs (48)
discourse-solved
New Features
- Apply plugin modifier for answers controller rate limiting (369)
discourse-theme-creator
Bug Fixes
- Fix failing specs for user schema theme setting editor (111)
discourse-translator
New Features
- Translate topics on a schedule and on topic create (291)
- Automatically detect and translate posts into Post and PostLocalization (290)
- Detect locale and translate posts from core table (287)
Bug Fixes
- Gate translation to public posts or posts within a certain age (307)
- Microsoft Azure language support (306)
- Suppress errors when translating (299)
- Don’t double cook (297)
- Skip validation when updating a topic’s locale (293)
- Switch to DiscourseAi’s StructuredOutput (288)
All Features and Fixes
New Features
- Improve emoji diversity rendering (32909)
- Also localize banners (32908)
- Allow minimizing composer when no text (32880)
- Trigger an event when chat channel is trashed (32844)
- Also localize topic excerpts (32839)
- Show localized posts and topics based on user’s locale (32618)
- Add the group show endpoint to search groups by id instead of only the slug name (32442)
- Porting type object to site settings (32706)
- Add translations to posts (32564)
Bug Fixes
- Make post created/edited automation trigger regexes more specific (32944)
- Skip importing solved topics when plugin isn’t installed (32922)
- Unblock social signup when name is required and `auth overrides… (32923)
- Add missing about group ordering option (32931)
- Avoid infinite loop when synonym tag is self (32932)
- Back to forum button should lead to forum and not chat (32913)
- Serve RTL CSS for themes and components (32916)
- Also show the toggle localization button on mobile (32912)
- Resolve discard draft keep editing (32667)
- Back to forum button only from admin (32911)
- Prevents double load of automation.index (32899)
- Allows zooming of images in chat (32891)
- Fix label and description not working in type objects for site settings (32868)
- Fix category title link to update when category changes, add tests (32840)
- Avoid double redirect after installing a theme (32876)
- Fullscreen composer regression (32864)
- Forgotten background (32857)
- Themes and components page title (32856)
- Bring back sidebar filter (32837)
- Add missing translation for reviewable post action (32813)
- Ensures we have changed page first (32802)
- HeaderSearch not always appearing when welcomeBanner is removed (32804)
- Catch postcss errors correctly for theme fields (32800)
- Wait for data before showing admin search results (32796)
- N+1 in admin themes page (32763)
- Skip flaky specs (32786)
- Rely on capybara waiters (32789)
- Uses correct capybara waiter (32788)
- Attempts to fix flaky in review media (32787)
- Attempts to fix flaky in stat spec (32784)
- Uses correct waiters and APIs (32778)
- Check if sidebar hidden and remove scrollLock when hiding hamburger menu (32775)
- Bug with 2FA setup right after signup (32754)
- Reset password link broken for non-staff user in confirm session dialog (32765)
- Allow existing users to accept invites that add them to a group. (32762)
- Correctly guard for missing close method (32760)
- Adds missing search-input-wrapper (32749)
- Lock Bullet gem to a compatible version (32724)
- This was hiding the top of the composer on iOS (32734)
- Ensure we can lookup identical ip addresses (32725)
- Wrong class in schema setting editor stylesheet file (32715)
- Header search mobile z-index issue (32683)
- Correct reload edit theme page (32658)
- Ensure old email set correctly when updating email (32309)
- Purge ExtraLocalesController cache correctly for multisite (32654)
- Link to browser support section of website (32647)
- Redirect to new themes page after deletion (32638)
- Prioritize pages over other categories in admin search (32614)
- Ensure
hashtag_lookup
falls back to system user if post user is deleted (32466) - Don’t enforce strict loading on anon user main record (32590)
- Improvements for admin search (32574)
- Badge not showing as disabled when it is (32591)
- Key optimized images on format (32575)
- Autocomplete being cut on rich editor (32586)
UX Changes
- Handle long URLs in theme grid with overflow-wrap (32942)
- Improve UX when profiles are hidden from anon (32938)
- Add fallback width for modal (32937)
- Update composer educational tips copy (32933)
- Modal close animation (32842)
- Fix search results unreachable bottom results and more button (32883)
- Match theme install icon with component icon (32894)
- Remove background from nav pill hover (32893)
- More border radius application (32892)
- Switch sidebar focus to focus-visible (32882)
- Establish a larger default border radius (32889)
- Improve intermediate state in social signup flow (32887)
- Fix positioning of loading spinner (32885)
- Rich editor checklist undoable input rule (32877)
- Re-add similar topics styles (32866)
- New styling for composer tips (32843)
- Update unsaved changes popup (32849)
- Fix overflow name in usercard (32838)
- Close admin search modal immediately when result is selected (32811)
- Improve mobile date picker slightly (32822)
- Better error message when social login fails (32772)
- Adjust styling for composer tip similar topics + limit amount (32774)
- Fix alignment of more topics nav pills (32808)
- Follow-up search fixes for welcome banner (32776)
- Make the notification panel consistent with new search panel styles (32753)
- Improve spacing of text in topic list items (32755)
- Refactor the edit topic title UI (32339)
- More consistent admin search hover/focus color (32752)
- Improve admin search focus states (32751)
- Add discourse text icon (32744)
- Simplify admin search, make more accessible (32733)
- Focus on sign up form in social auth flow (32728)
- Split admin logo and fonts to separate pages (32700)
- Modal to inherit border radius (32709)
- Minor style adjustments for experimental translation feature (32708)
- Add missing import to admin_base.scss (32707)
- Add fixed scrollbar gutter to avoid jump with modals (32702)
- Search CSS refactor + fixes (32401)
- Always close hamburger menu when navigating to admin (32651)
- Don’t always fill username for forgot password (32646)
- Do not reserve space for the tip message on the signup page (32627)
- Improve image uploader setting control layout (32626)
- Include custom text field description in signup form (32624)
- Various improvements to the new color palette page (32597)
- Composer starts with allowPreview default false (32589)
- Link to
/new-invite
in quick start guide (32580)
Performance
- Introduce lazyHash and update PluginOutlet calls to use it (32823)
- Prevents N+1 on last_updated_by (32817)
- Correctly use preloaded association (32814)
- Fixes N+1 for automation plugin (32810)
- Improve performance of the new themes listing page (32641)
Accessibility
- Update accessible headings for more flexible translations (32863)