- Remove the super-admin one-time migration from browser local settings into backend AI and speech settings.
- Delete the migration-specific SystemSettings unit test that no longer matches the desired behavior.
- Restore feature, module, testing, and progress docs so settings secrets are documented as backend-managed only.
- Add a super-admin-only settings merge that copies legacy local AI provider keys into an empty backend settings record.
- Add matching migration for legacy Xunfei APPID, APIKey, and APISecret without overwriting existing backend secrets.
- Cover the migration and secret-preservation behavior with SystemSettings unit tests.
- Update feature, module, progress, and testing docs for the settings migration behavior.
- Add Auth Context route role guards so doctors cannot directly enter template management, user management, or audit logs.
- Add Audit Logs page, sidebar entry, frontend audit API client, and API client test.
- Add backend audit log query endpoint with super/admin visibility rules and query filtering.
- Extend PostgreSQL integration tests to cover audit log query permissions.
- Move Playwright E2E away from localStorage seed data to real backend API login and seed helpers.
- Add E2E coverage for route guards and audit log visibility.
- Run Playwright backend on port 3100 and proxy Vite API requests there to avoid local port conflicts.
- Make server:dev use the compiled NestJS server path, avoiding tsx parameter-property injection issues.
- Update README, AGENTS, feature, testing, security, deployment, progress, API, backendization, and auth/user module docs.