Blog Post

Release Notes & Updates
5 MIN READ

Khoros Communities 25.12 Release Notes

MiladC's avatar
MiladC
Khoros Staff
3 months ago

The Khoros Communities 25.12 release delivers extensive accessibility improvements across both Classic and Aurora platforms, critical security fixes, significant search and analytics enhancements, and numerous stability improvements for content management, rich text editing, and API functionality.

Classic

  • Applied input sanitization for survey form submissions to ensure data integrity and security.
  • Fixed slide-out navigation menu accessibility violations including improper button element nesting and focus management issues affecting screen readers.
  • Fixed spoiler tags scrolling to page top instead of expanding content on first visit due to script loading latency.
  • Fixed Q&A structured data linking accepted answer URLs to author profiles instead of actual solution posts, improving SEO accuracy.
  • Fixed LiQL query operator "!=" to correctly apply multiple exclusion conditions, allowing users to exclude multiple nodes in a single query.
  • Fixed code snippet syntax highlighting disappearing when editing posts containing li-code elements.
  • Fixed post counter incorrectly decreasing when deleting product idea status updates.
  • Enhanced V2 API error messages to specify which field and content caused validation failures, providing actionable feedback to API consumers.
  • Fixed post approval failures in moderation manager showing false success messages when approving spam in archived threads.
  • Fixed kudos leaderboard displaying empty slots when deleted users were included in rankings.
  • Fixed API errors when querying subscriptions for label objects.
  • Enabled text key scoping for TKB template selection page to support template-specific customization.
  • Fixed API errors when retrieving posts containing malformed CSS classes in HTML content.
  • Optimized settings editor to reduce search reindex latency from 20-90 seconds to under 3 seconds when updating large custom settings.
  • Added comprehensive accessibility improvements including: proper combobox roles for all search and autocomplete fields; ARIA expanded/collapsed states for image upload controls; corrected button roles for file upload and avatar controls; keyboard focus management in settings tabs; screen reader announcements for file upload status messages; and notification settings sections defined as proper headings for navigation.

Aurora

  • Fixed critical authorization vulnerability in GraphQL endpoints to properly enforce permission checks for privileged operations.
  • Implemented multi-select functionality for idea status filter in ideas widget, providing filtering parity with Classic Community.
  • Implemented SEO improvements for tag pages including lowercase URLs, updated robots meta tags, and dynamic meta descriptions.
  • Enabled notifications and email alerts for followed tags, resolving "No activity yet" displays despite active content.
  • Fixed image lightbox not opening when clicking images in post replies.
  • Fixed spotlight search bar disappearing for anonymous users when typing specific search terms.
  • Fixed date calculations showing incorrect year values in user profiles due to improper rounding of negative numbers.
  • Updated tooltip text from deprecated "Kudos received" to "Likes received" throughout Aurora.
  • Fixed cookie banner reappearing on page refresh despite user accepting or declining consent.
  • Fixed pixelated thumbnail image display across community pages on high-DPI displays.
  • Fixed date preference not applying to profile page elements when set to absolute format.
  • Fixed internal links not opening in new window when using Cmd-click on Mac or Ctrl-click on Windows.
  • Fixed ZIP file attachment failures on Windows systems due to MIME type mismatch.
  • Fixed GraphQL ancestorId constraint returning zero results for boards queries.
  • Fixed timestamp mouseover displaying incorrect timezone after user login/logout cycles.
  • Fixed idea status updates displaying status ID instead of custom status name in user profiles.
  • Enabled bold formatting for hyperlinked text in rich text editor regardless of formatting order.
  • Fixed roles filter in analytics to display all community roles instead of only 25.
  • Fixed LithiumVisitor cookie being reset on every asset request, causing inflated visitor counts in analytics.
  • Fixed graphqlAdmin permission elevation for addUsersToRole mutation in endpoints.
  • Removed "Category:" prefix from browser tab titles on category homepages used as localized entry points.
  • Fixed search filters being cleared when performing consecutive searches.
  • Fixed quote button being hidden by browser context menu on touch devices by repositioning below selected text.
  • Fixed card view image quality on high-DPR displays by increasing thumbnail dimensions.
  • Removed inappropriate content filters from OAuth SSO token validation and abuse content moderation workflows.
  • Fixed place filter in ideas analytics report to correctly scope data to selected category.
  • Fixed missing user names in reply notification emails.
  • Fixed featured badge display to show highest earned badge level instead of first earned.
  • Fixed featured content widget briefly displaying restricted content to anonymous users during page load.
  • Fixed image upload order and caption issues when uploading multiple images simultaneously.
  • Fixed publication scheduler being obscured by footer UI elements.
  • Fixed oversized image warning notification persisting across page navigation.
  • Fixed "Show More" button resetting page scroll position to top on large threads.
  • Fixed duplicate author attribution display in TKB contributor lists.
  • Fixed locked indicator not displaying on threads with zero comments.
  • Fixed date display formatting issue causing text wrapping in published article tables.
  • Fixed analytics report table displaying incorrect numbers for values above 10 million.
  • Fixed inconsistent auto-hyperlink conversion when pasting URLs and quickly pressing Enter.
  • Fixed text pasting issue when replacing highlighted text from Notepad or VSCode.
  • Whitelisted @fluentui/react package for custom component development.
  • Added permission check to prevent image paste operations when user lacks image posting permissions.
  • Fixed missing UI error message when group names exceed 40 character limit.
  • Fixed images uploaded in HTML widgets displaying as broken due to malformed URLs.
  • Fixed closed private messages in inbox failing to load when messages referenced deleted users.
  • Fixed Annual Total Visits mismatch and incorrect contract period display in Community Analytics billing dashboard.
  • Fixed missing GroupHub "Invite Sent" events in Firehose when invitations were sent via email.
  • Fixed blank member registration graph in analytics caused by Elasticsearch circuit breaker exceptions.
  • Fixed day-of-week misalignment in analytics "Match day of the week" year-over-year comparisons.
  • Added comprehensive accessibility improvements including: text color control swipe accessibility on mobile; alt text for like icons and profile images; descriptive labels for form fields in private messaging; proper combobox announcements for all autocomplete fields; ARIA states for menu selections, sort controls, and expandable elements; improved button labels for skin tone picker, logo links, and context-specific actions; corrected button roles for rich text editor toolbar controls; and screen reader support for tooltips on mobile devices.

 

