3.4.0.beta1 : "Hot" now in default top menu items, new feature indicator, Polls can show absolute numbers and more

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-ai

New Features

  • Triage rule can skip posts created via email (775)
  • Single click proofreading (769)
  • LLM Triage support for systemless models. (757)
  • Allow specific groups access to summary feature on PMs (760)
  • Stream other post helper options (745)
  • Make emotion analysis enabled by default (732)

Bug Fixes

  • Malformed message in systemless + inline img scenario (771)
  • Triage’s search_for_text should be case-insensitive (767)
  • UrlEditable must be true for all providers except Bedrock (766)
  • Tool editing code editor resetting on every keypress (765)
  • Mobile composer helper trigger should work on Android and iOS (763)
  • Add original upload markdown on caption failure (762)
  • Clicking on summary links breaks summary (759)
  • Modals in composer helper menu not working (755)
  • Triage-flagged posts didn’t have a score. (752)
  • Prevent AI caption setting from showing unless all criteria is met (753)
  • More robust summary implementation (750)
  • AI helper not being shown on mobile view (749)
  • Gemini 0801 tool calls (748)
  • auto_image_caption not always present for current user. (746)
  • Correctly save provider-specific params for new models. (744)
  • Handle nil reply_to_post in AI Bot event handler (743)
  • LlmModel validations. (742)
  • Add tool support to open ai compatible dialect and vllm (734)
  • Use correct date for cached summary (733)
  • Properly pass errors to client (731)

UX Changes

  • Topic summary UI improvements due to DMenu changes (772)
  • Add dark-light mixin for better visibility in dark themes (764)
  • Style & position AI helper in composer (758)
  • Summary fixed positioning (740)
  • Use stacked line chart for post sentiment (737)
  • Clarify purpose of OpenAI API key setting (739)

discourse-assign

Bug Fixes

  • Prevents column reference “id” is ambiguous (590)

discourse-cakeday

Bug Fixes

  • Move birthdays and anniversaries links to more section (131)

discourse-calendar

Bug Fixes

  • Removes clean title codepath (600)

Performance

  • Removed N*2+1 in availability topic (599)

discourse-chat-integration

New Features

  • Added Power Automate as a new provider (204)
  • Add topic tags changed trigger to chat integration (208)

discourse-data-explorer

New Features

  • Allows CSV file result to be attached in automated PMs (318)

Bug Fixes

  • Fix double validation (314)
  • Fix user_id validation (312)
  • Param should be displayed when the default value is invalid (313)
  • Empty param-inout form should reject submit (309)
  • Use with_deleted only in topic and post (308)
  • Wrong type in category_id param input (304)
  • Create parameter input boxes after save (303)

UX Changes

  • Rewrite date/time param-input using FormKit (316)
  • Use GroupChooser in group_id param input (315)
  • Rewrite param-input using FormKit (307)
  • Using CategoryChooser for param param_input (306)

discourse-deprecation-collector

Bug Fixes

  • Update config reference after a core change (29)

discourse-doc-categories

New Features

  • Report extraneous items on indexes (11)
  • Add report with topics not indexed (9)
  • Add advanced search filter in:docs (8)

UX Changes

  • Add doc icons to sidebar items (10)

discourse-follow

Bug Fixes

  • Update user-profile-secondary outlet usage (122)

discourse-fontawesome-pro

UX Changes

  • Remove discourse-bookmark-clock because there’s no pro alternative (55)

discourse-global-filter

Bug Fixes

  • update_category_stats erroring on bad column lookup (154)

discourse-group-tracker

UX Changes

  • Normalize disabling checkboxes when turning off group tracker (64)

discourse-instant-search

New Features

  • Add tags refinement list and…

Bug Fixes

  • searchType typo, switch to constants
  • Linting
  • Error when opening filters after switching search type
  • “Invalid Date” text appearing after two mins
  • Embeddings should not be fetched again if load more is pressed
  • Hyde/Hybrid/Semantic working
  • .search() call breaks show more results in hits
  • Sort mode persisting results
  • Posts links
  • Broken links

UX Changes

  • Fix highlight dark mode colors
  • Use dimmer highlight color for search highlight
  • Include categories in controller so we can assign category badge colors
  • Lock icon for closed topic results
  • Improve styling and structure for chat results
  • Style post results, add PM envelope to titles
  • Style user results as a table
  • Adjust positioning and styles for search, topic results
  • Topic/PM refinement list and conditional refinements
  • Improve search layout and styles, grid user results

discourse-jira

New Features

  • Add tags to topics based on issue status. (71)
  • New category setting to automatically create a Jira issue. (69)

discourse-livestream

New Features

  • Add relation between TopicChatChannel and Chat::Channel (29)

Bug Fixes

  • Show livestream join message only for topics with livestream chat (30)
  • Moves lookup later (28)

discourse-math

Bug Fixes

  • Adds katex support for chat (88)

discourse-multilingual

Bug Fixes

  • Correctly set type/code on serialize (17)

