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.
- on hidden: sends one heartbeat (prefers beacon), stops interval heartbeat;
- 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.
- 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
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