v15.63.1

frappe/hrmsv15.63.1Jul 21, 2026by frappe-pr-bot

AI Summary

Focuses on payroll logic fixes, ensuring salary components retain default amounts based on working periods, and improves performance for employee utilization reports.

Key Highlights

  • Fixes Salary Slip formulas to use full working period amounts despite absences.
  • Optimizes 'Employee Hours Utilization' report performance.
  • Fixes 'Total Expense Claim' field in Project to include line items.

Full Release Notes

## Bug Fixes
* Updates **Salary Slip** so formula-based salary components keep their default amount based on the full working period, even when leave without pay or absences lower payable days. (https://github.com/frappe/hrms/pull/4888)
* When push notifications are not configured, the app now skips push notification setup and avoids the related error message. (https://github.com/frappe/hrms/pull/4921)
* The image build now passes the list of apps as a secret file, so the published images include the apps selected for that build. (https://github.com/frappe/hrms/pull/4935)
* Cancelled **Shift Assignment** records are marked as Inactive. The Roster view creates a new **Shift Assignment** for the next date range instead of changing the cancelled one. (https://github.com/frappe/hrms/pull/4924)
* Makes _Payable Account_ required in **Expense Claim** when the claim is not marked as paid, so the form asks for it before the claim is submitted. (https://github.com/frappe/hrms/pull/4939)
* The check-in button stays unavailable while the last check-in loads, so it does not default to `IN` before the current status is shown. (https://github.com/frappe/hrms/pull/4953)
* Payroll formulas no longer accept `lambda` expressions. (https://github.com/frappe/hrms/pull/4956)
* The _Total Expense Claim (via Expense Claims)_ field in **Project** now includes amounts from expense line items assigned to the project, whether the project is set on the main **Expense Claim** or on a line item. (https://github.com/frappe/hrms/pull/4876)

## Performance Improvements
* The "Employee Hours Utilization Based on Timesheet" report now looks up each employee’s name and department in a single step instead of two separate lookups. This can make it quicker to generate for reports with many employees. (https://github.com/frappe/hrms/pull/4910)

**Authors**: @nareshkannasln, @pratheep-bit, @tank-bohr, @iamkhanraheel, @ervishnucs, @ankush, @DanielRadlAMR
**Reviewers**: @asmitahase, @deepeshgarg007

<details>
<summary>AI content</summary>

 For these release notes, we used an LLM (OpenAI gpt-5.4-mini) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt [here](https://github.com/barredterra/pretty_release_notes). 

Changes with the following labels were excluded:
- skip-release-notes

Changes with the following types were excluded:
- build
 - chore
 - refactor
 - docs
 - test
 - style
 - ci

</details>