discourse-policy

Bug Fixes

  • Solve log noise when scoped order is ignored. (134)

Performance

  • Use find_each to avoid memory spikes take 2 (133)
  • Use find_each to avoid memory spikes (132)

discourse-preset-topic-composer

Bug Fixes

  • Add createTopicDisabled check to new topic button (26)

discourse-ratings

Bug Fixes

  • Prevent DestroyOldHiddenPosts from failing when there are orphaned posts (9)
  • Use proper action function (8)

discourse-reactions

Performance

  • Static id for like post action type (305)

discourse-solved

Bug Fixes

  • Don’t allow TL4 users to unconditionally accept solutions (305)

discourse-subscriptions

Bug Fixes

  • Pricing table for one-off purchases (228)

discourse-templates

UX Changes

  • Shortcut help should show lowercase i (81)

discourse-theme-creator

Bug Fixes

  • Ensures user can save theme setting (87)

discourse-topic-voting

New Features

  • Allow order:votes on /filter (204)

Bug Fixes

  • Care for nil counts when ordering (205)

discourse-translator

New Features

  • Add translator error ProblemCheck for Microsoft (161)

Bug Fixes

  • Handle same language translations (164)

All Features and Fixes

New Features

  • Allow showing site text search in selected locale (28453)
  • Allow plugins to specify keyboard shortcuts for hidden toolbar items (28456)
  • Add estimated number of global and EU visitors to the about page (28382)
  • Change default for push_notification_time_window_mins (28431)
  • Unseen feature indicator in admin sidebar (28397)
  • Add system_user_max_attachment_size_kb site setting (28351)
  • Always show full page “New Features” to admins (28383)
  • Allow completely custom score reasons. (28348)
  • Bring plugin:create to core from create-discourse-plugin gem (28350)
  • Add delay to native push notifications (28314)
  • Participating users statistics (28322)
  • Change tags sent in topic_tags_changed trigger in automation plugin (28318)
  • “Hot” replacing “Top” as default in the top menu (28252)
  • Add option to immediately delete stub topics upon merge (28228)
  • Absolute Numbers in Poll (28240)
  • Add live_slots_(start|finish) for Sidekiq perf logging (28260)
  • Added trigger for topic tags changed (28176)

Bug Fixes

  • Endless loading post history (28425)
  • Correctly shortcut format on mac (28556)
  • Respect the End key when last post is already rendered (28524)
  • Allows to manually remove error for virtual fields (28555)
  • Allows selectText to take a scroll position as opt (28554)
  • Destroy draft when clicking the Discard button (28552)
  • Add users to user directory on account activation (28505)
  • Return properly interpolated translations for flags
  • Prevents topic hot scope error on future topics (28545)
  • Prevent group requests from loading infinitely (28544)
  • Prevents exception when showing replacements (28543)
  • Fix incorrect check for required custom fields (28541)
  • Prevent desktop notification callbacks on mobile (28527)
  • When replacing text in composer maintain history (28537)
  • Bookmark reminder was clearing incorrectly (28506)
  • Video uploads sometimes hang indefinitely (28523)
  • Refresh the edit tag section when navigating to another tag (28519)
  • Prevents creating post from impacting the app (28518)
  • Correctly reset form before destroying it (28516)
  • Videos not uploading due to thumbnail generation error (28493)
  • Adds chat-draw-expanded class to body (28490)
  • Trigger user_logged_out event when the user logs out (28482)
  • Hide heading when there’s no custom description (28470)
  • Skip 1:1s when chat search returns users (28464)
  • Ensures href is not set two times (28466)
  • Subfolder account activation (28463)
  • Lost outer context in #each block in hbr (28461)
  • Specify @type arg for the image uploader in the about config area (28460)
  • Write stylesheet cache atomically (28457)
  • Use correct subtitle for Site contact name field (28448)
  • Don’t show silence button on staff users and display similar users (28423)
  • Broken mentioned users with capitalized usernames (28421)
  • Translation overrides didn’t work for search orders (28404)
  • Make poll voter list expansion persistent (28352)
  • Bypass highlighths for long code in auto mode (28399)
  • Make cancel and reset buttons work for file_size_restriction settings (28347)
  • Allow chat sound when notifications are disabled (28385)
  • Delay chat notify watching job (28386)
  • FormKit: Allow 0 in required number input (28368)
  • Don’t show blank space when there’s no banner image (28366)
  • Ensure we dispose of MiniRacer::Context before forking daemons (28361)
  • Serialize Flags instead of PostActionType (28362)
  • Access correct name and description (28353)
  • Set overflow-x to auto to prevent scroll bar from always showing (28294)
  • Do not continue list inside codefence (28346)
  • Correctly render sql checkboxes (28328)
  • Serialize Flags instead of PostActionType (28334)
  • Poll when config is on_close only show results when poll is closed (28299)
  • Poll ranked choice voter list corrupting on expand (28315)
  • Stop injecting uneeded margin (28335)
  • Not hit Redis cache in seeds (28329)
  • Serialize Flags instead of PostActionType (28259)
  • Display new DM button when public channels are disabled (28306)
  • Site setting category titles (28281)
  • Don’t log an error when rendering a 404
  • Flaky flags specs when moving up or down (28272)
  • Unescape URI properly when redirecting to a category
  • Ensure do-not-disturb icon updates correctly (28253)
  • Return additional message types properly
  • Use CheckboxGroup for admin badges form (28239)
  • Limit the number of custom flags to 50 (28221)
  • Backup_restore.rb wants db user from user, not username (28229)
  • Cache all flags multisite-safe (28204)
  • Set sane default for Net::HTTP when processing a request (28141)
  • Ensures tags/categories are present (28230)
  • Don’t clear inline problems when loading admin dashboard (28220)
  • Make the check better for drawer router (28212)
  • Further improvements to // handling (28211)
  • Do not strip // from the middle of URLs in discourse-url (28210)
  • Update do-not-disturb icon in real-time on glimmer header (28200)
  • Poll ranked choice result algo majority check (28191)
  • Update voter information upon remote change (28168)
  • Correct return isForever value (28194)
  • Badge image uploader (28188)
  • Remove chat default channel setting (28170)
  • Video thumbnails for missing videos (28152)
  • System badges can be disabled (28169)
  • Don’t count draft views towards topic view stats (28162)
  • Double reviewable items bug (28161)
  • Move downloading of Maxmind databases to after assets:precompile (28157)
  • Return properly interpolated translations for flag types
  • Perform topics merge in a background thread (28114)
  • Poll: Clickable, hoverable avatars (28121)
  • Race condition in Discourse.cache.fetch (28124)

