Version 9.1.189 (13 October 2025) Tenant Management Tenant Subscriptions (#137663) Problem When the Core package is included in a Pay as you Use subscription (included by default), Standard Reports are excluded on renewal Solution Include Standard Reports in the Core subscription of Pay-as-you-Use clients Notifications Check-In deadline for Final Review (#137902) Problem Terminated users are included in the recipient list for PM deadline notifications. Solution Exclude users who do not have an active appointment from being included in the results of contracts that are approaching their deadline. Training Intervention import does not show progress on the Imports tab (#134550) Problem Integration Imports are not logged on the Notification Imports view: Cost Descriptions  Training Interventions  Pathway Groups  Training Intervention Costs  Solution Included a logging mechanism for these imports on the Learning Management Module Ruleset email configuration (#136875) Problem Email from address is case sensitive Solution A small update was made to the email validation logic in the `EmailSetupViewModel`. The regular expression previously used for validating email addresses has been replaced with the built-in `[EmailAddress]` attribute, which provides more robust and standardised validation. Replaced the custom regular expression for email validation with the `[EmailAddress]` attribute on the `FromEmail` property in `EmailSetupViewModel.cs` for improved accuracy and maintainability. Identity and Authorisation Tenant Creation Stuck (#137965) Problem Tenant and Ruleset Creation does not complete and remains stuck on creating administrator users.   Solution Fix issue with user roles copy breaking due to having no context when calling anonymously during tenant creation Learning Management Assignment Management: Assessment Score to Pull to Marksheet (#137841) Problem When a learner's score on the Marksheet has been captured and overridden, the assignment score is added additionally to the response, resulting in 2 scores being returned. Solution Corrected the conditional check determining whether to use the score imported from the assignment or the overridden score. Data Warehouse Training Matrix - Refresh (#137719) Issue 1: Problem Not all the lmEmployeeTrainingRequirementsMatrix are being added due to the date filter within the script  Solution Adjusted the source script to return all non-deleted Training Requirements Matrix within DataSource EmployeeTrainingRequirementsMatrix Issue 2: Problem The source query for EmployeeTrainingRequirementsMatrix will not return all the data due to the Date filter logic  Solution Adjusted source query for lmEmployeeTrainingRequirementsMatrix to return TrainingRequirementsMatrix data for the current year Request for access rights matrix (#137643) Problem New Datasource is required to store UserPermissions data Solution Added new Datasource jpUserPermissions People Management Save button disabled and Show default to be selected on open when ruleset does not have its own Virtual Tour (#137844) Problem A check is done, which does not allow the user to save a virtual tour if there are no slides added, which can lead to the user not selecting DO not Show virtual tour and save Solution Remove the logic check done for slide count and change the visibility default selection to show default, as this is the default rule. More descriptive error to be shown when saving a Tour without slide details (#137846) Problem When adding a new slide with no content and saving, in the backend, this throws an exception as the body HTML is needed, but it is not a descriptive error  Solution Implement logic check on the controller with the correct text error being returned Tour shows after having set it to not show again (#137801) Problem When saving a virtual tour from the culture selection, it takes the user's signed-in locale instead of the selected locale Solution Correct the locale that is used to save the virtual tour Add employee address & Work location (#137612) Problem The client wants to add the employee's address and physical work location to the placeholders so that it can be used in the auto-docs contract setup. Currently, they have to type it in manually for each employee Solution Implement additional placeholders relating to user address details Theme Management Hanging banners not shown correctly (#137802) Problem When the primary colour is of a very light hue, the resulting tertiary colour exceeds 100% lightness and gets converted to white (#ffffff).  Solution Add handling to ensure that the lightness/desaturation never exceeds 100% V9 Portion Performance Management Text Sanitation Changes '&' to '&' (#132912) Problem On the review setup template, the names were still not sanitised  Solution Add the new tag helper to sanitise text Translations Language selection duplicated on drop-down (#135774) Problem Language options are shown in duplicate on the Login screen.  Solution Remove duplicate language options from the language list returned from cache  Date picker format remains on English (SA) when changing to English (US) (#135930) Problem Date formats in localstorage was not updated immediately after changing language and logging in. This happened because a cookie was used to determine whether the date format was changed and if it should be updated in the local storage. But the cookie was set in the app controller, just before the user is authenticated, meaning it could not retrieve the correct language from the user claim (as it does not have access to the claim yet as the user is not authenticated), resulting in the fallback language being used, resulting in the incorrect date formats being calculated. Solution Rather set the date format cookie in the home controller (where the user is authenticated) and update the local storage directly from the cookie value (not necessary to retrieve manually anymore) if the cookie values was changed. Auto-Doc Username not pulling through (#137664) Problem Username placeholders in document templates display incorrect date values instead of the actual numeric usernames. This probably affects several places in the codebase because the cause is a commonly used method Solution Added a conditional check to respect the `parseOADates` parameter in the `ToSignifyDateTime()` method.