In this release, we've introduced exciting enhancements like Ksync's ability to track repository URLs and show live sync status, along with improved reporting tools and faster blob uploads. We've also tackled several bugs for a smoother experience, including fixes for article previews and OAuth2 response issues, while enhancing security measures and UI/UX for better usability.
Enhancements:
- #24542: Ksync: track a repository url and sync against its latest version
- #24541: Ksync: verify command to report files with missing objects
- #24539: Platform: Repository metadata and missing object checks for sync troubleshooting
- #24530: Platform: Improve the Developer agent's reporting index discovery and field guidance
- #24529: Platform: Clarify search results paging requirements and improve error messages
- #24526: Platform: Make KSync ignore common generated folders by default and improve Dev tools access
- #24521: Platform: Improve anomaly and fraud activity reporting
- #24520: Ksync: Show live sync status in the desktop tray or menu bar
- #24519: Platform: Force local changes to win during KSync syncs
- #24512: Platform: Developer Agent support for building query tables
- #24508: Agents: AI tools for manageing websites
- #24506: Platform: Add OpenAI GPT6 model
- #24467: Agents cannot create a new app, lib, theme or recipe repository
- #24465: KProducts: Add "Update only" mode to the products and SKU table uploaders
- #24450: Platform: Faster blob uploads and directory hashing
- #24441: KReporting: Show which reports are watched by anomaly detectors
- #24440: KReporting: Execute reporting index queries with row results
- #24438: Developer IDE: host visual page editing, with the canvas rendering the real page
- #24431: Platform: Let agents see installed apps, search available apps, and manage app access with consent
- #24428: Platform: Page authoring agents can identify missing capabilities instead of improvising the wrong content
- #24426: Platform: Find websites in admin search by custom domain
- #24412: Platform: Extend specialist agents with domain knowledge
- #24410: Platform: Add hand-authored component settings for key components so agent-built pages use the right options
- #24408: Platform: Faster search across repositories with line snippets and repository names
- #24404: Platform: Improve page authoring, navigation, and theme editing for agents and site admins
- #24403: KMarketingDevelopmentFunds: Improved MDF admin visibility and claim handling
- #24402: Platform: Improve admin agent investigations with better structured tool use and safer consent handling
- #24401: Reporting: Agent investigates anomaly alarms and reports the likely cause
- #24400: KProducts: Agents catalog management tools
- #24399: Rewards: Improve points support with transcript, transaction and expiry tools for people and organisations
- #24398: Extend the promotion mechanic API so agents can create and update mechanics
- #24397: Platform: Generate downloadable PDFs from structured agent documents
- #24387: KPromotions: Manage points buckets and promotions with AI tools
- #24270: Platform: Make debug session performance data optional
- #24259: KBlogs: Improve blog article search and draft handling
- #24236: Platform: Score and block high-risk operations via new fraud detection system
- #24225: Platform: Local ES9 startup now handles root-owned data directories correctly
- #24212: KOAuth2: Allow parent-org and central login users to authenticate with OAuth2 tokens
- #24134: Platform: Improve agent reasoning and tool selection for more reliable responses
- #24096: AWS: Improve domain registration address handling for UK users
- #24068: KGameOfChance: Support selecting a single prize SKU
- #23952: KConfirmDetails: Users can update their localisation from the confirmation form
- #18744: Blogs: Export articles from a blog
- #854: Platform: New Developer IDE for editing a repository branch, with its extension points visible alongside the files
Bug fixes:
- #24540: Ksync: sync outside a checkout dies on a null url, and the password prompt names the wrong thing
- #24536: Platform: Fix article preview to avoid a 500 error
- #24531: Platform: Show when repository results come from a disabled app
- #24528: Platform: Developer tools now surface the account queries repository more clearly
- #24516: KOAuth2: OAuth2 responses now return the correct status codes and headers
- #24515: Platform: Badge image uploads and URLs with empty query parameters no longer fail with a server error
- #24500: KSalesData: Customise sales tables with more columns and labels - p2
- #24496: Translations admin page: Remove button now appears in the correct place
- #24495: Email: Fix send email form validation alignment
- #24491: KJourneys: Prevent adding a duplicate participant to a multi-valued lead role
- #24489: KJourneys: Prevent duplicate lead roles from overwriting existing roles
- #24488: Platform: JS POST handlers can return the correct HTTP status and body
- #24486: Platform: Fix blank label on the Generate Image button in the editor
- #24469: photo component discards alt text and emits height="0" on the default responsive path
- #24466: salesDataClaimer: Submit AI Scanned Claim tool fails to create claims when Duplicate File Check is enabled
- #24430: Content Library: Avoid false failures when generating website images
- #24429: Platform: Generate website images using the default size when none is provided
- #24424: Platform: IDP rule with non-boolean condition causes ClassCastException, 500 on every request
- #24422: KRaffle: Create and update raffle promotions successfully
- #24416: KReporting: Restrict reporting pages to authorised users and read-only access for viewers
- #24393: KReporting: Prevent proceeding without a valid query and show a clear error
- #24388: Platform: Content editor forms are disabled except the component form
- #24276: Platform: Age formatting now rounds to the nearest year
- #24275: KReporting: Metric titles are now saved correctly
- #24274: KSalesData: New sales data records now appear immediately in the list
- #24271: KJourneys: Allow friendly names in the From address
- #24269: KCommerce2: Checkout now considers all eligible organisations for points purchases
- #24267: Platform: Team selector can fail with a security violation when org IDs clash
- #24265: KReporting: Metric IDs now display correctly under metric names
- #24255: Platform: Fix file comparison errors in the admin file viewer
- #24253: Platform: Dashboard no longer fails with a 500 error for Learning Admin users
- #24249: KVoucher: Fixed the voucher types breadcrumb link to return to the list page
- #24244: KLeadman: Make admin lead creation easier to search and fill in
- #24243: KLeadman: Fix lead list counts, task due dates and search refresh
- #24242: KPromotions: Promotion thumbnail updates and removal now refresh correctly
- #24241: KPromotions: Fix enrolment promotion setup and review display
- #24237: Platform: Account IDP defaults no longer include CSRF protection rules
- #24235: Platform: Date fields now save correctly for administrators with a different locale
- #24224: Platform: Forum notifications now work on new sites and lead contact details show correctly
- #24217: KMarketingDevelopmentFunds: Remove internal review name from plan status and make the approval date clearer
- #24216: KMarketingDevelopmentFunds: Preserve the created date when a plan is approved
- #24183: KJourneys: Fix lead transitions details tab loading and pagination
- #24172: Kademi: Fix duplicate success message when removing Read-only login-as groups
- #24169: Platform: fix crossOrigin warning and _analyst POST failing with CSRF/CORS enforcement enabled (videojs-lib)
- #24111: Kademi AWS Admin: Purchased domains appear automatically after registration completes
- #24064: Platform: Audit records export now works for all entity types
- #24019: KPromotions: Participant search now suggests matching results on the Manage Points page
- #23936: Admin console: New org now filters correctly in search results
- #23849: Platform: Retry transient OpenAI errors and fix applying generated AI images in editors
- #23728: KProducts: Product searches now work for categories with ampersands
- #22855: Platform: Show a clearer message when roles are not ready during group creation in solution builders
- #20513: Platform: Validation messages stay close to the field when helper text is shown
- #19554: Platform: Asset CDN redirection should not be performed if the website does not have CDN enabled
Performance:
- #24406: Admin: Search repositories faster and return complete results
- #24099: Card Funding: Open program pages without freezing
UI/UX Improvements:
- #24532: Reward Store: Fix wording on the points buckets banner
- #24524: Platform: Update the introduction text for AI content type restrictions
- #24493: Platform: Validation messages no longer shift form fields
- #24487: KJourneys: Clear leftover validation errors when reopening lead roles modal
- #24436: Platform: Show website creation progress while the new site is being created
- #24277: Platform: Admin menu search now finds hidden items
- #24257: Platform: Closing the menu now clears the search box
- #24251: Platform: Improve text component settings layout and size controls
- #24230: Platform: expose websocket, SSE and MCP controller mappings as lists so dev tools can show them
- #24226: KIntegration: Improve guidance on the integration services page when no website is available
- #24171: Pending membership applications now show full names on the website view
- #24166: KRaffle: Improve the raffle entry page layout on mobile
- #24144: Platform: Show menu visibility rules at a glance in the editor
- #24120: Sales Data Claimer: Claim access now appears under Power users
- #24073: KSurvey: Improved survey administration and results access
- #23861: Sales Performance Solution: Recognition leaderboard now shows a default preview in the editor
- #23819: Kademi Vouchers: Keep voucher status filters when changing page size and keep pagination in the list area
- #23781: Contact Us: Fix contact requests pagination and page size retention
- #22663: KGameOfChance: Customise win and lose message text for each game instance
- #22451: Platform: Move the delete and tools actions to the table header in organisation and user lists
Security Updates:
- #24447: Platform: Make the API key for the phone number verification service private
- #24420: Platform: Custom report column expressions: arbitrary MVEL accepted at READ_CONTENT and run outside UntrustedCodeManager
- #24419: Platform: Prevent query parameters from triggering unsafe template evaluation
- #24266: Platform: Self-service temporary IP whitelists for websites
- #24261: Platform: Add a valid CSRF token condition to IDP rules
- #24260: IDP: New knownIps and dateRange expressions for defining IP sets and time-bounded rules
- #24258: Platform: System provided index queries should provide access to appropriate read roles
- #24248: Dependabot: fix nanoid CVE-2026-67213 — 3.3.18 in keditor-lib build tooling, 6.0.1 in nanoid-lib
- #24208: KSignup: Prevent signing up to gain rewards without completing the required check
- #24205: Platform: Group membership deletions are now correctly limited to the selected group
- #24202: Platform: Restrict forum post actions to the current site
- #24199: KPartnerAssistant2: Prevent users from opening or changing another user's agent workflow
- #24197: Admin-lib security hardening for destructive admin actions, plus profile warning fix
- #24196: user-lib: Enforce server-side ownership checks on profile avatar and org address writes
- #24194: Platform: Improve admin workflow visibility and developer tools access
Documentation:
- #24278: Platform: Improve API reference documentation quality and navigation
- #24250: Document - Anomaly Detectors: How to Catch Unusual Metric Changes Before They Become Problems
- #21431: Kwarranty: Update guide when editing the email content with Kcode.
Other changes:
- #24415: Platform: Improve KSync checkout speed and prevent bloom filter timeouts