UX Changes

  • Highlight the chat channel/DM only when chat is expanded (28488)
  • Explain choices priorities (28574)
  • Fix overflow usercard (28558)
  • Flag settings tab to follow UI guidelines (28479)
  • DMenu fixes (28551)
  • Make keyboard shortcut styling more subtle (28522)
  • Centralise DMenu mobile styling + fixes (28469)
  • Adjust software update banner for headerless pages (28496)
  • Don’t use split subcategory color in docked header (28494)
  • Fix textarea height on mobile (28495)
  • Add title token for What’s New admin page (28476)
  • Apply new admin UI guidelines to What’s New (28454)
  • Show topic map in topics without replies by default (28468)
  • Improve mention colors for dark color schemes (28462)
  • Fix restore info link on admin backups page (28452)
  • Apply admin UI guidelines to custom flags (28433)
  • View count in topic map should always be at least 1 (28447)
  • Apply admin interface guidelines to Backups page (28051)
  • Improve mobile view for the new /about page (28406)
  • Omit fav badges count if max is 0 (28402)
  • Do not check for dimensions in video filename (28349)
  • Style reviewables in the user menu when avatars are enabled (28388)
  • Only scrollIntoView if sidebar items are not already visible (28372)
  • Tweak styling for the new /about page (28367)
  • Remove baseline alignment from chat timestamp (28345)
  • Remove poll button bg color to avoid highlight issue (28319)
  • Small topic map improvements and fixes (28215)
  • Set “topics” link in sidebar as active for hot, unseen, and my posts filters (28305)
  • Add sidebar DM list back when public channels are disabled (28301)
  • Add plugin outlet to embeddable hosts (28264)
  • Smaller modal headings, shorter flag mdoal title (28278)
  • Do not delete narrative bot PM when skipping user tips (28265)
  • Change bookmark menu label from “Custom…” to “More options…” (28266)
  • Fix issue with long usernames wrapping in mobile user cards (28256)
  • Fix user profile button wrap, clean up styles (28255)
  • Remove extra margin from flag description links (28251)
  • Break long words to prevent overflow in activity stream (28250)
  • Link edit text to search in badges form (28248)
  • Respect current locale on topic map views date format (28199)
  • Move admin flag form to form-kit (28187)
  • Hide/show preview button title attribute fix (28155)

Performance

  • Ensure suggested topics is only loaded on last page of topic view (28507)
  • Defer button actions to improve interaction-next-paint (INP) (28019)
  • Delete I18n._overrides after they have been applied (28405)
  • Automatically join users to channels more efficiently (28392)
  • Reduce mem allocation of Chat::AutoRemove::HandleCategoryUpdated (28393)
  • Reduce memory footprint of Chat::AutoRemove::HandleCategoryUpdated.call (28381)
  • Reduce memory footprint of Chat::AutoRemove::HandleCategoryUpdated (28332)
  • Do not expire cache when PostActionType is saved (28337)
  • No redis calls when running migrations (28336)
  • Skip reset flag callbacks on seed (28333)

Accessibility

  • Remove redundant tabindex=0 from polls (28320)
  • Add aria-label to avatar link on categories page (28304)
  • Do not skip heading levels in keyboard shortcut modal (28285)
9 Likes