Milestone 0277 Release Notes

Blank 19/5/2026 14:10 - 19/5/2026 14:10
Release Notes

In this release, we've made some exciting enhancements like optimizing large batch handling in KSalesData, adding a robots.txt editor for site admins, and introducing a new pivot tool in KReporting. We've also tackled various bugs to improve stability and performance, including fixing issues with product searches and enhancing the user interface for a smoother experience. Plus, we've implemented important security updates to keep your data safe!

Enhancements:

  • #23529: KSalesData: Optimise handling of large batches to keep rows together where possible
  • #23497: Platform: Add robots.txt editor to Website screen so site admins can manage crawler rules and preview changes
  • #23496: KSalesData: Show parent SKU in Aliases panel when a SKU is an alias
  • #23494: KAuctions: Disable real-time WebSocket updates and Bid Information in Auctions List Component to improve server stability
  • #23491: KReporting: Proof of concept for pivot/cube tool
  • #23468: KLeadman: Add 'Read-Only' option to leadCompany for consistency with other lead components
  • #23465: KSalesData: Allow "Sales Record Created" journeys to match when an extra custom field is blank
  • #23425: Platform: Add custom fields to Reward Entries and Auction Bids
  • #23417: Platform: Make repository Diff tool visible on read-only branches and ignore internal sync files (.mil, .ksync)
  • #23415: Platform: Add hide/unhide controls for configuration management snapshots
  • #23403: Platform: Only trigger megamenu Copilot after user types three or more words to avoid distracting responses and extra LLM costs
  • #23373: Platform: Catch API processing errors and send admin email notifications via AdminNotifications channel
  • #23349: Platform: Add dedicated Group Permissions page with downloadable Permission Matrix for admins
  • #23311: KProducts: Improve breadcrumb trail, title and URL consistency for SKU detail page
  • #23279: Platform: Add text search filter to user and organisation timelines to quickly find matching events
  • #23192: salesDataClaimer: Add event trigger to let custom apps transform Textract JSON and prevent multi-page invoices being misclassified
  • #23154: KProducts: Fix search so productCode prefix queries return matching products
  • #23146: Platform: Replace custom Audit Search layout with standard table for consistent admin display and better detailed-properties handling
  • #23024: Platform: Reduce default admin table page size from 100 to 20 records to improve readability and performance
  • #22270: KLearning: AI functions to let users access training content
  • #21851: KLearning: Allow admins to select multiple programs and courses and create batch enrollments
  • #21848: Platform: Duplicate group does not duplicate website access

Bug fixes:

  • #23582: KCommerce2: Exception executing component: storeProductList - Exception calling getColumnConfiguration in app admin-lib
  • #23551: KGameOfChance: Clicking "View promotion entries" on Award tab opens a missing page (404)
  • #23541: SalesDataClaimer: Fix alias SKU matching to use the same SKU extraction logic as regular SKUs
  • #23532: Platform: Expiring points component combines period amounts incorrectly and inflates the user's expiring points balance
  • #23528: KProducts: Deleted product search results incorrectly display Edit action instead of Restore
  • #23521: Platform: Debug sessions stop after exceeding 500MB due to increased performance-data capture
  • #23518: salesDataClaimer: Prevent returning alias SKUs when matched SKU belongs to a different distributor
  • #23498: KLeadman: The lead title does not display in the task list component
  • #23490: Platform: First-time domain delegation does not populate A/AAAA records if CloudFront instance does not exist
  • #23482: KSalesData: Prevent alias SKUs from being used on sales records — autocomplete should list only base SKUs
  • #23477: KSalesData: Configuration apply errors — "Cannot cast SalesDataSeriesCategory to Relational" when deploying a release package
  • #23467: KLeadman: Task assignee not shown in Information tab
  • #23464: KIntegration: An exception is thrown when reprocessing the pipeline.
  • #23463: KIntegration: Correct hostname regex for SFTP endpoints to permit hyphenated and multi-level domains
  • #23461: KIntegration: Creating import jobs saves to the live branch instead of the selected version, causing a read-only save error
  • #23460: KProducts: Fix bulk "Delete all Matched Products" to retrieve and delete all matched products
  • #23454: Platform: Add CatalogManager JS methods to delete product parameters and parameter options
  • #23448: Platform: Fix Entity Finder to use the organisation scope from the user’s role rather than their membership org
  • #23443: KLeadman: 'Complete Task' modal on Lead details page displays raw template code
  • #23440: KPartnerAssistant2: Requests via partner-assistant return 403 (authorization declined) for users with Content Viewer role when role-applicability is enforced
  • #23434: Platform: Pairing shows success but does not complete — paired account not added and Cancel link returns 404
  • #23422: KSalesData: Fix AI querySalesData blocking users who only have the "Sales Data Viewer" role
  • #23411: KRecognition: Shows error when No current level for progressToNextLevel KCode
  • #23375: KPromotions: KCode insertion in the New Points Allocation Source wizard overwrites existing text instead of appending
  • #23275: KAuctions: Shopping Cart Goal incorrectly triggers for all bidders instead of only auction winners
  • #23161: KLeadForms: Simplify lead lookup by refactoring findCustomerLeads to accept a single options object
  • #23106: Whatsapp: Fix phone parsing for numbers with leading 0 or extra 0 after country code and prevent WhatsApp API failures
  • #22943: Platform: Login As Feature Fails Due to Role Privilege Issues
  • #21936: OpenIDConnect: Autodiscover URL field disabled — cannot type URL when adding a provider (Chrome/Firefox)
  • #21837: KCommerce2: Product search updated to include SKUs to avoid incorrect product selection during KCRM order placement
  • #21560: Platform: Update HLS bitrate presets so player selects 1080p when bandwidth permits
  • #8667: KCommerce2: Order completes but SKU inventory remains unchanged for non-points checkout

