# Backend Status — v0.39.4-dev Consolidated

## Production backend binding completed to date
- Authentication, password security and role/object permission foundation
- Employee master and dynamic HR data
- Attendance, correction requests and ZKTeco FO-M1 device schema/mapping
- Leave, Employee Request Center, tasks, decisions and notifications
- Salary assignment, OT, Bonus, Deduction and Payroll workflow
- Loan/Advance sanction, disbursement, installment schedule and payroll recovery
- Exit/Clearance and final settlement workflow
- Payslip and operational report server-side exports
- Audit events, security readiness and guarded PostgreSQL backup/restore commands
- Local Runtime installation / first-run setup package

## v0.38 UAT remediation + smoke-test pack
- Windows/Linux smoke-test runner
- Migration state and model-drift checks
- Core automated test runner
- 35 practical end-to-end UAT scenarios
- Bug log template
- Parallel payroll reconciliation template
- ZKTeco FO-M1 live-punch test scenarios
- Smoke result log for support/bug diagnosis

## Still requires execution on the Local UAT PC
- Install dependencies in the real PC environment
- Generate/execute initial migration baseline and preserve it after UAT stabilization
- Run automated smoke test against the real local runtime
- Complete practical team UAT
- Connect/test the physical ZKTeco FO-M1
- Prove PostgreSQL backup → verify → restore
- Run parallel payroll and reconcile results

## Next checkpoint
Practical Local PC installation and smoke-test execution, followed by the bug-fix/UAT cycle.

## v0.39.4-dev Consolidated Critical remediation status
- All 18 P0 findings now have source-level implementation evidence and are covered by `tools/p0_static_verify.py`.
- Formal P0 closure is intentionally **not** claimed until Local Django/PostgreSQL UAT passes.
- QA-002 additionally requires the physical ZKTeco FO-M1 test.
- Attendance close now fingerprints payroll calculations; reopen/re-finalize invalidates stale Draft payroll review.
- Tenant-aware Django Admin guards now include workflow models and foreign-key choices.
- Effective/current Company Policy rows are immutable in normal business UI; policy change is by new effective-dated version.
