# Changelog — 2026-07-03

- 23:58 | dev | fix(finance): stabilise payroll proxy + store (Phase 0). De-duplicate payroll routes (HR controller is now source of truth; `/api/finance/payroll/*` proxies to `/api/hr/payroll-runs` and `/api/hr/payslips`). Fix `client/src/store/finance.ts` to use the single `api` axios instance, drop `/api/` prefixes, add TypeScript types (`PayrollRun`, `Payslip`), loading/error state, and align mutators with HR (`calculatePayroll`, `payPayrollRun`, `cancelPayrollRun`). Drop the dead `expenses` slice (Phase 2 work). Allow `bursar`/`accountant` on HR payroll routes and seed `bursar@school.com / bursar123` demo account so the Finance portal proxy works for the Bursar role. Branch `feature/stabilise-finance` from `dev`. See `.harness/plans/hr-finance-fiscalisation.md` §9.