Performance:

  • #23473: Platform: Fix performance regression from environment-variables feature that slowed app version lookups
  • #23222: KLeadForms: Fix slow Leads for Customer component by replacing preloaded dropdowns with entity finder typeahead

UI/UX Improvements:

  • #23526: KCommerce2: Duplicate inventory locations appear when stock quantity is set for an Alias SKU
  • #23522: Platform: Update standardTable macro to allow users to control field display
  • #23517: Platform: Admin Groups Page — inconsistent button sizes and icon styles on group pages; restore mid-sized primary buttons
  • #23510: KPayment: Enclose proposals list table in panel-default to match site admin theme and spacing
  • #23509: KReporting: KCodes page table is missing the default panel container, causing a layout inconsistency
  • #23499: KSalesData: Use standard/default panel for series page header to improve UI consistency
  • #23479: KSalesData: Correct typographical/encoding error in Promotion eligibility message of the Split Point Allocation Source wizard
  • #23472: Platform: Change admin menu default to Mega Menu for all clusters
  • #23458: KGameOfChance: Players cannot view prize details on the "fish" promo page
  • #23456: Platform: Improve visibility of domain registration statuses in Pending Requests with clear icons and labels
  • #23452: KRecognition: Fix audit records to display full change descriptions and not "todo"
  • #23345: Admin UI update: warranty details
  • #23258: Admin UI update: certificate delete value remove icon from dropdown
  • #22927: Manage claim types: update admin UI
  • #22926: SalesDataClaimer - Manage claims list: update admin UI
  • #22924: Manage surveys: update admin UI
  • #22922: Reporting page: update admin UI
  • #22920: kConfirm list: update admin UI
  • #22919: Deleted organisations page: update admin UI
  • #22917: kRedirect: update admin UI
  • #22916: Request based themes: update admin UI
  • #22915: Org based themes list: update admin UI
  • #22913: Asset details: update admin UI
  • #22336: Platform: AI Chat History — Add "AI Search" option to App name filter so chats can be filtered correctly

Security Updates:

  • #23492: Platform: Upgrade Netty to 4.1.133.Final to fix security vulnerability (CVE-2026-42583)
  • #23485: Platform: Apply Dependabot security updates for multiple vulnerabilities (May 2026)
  • #23423: Platform: Fix profile image upload vulnerability — validate file type/content on the server to prevent executable and malicious files
  • #23363: KLeadman: Lead detail page editable by users with read-only roles

Documentation:

  • #23489: KJourneys: Restore and rename documentation for Sales Record Created node (SalesDataRecordCreatedGoal → SalesRecordCreatedGoal)
  • #23160: Documentation: Article on Managing Account level apps vs website level and when to apply updates