Pre-Prod Rollout: December 15-16. Testing window open from December 16 through January 4.
Production Rollout: January 6-7 
The rollout will follow the standard maintenance windows

Updated 3 months ago
Version 1.0

18 Comments

  • LucyL​ We have been having issues with this new cookied: LithiumTimezonePreferences and getting the cookie approved by our legal team. I think its because the description indicates its a 'interaction' cookie (or at very least is confusing). 

    We would instead suggest a description and purpose for this cookie as:


    Description and Purpose
    This cookie stores timezone information used to render dates and times within the community interface.

    Prior to authentication, the cookie defaults to the community‑configured timezone. Upon user authentication, the cookie is updated with the user’s preferred timezone (derived from profile settings during login), enabling accurate local‑time display of timestamps, event schedules, and other time‑based community content.

    If I could also gently push that these being cookies seems like overkill, it could be stored in session storage or it could be got from the users browser using:

    Intl.DateTimeFormat().resolvedOptions().timeZone

    We need to be smarter about cookies and how they are being used (and for why) as users become ever more privacy aware and protective of the same. 

  • LucyL's avatar
    LucyL
    Khoros Staff
    18 days ago

    Hi Allen! Appreciate the feedback and suggestion and I'll definitely pass it along. Please also bring it up with your CSM as well especially in regards to the legal issues you're facing so they may assist if there are any possible solutions for your case. 

  • mdfw's avatar
    mdfw
    Genius
    17 days ago

    Is there a current, up to date, cookie list?

    • Fixed day-of-week misalignment in analytics "Match day of the week" year-over-year comparisons.

    Really?


    Going to re-open our bug on this one.


    Revision: 25.12 (25.12-release r2512231126)
    Commit Id: 6f44f032fc2fa9d9bf7da881b8e205ae33861db9
    Timestamp: 0

  • LucyL​ 

    Sorry we have another cookies issue from this release:

    LithiumLocalePreferences (For Classic and Aurora communities)

     

    3

     

    Used to keep track of the user’s preferred language

    24 hours

    Increase in number of calls to verify user language preference. Language preference order may be altered or may default to browser selected preference.

    For Aurora - 

    If this cookie is not present, a query will be executed to retrieve the language. If the user does not have a value in their preferences, we will use the browser's `Accept-Language` header.

    We took this to mean it was only dropped on login, but it seems to be being dropped on page load this changes its categorization for us.

    Can you confirm?