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 reject follower action (123)
- Allow actor preferred username changed (124)
- Add context resolver (98)
Bug Fixes
- ActivityPub user locale strings (150)
- Broken followers list for anonymous users (145)
- Prevent whispers from being published (128)
- Ensure malformed activities do not raise exceptions (122)
- Ensure JSON without an actor doesn’t throw an exception (119)
- Ensure discovery nav observes route changes properly (117)
- Fix flakey move posts spec (118)
- Adding tags in admin UI (116)
- Support multiple moderation groups on category (114)
Performance
- Static id for like post action type (112)
discourse-adplugin
Bug Fixes
- HouseAdsChooser
onChange
handling (234)
discourse-ai
New Features
- Changes to summaries’ outdated logic. (1108)
- Improve o3-mini support (1106)
- O3-mini supports (1105)
- Use persona default LLM for Discord integration (1104)
- Block seeded models for being a persona default (1100)
- Gemini Tokenizer (1088)
- Track duration of AI calls (1082)
- Formalize support for matryoshka dimensions. (1083)
- Configurable embeddings (1049)
- Add user location info to spam scanner context (1076)
- Llm quotas (1047)
- Add the ability to disable streaming on an Open AI LLM
- Smart date support for AI helper (1044)
- Link correctly to filters to assist in debugging spam (1031)
- Add periodic problem checks for each LLM in use (1020)
- Unavailable state for semantic search when sort is not Relevant (1030)
- Show gists everywhere except suggested/related (995)
- Add AI-powered spam detection for new user posts (1004)
- First class support for OpenRouter (1011)
- Select stop sequences from triage script (1010)
- Amazon Nova support via bedrock (997)
- Backfill posts sentiment. (982)
- Allow artifacts to be updated (980)
- Adjustments to gist summaries (988)
- Exclude muted categories from category suggester (979)
- AI Usage page (964)
- Skip PM scanning in LLM triage by default (966)
- Calculate gists from non hot topics too (958)
- LLM mentions and auto silence (949)
- Add links to filtered emotion view on emotion dashboard table (953)
- Refinements to Emotion in dashboard (947)
- Add locale detection prompt from translator (946)
- Make emotion /filter ordering match the dashboard table (939)
- Enable gists on all topic lists (922)
- Emotion activity metrics table (916)
- Add support for Mistral models (919)
- AI artifacts (898)
- Order by emotion on /filter (913)
- Partial tool call support for OpenAI and Anthropic (908)
- Truncate AI Captions to a reasonable max size (907)
- Improve tool support (904)
- Extend summary backfill to also generate gists (896)
- Automatically backfill regular summaries. (892)
- Support custom instructions for persona streaming (890)
- Double gist length to 40 words (888)
- New endpoint for directly accessing a persona (876)
- Fast-track gist regeneration when a hot topic gets a new post (860)
- Support srv records for OpenAI compatible LLMs (865)
- Allow scoping of google tool queries (852)
- Better logging for automation reports (853)
- Improve visibility of AI usage in LLM page (845)
- Make hot topic gists opt-in. (846)
- Generate topic gists for the hot topics list. (837)
- Discord Bot integration (831)
- Smarter persona tethering (832)
- Index embeddings using bit vectors (824)
- Tools for models from Ollama provider (819)
- Allow persona to only force tool calls on limited replies (827)
- Support chain halting and upload creation support (821)
- Allows forced LLM tool use (818)
- Allow llm triage to automatically hide posts (820)
- Add Ollama provider (812)
- RAG search within tools (802)
- Basic support for GPT-o models (804)
- Make tool support polymorphic (798)
- Add a SambaNova LLM provider (797)
- Disable rate limiting when skipping hyde (793)
- More accurate and faster titles (791)
- API scope for semantic search (785)
- Smooth streaming animation for summarization (778)
- Improve site setting search (780)
- Initial support for seeded LLMs (756)
- Allow embedding based search without hyde (777)
- 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
- Need to be able to search replace within lines (1110)
- Make sure DiscoursePrometheus is installed when collecting metrics (1107)
- Android tablet composer menu z-index (1102)
- OpenAI api key still needed for Dall-E. Unhide it. (1098)
- Open AI embeddings config migration & Seeded indexes cleanup & (1092)
- Always raise the single exception/Open AI models migration (1087)
- Embeddings backfill rake task was using old code (1084)
- Convert provider_params hash to json before db insert (1081)
- Open AI embedding shortening is only available for some models (1080)
- Restore the accidentally deleted query prefix. (1079)
- Set default for existing records. (1073)
- Make summaries backfill job more resilient. (1071)
- AWS Bedrock non-streaming calls response log (1072)
- Only hide posts detected explicitly as spam (1070)
- Missing table check in post_migration (1068)
- Do batches for backfilling huge embeddings tables (1065)
- Composer helper not appearing on tablets (1064)
- Split backfill into separate migrations to use independent transactions (1063)
- Split statements to avoid timeout (1062)
- Invalid locale yaml (1057)
- Update spam controller action should consider seeded LLM properly (1053)
- Keep track of silence reason when spam detection flags user (1046)
- Prevent LLM enumerator from erroring when spam enabled (1045)
- Embedding validation (1043)
- AI Helper category / tag suggestion when user does not categories muted (1042)
- Embeddings validator test needs to use the new Vector class. (1041)
- Custom prefix causing allowed seeded LLMs not to be shown (1039)
- Cloudflare Workers AI embeddings (1037)
- Properly spin down unused streamer threads (1035)
- Make sure gists are atleast five minutes old before updating them (1029)
- Get strategy version through vector_rep (1028)
- Allow scanning of trashed posts and deleted users for test (1024)
- Triage rule should append selected tags instead of replacing them (1022)
- Gemini inference client was missing #instance (1019)
- Make sure prompt uploads get included in the prompt when triaging (1008)
- Close link in shared conversation model (1007)
- Change how we filter date for emotion on /filter (1006)
- Make sure limits are updated and applied on each step (1002)
- Typo in topic gist for escapedExcerpt (1003)
- Add a digest check to avoid repeteadly generating embeddings (bulk) (1001)
- More resilient sentiment backfill query (998)
- Regression, no longer sending examples to AI helper (993)
- AI Automation scripts were broken when using seeded models (991)
- Tag suggester is suggesting already assigned tags (990)
- Sentiment classification results needs to be transformed before saving (983)
- Move count logic to the end for tag suggestions (978)
- Keep related topics data cached when a user scrolls up (976)
- Multiple concurrent summaries could result in pg index errors (973)
- Suggestion menus not showing in mobile (970)
- Double render error with thumbnail suggestions (968)
- Fix ordering of random post embeddings backfill (965)
- Shutdown embeddings thread pool after processing (961)
- Skip records without content to classify (960)
- Switch up start/end dates in emotion dashboard report (951)
- Correctly register ‘info’ icon (950)
- Unnecessary complex preloading accidentally filters some topics. (945)
- Disables temporarily ai_summaries filtering (943)
- Automatically bust cache for share ai assets (942)
- Properly capture period for /filter emotion ordering (940)
- Cancel functionality regressed (938)
- Gists are not html safe (931)
- Misc fixes for sentiment in the admin dashboard (928)
- Instruct AR that we want to use ai_summaries for filtering. (927)
- Reduce scope of topic gists inclusion. (925)
- Skip gists from PM topic lists (923)
- Ensure artifacts are sandboxed, even when visited directly (921)
- Properly bypass CSP for artifacts (920)
- Move emotion /filter logic into a CTE to keep cardinality sane (915)
- Results not being reset when appending to query param (912)
- Do not strip empty string during stream processing (911)
- Regenerate summary button still shows cached summary (903)
- Unhide gemini api key setting for embeddings (902)
- Specify type for Rag upload (895)
- We must properly encode objects prior to escaping (891)
- Encode parameters returned from LLMs correctly (889)
- Truncate OP for gists to help the model focus on the latest posts (883)
- Ensure replies are never double streamed (879)
- Make sure that topic gists are displayed ONLY on the hot list. (873)
- Use present? instead of invalid exists? (869)
- Change hot gist prompt to avoid title repeating #859 (859)
- Testing tool was not showing rag results (867)
- Llm selector / forced tools / search tool (862)
- Basic cleanup of AI Caption to remove line breaks and pipes (857)
- Add missing translation (849)
- Decouple DOM manipulation from SummaryStreamer (844)
- Don’t regenerate up to date gists (843)
- Api key header error (839)
- Remove missed AiPersona.allowed_chat (838)
- AI Helper not visible on iPads (805)
- Diff modal closing along with composer menu on mobile (803)
- Keyboard shortcut should be platform specific (801)
- Support case insensitive setting lookup (795)
- Display cached summaries with our new streamer. (792)
- Bail earlier when a chat thread has no messages (789)
- Correctly display errors when parent module needs to be disabled first (788)
- Coerce value before downcasing the hyde param (787)
- We were never reindexing old content (786)
- Prevent proofreading when there is no content (779)
- 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
- Include none false for provider params (1111)
- Improve embeddings config styles (1085)
- Update usage “Learn more…” link (1090)
- Set usage as first AI admin tab (1089)
- Fix composer helper z-index (1086)
- Full page search – always show tooltip & add msg (1051)
- Close summary modal on click outside (1050)
- Disabled preseeded edit button, add description (1038)
- Minor improvements to LLM page and admin tables (1034)
- Use new DStatTiles reusable component from core (1025)
- No admin header for edit personas tools or llms (1021)
- Improve rough edges of AI usage page (1014)
- Make sentiment trends more readable (1018)
- Make sentiment trends more readable in time series data (1013)
- Ensure composer popup is always above AI icons (1012)
- Improve layout of inline title editing buttons (1000)
- Move topic summary from DMenu to DModal (992)
no-text
style being incorrectly added to tag suggester (987)
- Fix styling of AI Helper on quick edit (975)
- Ensure suggestions are left aligned (971)
- Add table style for LLM list (963)
- Applying more admin UI guidelines (956)
- Add emojis to the admin dash emotion table (944)
- Force long words to break in topic list gists (936)
- Ensure gists occupy full row (934)
- Improve artifact styling add direct share link (930)
- Update gist toggle styles (926)
- Reduce topic list title size when gists are enabled (910)
- Increase gist size, and adjust surrounding elements to accommodate (900)
- Add sparkle icon to related topics for anons (897)
- In share, use native image dimensions and hide filename (880)
- Convert AI gist disclosure to a toggle (878)
- Minor gist optimizations for readability (864)
- Hide AI bot in seeded LLM (858)
- Add disclosure for topic list gists (861)
- Improve seeded LLM edit page (856)
- Switch gist outlet to avoid badges (855)
- Adjust gist position, darken unread color (854)
- Avoid introductory phrases and summarize topics without replies (848)
- Remove AdminPageSubheader style override (828)
- Update icon and text for copying message (815)
- Move templates to main LLM config tab, restyle (813)
- AI composer helper z-index issue (809)
- Take composer height into account when calculating the max-height for topic summary (806)
- Improve toast message location (800)
- AI post helper DMenu styling (770)
- Replace “share” with “share-alt” icon (784)
- Summary container should be fixed instead of growing (783)
- 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)
Security Changes
- Fix XSS on Shared AI Conversations local Onebox (1069)
Performance
- Optimize backfill query to prevent statement timeouts (1066)
- Preload only gists when including summaries in topic list (948)
- Speed up spec (794)
discourse-assign
New Features
- New “notification level when assigned” user preference (626)
- Add
should_notify
option to Assigner#assign
(604)
- Add modifier to assigned count (598)
Bug Fixes
- Not send notifications when it should never notify assignment (620)
- Pending_assigns_reminder reminder leaking total assigned topics count (617)
- An incorrect getter invocation in 0d1045e9887aabb0bbb9316346f688527217da71 (596)
- Match column types (593)
- If a group is deleted also remove assignments (592)
- Prevents column reference “id” is ambiguous (590)
Performance
- N+1 when assignments status are enabled (614)
discourse-authentication-validations
Bug Fixes
- Broken test (29)
- Update plugin outlet component based on core FormKit conversion (21)
discourse-cakeday
Bug Fixes
- Move birthdays and anniversaries links to more section (131)
discourse-calendar
New Features
- Allow users to set a custom title to sidebar calendar (649)
- Keeps going invitees for recurring events (632)
- Suppress interested and not going buttons by default (621)
- Allow event editors to control list of users on the event (614)
Bug Fixes
- Row height on the upcoming events calendar (677)
- Recurring events not displayed on /upcoming-events (676)
- Correctly apply local dates on event dates (671)
- Ensures bulk-invite is working properly (666)
- Render component on all routes (655)
- Regressions from modernization (642)
- Category settings for calendar were incorrect (631)
- Prevents pushing null watching invitee (629)
- Correctly set upcoming events key (628)
- Prevents error if post event node is not found (626)
- Correctly fill recurrence property (625)
- Missing localization (624)
- Correctly render html of event title (623)
- Shows category calendar on hot/latest (611)
- Removes clean title codepath (600)
UX Changes
- Do not show participants in admin drop down menu for standalone events (679)
- Remove going indicator for standalone events (672)
- Right sidebar UI (657)
- Render invitees count (663)
- Post event tweaks (660)
- Events UI Edits (641)
- Forces full height of calendar on upcoming events (630)
- Add upcoming events from recurrence to the category calendar (616)
- Fix event builder i18n (613)
- Prioritize events with high participant counts (610)
- Allow event time to be hidden if desired (606)
Security Changes
- Fix XSS in calendar event name (607)
Performance
- Removed N*2+1 in availability topic (599)
discourse-category-experts
New Features
- Support custom field correcting on post_move (183)
- Add Category-Experts webhook event types (167)
- Added Category Experts unapproved post WebHook Event (161)
- Added Category Experts approved WebHook Event (156)
Bug Fixes
- New post sending unapproved post webhook event (162)
discourse-chat-integration
New Features
- Allow custom query parameters in Discord webhooks (236)
- Add chat integration reference post (216)
- Added Power Automate as a new provider (204)
- Add topic tags changed trigger to chat integration (208)
Bug Fixes
- Topic changing category was not triggering notifications (244)
- Update flaky test in showing error modal (228)
- Error modal not showing data (225)
- Message triggering on topic creation (222)
- Adjust
full_url
method in ChatIntegrationReferencePost
to return the correct URL (220)
- Revert chat-integration move to discourse-automation (219)
- Revert chat-integration move to discourse-automation (214)
discourse-client-performance
New Features
- Record CLS and improve INP target identification (53)
- Log viewport width/height information (51)
Bug Fixes
- Do not divide CLS by 1000 (54)
- Logging of initially-loaded route (38)
- More robust reporting on mobile (52)
discourse-codebytes-plugin
Bug Fixes
- Update class references to use
textManipulation
(33)
discourse-custom-topic-lists
New Features
- Add RSS feed to custom lists (29)
discourse-data-explorer
New Features
- Add script to post report results in a topic regularly (328)
- Allows CSV file result to be attached in automated PMs (318)
Bug Fixes
- Boolean field default state mismatch (353)
- Optionally linkify URL columns server-side (330)
- 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
- Apply admin table classes for consistent mobile styling on the recent queries page (349)
- Clarify the need for authorized extension (346)
- Automatically convert to lowercase in explorer-schema (325)
- 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)
Performance
- Remove dynamic use of
<template>
(340)
discourse-deprecation-collector
Bug Fixes
- Update config reference after a core change (29)
discourse-development-auth
UX Changes
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)
Bug Fixes
- Permalink spec (26)
- No doc sidebar in admin. (22)
- Parse text from non-TEXT elements before colon correctly (21)
- Error while updating the docs sidebar via message bus (17)
UX Changes
- Added plugin About information and a link (30)
- Add doc icons to sidebar items (10)
discourse-docs
Bug Fixes
- Don’t error out on non-stringy tags parameter (180)
discourse-encrypt
New Features
- Add ‘decrypt all PMs’ functionality (347)
- Allow users to decrypt existing PMs (344)
- Allow admins to disable the creation of new encrypted PMs (339)
Bug Fixes
- Remove a duplicated topic-status icon (366)
- Deprecation message (362)
- Use database for original upload filenames when decrypting (349)
- Decrypting multiple uploads on a single line of the post (348)
- Do not bump topics when decrypting (346)
- Decryption on sites with external uploads (345)
- Do not warn about replies when allow_new_encrypted_pms=false (340)
- Add missing event handler (336)
- Errors may be null-ish (334)
UX Changes
- Avoid triggering notifications when decrypting (350)
discourse-follow
Bug Fixes
- Stream should come from
args
instead of this
(138)
- Use split hide profile and presence options (128)
- Update user-profile-secondary outlet usage (122)
discourse-fontawesome-pro
UX Changes
- Remove discourse-bookmark-clock because there’s no pro alternative (55)
discourse-gamification
New Features
- Add option to lock leaderboard view to default period (179)
- Add per-reaction score awarding (95)
- Added chat-events scoring (96)
Bug Fixes
- Redo period filtering to respect leaderboard date bounds (178)
UX Changes
- Convert admin leaderboard forms to FormKit (157)
discourse-group-tracker
UX Changes
- Normalize disabling checkboxes when turning off group tracker (64)
discourse-hcaptcha
Bug Fixes
- Searching for ‘plugin:discourse-hCaptcha’ in admin UI returns no results and Error logging (11)
UX Changes
- Add meta topic ID to metadata (25)
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 update to chatable when topic category changes (33)
- 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
- Correctly set type/code on serialize (17)
discourse-openid-connect
New Features
discourse-patreon
Bug Fixes
- Use current Patreon logo for social login (145)
discourse-perspective-api
Bug Fixes
- Ensure it works with form templates (93)
discourse-policy
Bug Fixes
- Resolve policy footer layout issues on mobile (150)
- 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-post-voting
Bug Fixes
- Delete reviewable when the user is deleted (227)
discourse-preset-topic-composer
Bug Fixes
- Add
createTopicDisabled
check to new topic button (26)
discourse-prometheus
New Features
- Tweak
postgres_highest_sequence
only for int columns (120)
- Tweak
postgres_highest_sequence
only for int columns (98)
Bug Fixes
- Fork collector demon in a safer way. (126)
- Collector not requiring webrick dependency (125)
- Revert postgres_highest_sequence metric changes (119)
- Increase interval for sequence check now that it is a slower check (118)
discourse-ratings
Bug Fixes
- Prevent DestroyOldHiddenPosts from failing when there are orphaned posts (9)
- Use proper action function (8)
discourse-reactions
Bug Fixes
- Undefined method for
nil
error in PostSerializer#reactions
(314)
UX Changes
- Prevent accidental text selection of the reactions counter (336)
- Fix small alignment issue when using the Glimmer Post Menu on mobile mode (320)
Performance
- Speed up
PostSerializer#reactions
by avoiding nested loop take 2 (313)
- Speed up
PostSerializer#reactions
by avoiding nested loops (312)
- Remove unnecessary ‘includes’ call (309)
- Static id for like post action type (305)
discourse-rewind
Bug Fixes
- Visible_post_types expects a user
UX Changes
- Text & width adjustments (9)
- Make card clickable link
- Adjust styles for long words
- Simplify hours and minutes shown
- More books styling (4)
discourse-salesforce
Bug Fixes
- Use correct user_id field from return auth result (90)
- Remove incorrectly added ‘App not approved’ message (89)
discourse-saml
New Features
- Prevent replay attacks on assertion ids (114)
Bug Fixes
- Embed signatures in requests when keys are defined (107)
Security Changes
- Upgrade ruby-saml to 1.17.0 which fix CVE-2024-45409 (104)
discourse-solved
New Features
- Add modifier to update the assigned count and exclude solved topics (312)
Bug Fixes
- Use both possible
*_answer
attributes (329)
- Support multiple moderation groups on category (307)
- Don’t allow TL4 users to unconditionally accept solutions (305)
discourse-solved-reminders-plugin
New Features
- Link to solved post when sending congratulations PM (12)
Bug Fixes
- Do not run regular/scheduled jobs unless the plugin is enabled (13)
discourse-staff-alias
Bug Fixes
- Allow any type of post revision for staff alias topics (86)
- Convert type in whisper params (75)
discourse-steam-login
Bug Fixes
- Add
/gems
to .gitignore
(97)
discourse-subscriptions
New Features
- Add support for PLN currency (258)
- Add support for CHF currency (254)
Bug Fixes
- Redirect to the pricing table page when enabled (239)
- Payments not showing up for users (233)
- Create customer for one off pricing table purchases (232)
- Pricing table for one-off purchases (228)
discourse-templates
UX Changes
- Shortcut help should show lowercase i (81)
discourse-theme-creator
Bug Fixes
- Use new user api client key system in discourse/discourse (100)
- 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
- Show experimental language switcher for anon users (198)
- Add DiscourseAi translator (181)
- Add support for Samoan (sm) and all other languages supported by Microsoft (186)
- Add max character for translation setting (183)
- Add ProblemCheck for google (167)
- Add translator error ProblemCheck for Microsoft (161)
Bug Fixes
- Strip detection text before truncation (196)
- Skip images and quotes when sending for language detection (195)
- Normalize languages within Discourse AI translator (194)
- Remove a duplicated language entry (191)
- Also strip anchor tags when detecting language (187)
- Strips img tags (emojis) when detecting language (182)
- Handle same language translations (164)
Performance
- Move per-post language detection job into batches using redis (177)
discourse-unhandled-tagger
Bug Fixes
- Makes handled button reactive to change (27)
discourse-whos-online
Bug Fixes
- Cannot read property of undefined (119)
- Use split hide profile and presence options (110)
discourse-yearly-review
Bug Fixes
- Ensure SQL queries are properly sanitized (90)
discourse-zoom
New Features
- Add Zoom description and location to Google Calendar (87)
Bug Fixes
fast_typing_threshold
site setting (112)
- Modernize topic page integration (111)
- Correct key in webinar object used for matching the zoom host email to Discourse user (88)
docker_manager
Bug Fixes
- Minimize database access following
db:migrate
(247)
- Remove `<3.4.0.beta1 version pin (241)
UX Changes
- Removed a redundant git pull statement from the user message (260)
- Update the admin page header to use DPageHeader (258)
- Status badge tweaks (253)
- Adjust table to be responsive on mobile (244)
- Suppress pnpm upgrade notifications in build logs (240)
(No changes found in 2024-performance-profiling-workshop, ask-discourse-context, discourse-affiliate, discourse-akismet, discourse-algolia, discourse-amazon-sns, discourse-animated-avatars, discourse-anonymous-moderators, discourse-antivirus, discourse-apple-auth, discourse-auth-no-email, discourse-auto-deactivate, discourse-auto-lock-pms, discourse-bbcode, discourse-bbcode-color, discourse-bcc, discourse-brightcove, discourse-browser-history, discourse-categories-suppressed, discourse-cdn-experiment, discourse-characters-required, discourse-chart, discourse-code-review, discourse-email-short-date-format, discourse-extra-group-classes, discourse-fingerprint, discourse-folksy-image, discourse-geoblocking, discourse-github, discourse-github-user-infos-view, discourse-github-verification, discourse-google-one-tap, discourse-gradle-issue, discourse-graphviz, discourse-group-category-banner-ads, discourse-group-membership-ip-block, discourse-group-tag-associations, discourse-intercom, discourse-jwt, discourse-kolide, discourse-local-site-contacts, discourse-login-with-amazon, discourse-logster-rate-limit-checker, discourse-logster-transporter, discourse-lti, discourse-marketo, discourse-meteor, discourse-microsoft-auth, discourse-needs-love, discourse-nested-posts, discourse-newsletter-integration, discourse-no-bump, discourse-oauth2-basic, discourse-onboarding-banner, discourse-page-visits, discourse-password-expiry, discourse-pirate-speak, discourse-plugin-skeleton, discourse-prepend-tags-in-topic-slug, discourse-prioritize-generic-onebox, discourse-prometheus-alert-receiver, discourse-restricted-replies, discourse-rss-polling, discourse-saved-searches, discourse-shared-edits, discourse-signatures, discourse-sketchup-3dwh-onebox, discourse-sketchup-sso, discourse-surveys, discourse-tag-by-group, discourse-tag-topic-user-device, discourse-teambuild, discourse-tooltips, discourse-topic-noindex, discourse-tudiabetes, discourse-unlock, discourse-url-filters, discourse-user-card-badges, discourse-user-notes, discourse-video, discourse-vk-auth, discourse-watch-category-mcneel, discourse-watched-word-exceptions, discourse-wikimedia-auth, discourse-zendesk-plugin, folksy-store-name, twitter-profile-link, twitter-topic-group-button)