Version 9.1.255 (28 September 2026) Performance Management Added bustable methods to queryable cache attributes (#155589, #155592) Problem Missing bustable methods; cached values were being returned  Solution Added bustable methods to clear cached values Implement event publish after loading the bulk action (#155511) Problem When loading a bulk action, the action is never processed. Solution This change makes a small but important update to the bulk action event-handling process. After adding and saving the integration event, it now ensures that all pending events are published through the event bus. Added Kpi Name to evaluations  (#155219) Problem KPI name was not being rendered on the frontend, as well as a request to change the translation and remove the default KPI translation above each rating scale  Solution Added kpi name rendering, changed the translation and removed the removal of kpi translation Fix review document handler logger dependencies (#155503) Problem Opening Portfolio of Evidence files from KPA or KPI rows returns "Invalid identifiers" because the review-file handler cannot resolve its logger dependency. Solution Use the registered generic logger in the affected review-file handlers and add dependency-injection coverage for all review-file query handlers. Truncate Check-Ins label with tooltip when translation is long (#155250) Problem On the performance dashboards, the "Check-Ins" label (on the check-ins dial, the check-ins count badge, and the "Check-Ins & Ratings" accordion header) was previously changed to wrap onto multiple lines when the translation is long. Wrapping looked untidy inside the small circular dials and badges.  Solution Instead of wrapping, the label is now shortened with an ellipsis (…) when it does not fit, and hovering it shows the full text in a tooltip. Short labels look exactly as before.  Lock KPIs and add functionality to rate KPIs as an Admin (#153180) New functionality: A new Performance Management permission is available  Rate KPIs  When creating a template, the following options are available Lock editing for person Lock editing for manager Lock rating for person Lock rating for manager For an admin with the permission, allow the option to be selected under the module-specific functions menu A new page is available where a KPI can be selected and rated Performance Management Feedback Report (#150927) New functionality Add a column to the Score Label Mapping to add text for achieving higher performance Add a toggle to enable the Feedback Report Show the report for the end-user People Management Allow documents to be previewed and updated (#152813) New functionality Allow editing of uploaded documents Allow previewing of documents without having to download them Documents can be previewed It converts the document to PDF and then uses the normal PDF viewer to preview it (same one used on auto doc) Document types which can be previewed: Word, Excel, PDF, text files, and standard images Change Merge and Delete permission translations to title case (#155330) Problem Some People management role permissions are not in title case Solution Change Merge and Delete permission translations to title case. User Activity Tracker (#152090) New functionality This includes activity on V8 pages and V9 pages. The HR automation pages in the Blazor project are not yet tracked. In order to make this more useful and assist with testing, I have added user activity under audit information of the user. Only the latest 200 activity records will be returned on the page. These are the business rules of the tracker It only starts tracking after the user stays on the page for 5 seconds (startDelay). Once started, it sends: start once, heartbeat every 5 minutes by default, end when tracking stops. It tracks inactivity and will suspend after 20 minutes of no interaction. If user activity returns after inactivity suspension, it resumes with the same sessionId and sends a new start. It does not end just because the tab becomes hidden: on hidden: sends one heartbeat (prefers beacon), stops interval heartbeat; on visible: sends heartbeat and restarts heartbeat interval. It ends permanently on page lifecycle exits (pagehide, beforeunload) and avoids duplicate permanent end events. It listens to activity events: mousemove, mousedown, keydown, click, touchstart, and scroll. heartbeat and end payloads are minimal (session + last seen + timestamp); start includes page/user context. Requests go to /App/ActivityTracker endpoints by default (StartTracker, Heartbeat, EndTracker), with base URL auto-derived if needed. For reliability, it prefers navigator.sendBeacon for exit/background sends, else falls back to fetch with keepalive: true. It includes an anti-forgery token (__RequestVerificationToken) if present, both in the header and payload. Tracking errors are swallowed so user experience is not interrupted. Add Person Profile Image Setting (#153139) New functionality Enable or disable the ability for users to upload a profile picture, so that my company can prevent users from displaying a profile image if required Configure permission settings for updating profile pictures, so that I can decide whether employees or only administrators are allowed to change profile pictures System Access Correct external menu routing for additional services general and deep link types (#155499) Problem General external pages return an error Deep link external pages do not correctly authenticate  Solution Updates menu URL generation to route AdditionalService deep links through encoded redirect paths, and adds explicit handling for MenuType.General to support external redirect/service links more consistently. It also broadens ruleset menu previews to include all external menu items, not only those missing an external code. Ruleset Management Resolve "Default Text" snack when toggling screen capture tool (#155038) Problem "Default Text" snack when toggling screen capture tool Solution Resolve "Default Text" snack when toggling screen capture tool. response is the raw JSON body from the server ({ Message, RedirectUrl? }), not a plain string. When a RedirectUrl is present, the global AJAX handler reloads the page and shows the message afterwards. Passing the object straight to snack() would render the snackbar library's "Default Text" placeholder. Data Warehouse Implemented performance improvements within PeopleManagement_ETL (#155300) Problem Performance improvements need to be implemented for PeopleManagement_ETL Solution Added hashrows for accUsers to improve performance Removed Source step for Steps to improve performance/memory usage Report Builder Make the download of the report in Report Builder fire-and-forget; resolve the problem with the first load that does not download (#146300) Problem Large downloads can take a few minutes, locking the system. Download fails with the first page load. Solution Make the download of a report in Report Builder fire-and-forget; resolve the problem with the first load that does not download Integrations: Bulk Additional Service Imports: DWH (#140632) New functionality A new section under Integrations is available Data Warehouse refresh All the sources are available Replace jQuery contextMenu with custom context menu (#152615) Problem With the upgrade of jQuery to v4.0.0, a bunch of previously deprecated $.api functions have been removed Eg. $.isFunction & $.isArray Some plugins still make use of these and are now outdated; one of them, jquery-contextMenu, does not have an updated version and is not compatible with jQuery 4 Solution Replace the contextMenu functionality on ReportBuilder with a custom context menu (Bootstrap Dropdown / Alternative?) Imports Add company pay frequency master data (#154755) New functionality A new field is added to People Management and the PaySpace push Identity and Authorisation Strengthen permission checks on Identity user creation (#152824) Problem A change was made to remove the Auth role, as there is a new people group role to appoint new people Solution Added a new policy to validate and ensure the current user can create a new identity user Registration - Hide the password field during registration (#152969) System Access tab - Password and Confirm Password slider Both Always Required and Visible to be ON or OFF together (when one is On, so is the other and the same when Off) Password field to be removed from Registration field Email should be triggered, and the request should show on Registrations | Awaiting Approval User who is approver needs the role/permissions to do so