feat: audit log integration sweep + cost tracker URL fix + audit log admin UI
- Fix cost tracker dashboard URL (cost.oliver.agency → optical-dev.oliver.solutions/cost-tracker/analytics)
in UserList, QCDetail, FinalDetail; centralise into src/lib/costTracker.ts
- Wire audit logging across backend routes (was 1 call site, now covers all key events):
· routes_auth: LOGIN_SUCCESS/FAILURE for local + MS SSO, LOGOUT
· routes_files: FILE_UPLOAD on signed URL generation
· routes_jobs: JOB_CREATE, JOB_APPROVE, JOB_REJECT, JOB_STATUS_CHANGE, JOB_DELETE, VTT_EDIT
· routes_admin: USER_CREATE, USER_UPDATE, USER_ROLE_CHANGE, USER_DEACTIVATE
- Add Audit Log admin UI page (/admin/audit-log):
· Three tabs: All Events (paginated, server-side filters), Security Events, User Activity
· Filters: action group, severity, success/failure, free-text search
· Click-to-expand row shows IP, request ID, resource, details JSON
· Wired into App.tsx (RoleGate: production + admin) and sidebar nav
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>