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
- Pre-emptively destroy Follow on Reject (230)
discourse-ai
New Features
- Allow seeing configured LLM on feature page (1460)
- Persona/tool import and export (1450)
- Add Qwen3 tokenizer and update Gemma to version 3 (1440)
- Hybrid artifact security mode (1431)
- Optionally support OpenAI responses API (1423)
- Persistent key-value storage for AI Artifacts (1417)
- Display features that rely on multiple personas. (1411)
Bug Fixes
- A typo in bot filtration in ai-bot-header-icon (1455)
- Include JSON instructions in Helper default personas (1458)
- AI preferences tab button not appearing unless Helper enabled (1452)
- Streaming related specs (1448)
- Implement max_output tokens (anthropic/openai/bedrock/gemini/open router) (1447)
- Bring back empty state message when appropriate (1446)
- Unable to scroll AI bot persona selector (1445)
- Cleanup properties on closing
DiffModal
(1442) - Never block spam scanning user (1437)
- When allowing private content translation, only translate group PMs and not personal PMs (1432)
- Helper wasn’t working when the persona doesn’t use structured output (1433)
- Various bugs in AI interface (1430)
- Don’t check for #blank? when manipulating chunks (1428)
- Improve admin api for artifact key values (1425)
- Skip edits if localization exists (1422)
- No need for XML in gists responses anymore (1420)
UX Changes
- Make topic list gists link to the topic (1459)
- Align llm button in ai features (1461)
- Focus conversation input on route transition and button click (1404)
- Add features to persona list and other style updates (1405)
- Show error and ability to try again when no suggestions (1426)
discourse-assign
Bug Fixes
- Use the correct connector tag name (661)
discourse-cakeday
Bug Fixes
- Makes user-cakeday props reactive (162)
discourse-calendar
Bug Fixes
- Id holidays: adds missing years to cn_new_lunar_day (750)
- Account for local times when rendering blocks (742)
UX Changes
discourse-client-performance
Bug Fixes
- Allow reports for anon on login-required sites (68)
discourse-code-review
Bug Fixes
- Use the correct connector tag name (247)
discourse-data-explorer
Bug Fixes
- Edit button not working (379)
discourse-gamification
Bug Fixes
- Right-sidebar-blocks no longer wraps args in a
params
object (206)
discourse-livestream
Bug Fixes
- Reloads chat channels when moving between events (60)
- Outer elements blocking auto scroll and iOS keyboard hiding nonmodal livestream chat (58)
UX Changes
- Fix topic map positioning when user marks as “Going” (59)
discourse-math
Bug Fixes
- Allows polls to work with discourse-math (110)
discourse-policy
Bug Fixes
UX Changes
- Update text formatting (169)
discourse-prometheus
Bug Fixes
- Parse Sidekiq::Work payload to extract job_name (151)
discourse-reactions
Bug Fixes
discourse-rss-polling
Bug Fixes
- Ensures user can be set on rss polling feed (105)
discourse-solved
Bug Fixes
- User directory for solutions should update when value changes from positive value to zero (372)
discourse-surveys
Bug Fixes
All Features and Fixes
New Features
- Hide topic if OP is hidden (33201)
- Add link to “associated accounts” providers (33275)
- Add revamped new and unread topic filter education (32669)
- Add emojis to seeded categories (33248)
- Add plugin outlet to category settings images tab (33155)
- Add description to invites (33207)
- Allow date-based filters to accept a day count (33197)
- Sharing link to PWA renders url in title in new Topic to leverage core link expansion (32631)
- System themes (32681)
- Clear bookmark reminders from bookmark menu (33168)
- Add post language on creating a new post (33160)
- Add post language on creating a new post (33001)
- Add utilities for importing and exporting backups (32992)
- Rich editor link ui for editing it (32583)
- Indicate if a localization might be outdated based on version number (33148)
- Validate Mentions in Rich Text Editor (32879)
- Add X-Discourse-Sender Header to outgoing mail (33123)
Bug Fixes
- Correctly displaying the failure error message
- Hide secret admin fields by default (33255)
- Make topic optional in render-tags so reviewables can use discourseTags (33181)
- Return the post’s raw when GET /post (33325)
- Make Ctrl+K shortcut work consistently in RTE, and not always show chat channel switcher
- Correct new_user_posting_on_first_day? logic (33303)
- Improvements to keyboard shortcuts from toolbar API (33290)
- Correctly follow enable_emoji_shortcuts in chat (33297)
- Do not set locale when replying and also default to none (33312)
- Admin search labels doubled up with parent label (33308)
- Add @disabled parameter support to the FormKit Submit component (33307)
- FormKit textarea value attribute binding (33306)
- Broken link in admin quick start guide (33295)
- Ensures colors are set for tl-growth report (33294)
- Chat message inline onebox url target (33288)
- Exclude experimental system theme palettes (33267)
- Ensures empty fields don’t store an empty array (33274)
- Ensures empty tags field is not storing an empty array (33270)
- Add channel hashtag color when lazy load is disabled (33269)
- Prevent login loop when logging out when only one idp (33266)
- Correctly refreshes associated fields after update (33246)
- Incorrect key being used in
S3Helper#upsert_tag
(33245) Upload#update_secure_status
not updating s3 access control (33232)- Wrong argument error in
FileStore::S3Store#update_access_control
(33231) - Import Horizon system theme (33229)
- Ignore SiteSetting.max_image_size_kb for theme screenshots (33215)
- Rich editor mention case sensitivity (33222)
- Make mentions autocomplete search prioritise exact matches for groups more (33195)
- Multiple video uploads in composer failed (33216)
- Admin can edit the name even if enable_names is disabled (33170)
- Chat video thumbnails in Safari (33199)
- Import Horizon system theme (33193)
- Include common_theme CSS in published pages (33179)
- Improves text selection of posts (33143)
- Unread-icon-size (33163)
- Add @enabled arg to
<LoadMore />
component (33122) - Allow setting blank secret on an existing webhook (33096)
- Clicking send invites and export button on admin users page (33121)
- Stop silently dropping first two rows during
load_mapping
(33076) - Stop blocking auto scroll on iOS (33129)
- Restore backwards-compatibility of
templates/components/*.hbs
(33131) - Moment locale loading in type=module (33128)
- Chat: shows placeholder instead of timer for empty chats (33105)
UX Changes
- Fix tag suggestion alignment (33315)
- Consistent sizing for configure default nav links (33314)
- Fix new/unread topic banner overlap with topic filter empty state (33305)
- Order Form Template TagChooser choices alphabetically (33109)
- Apply colour vars to svg (33287)
- Scroll to top of form on error (33276)
- Add tertiary-25 color variable (33273)
- Add labels and update title of insert link modal (33252)
- Fix rich editor link toolbar misalignment (33249)
- Fix toolbar tooltip regression (33237)
- Strip base url and https/mailto protocol from link toolbar (33228)
- Reload the page when the default theme is changed (33217)
- Make the theme title fully clickable + accessible (33205)
- Suppress chat’s Mod-K on rich editor (33206)
- Add classes to read/unread user menu messages items (33203)
- Display URL on rich editor link toolbar (33188)
- Make all preference icons unique (33202)
- Few composer and toolbar style changes (33187)
- Onebox margin-top of first child (33088)
- Adjust bookmark hover and active states (33177)
- Remove duplicate class from time-gap in post-stream widget (33175)
- Redirect message actions wheel event to channel (33172)
- Add missing toolbar separator css (33166)
- Properly center-align buttons in login-required screen (33159)
- Fix-border-radius (33147)
- Composer toolbar changes (icon, style, placement) (32918)
- Scale down banner (33132)
Security Changes
- Don’t display user’s old whispers if not in allowed group