- Extract AI region scanning into a reusable utility with unit coverage.
- Refresh AI region dropdown state after drafts, reports, default templates, and selected templates write HTML into the editor.
- Keep the existing MutationObserver path for later DOM edits and inserted AI regions.
- Add E2E coverage for existing template AI regions appearing on initial report editor load.
- Update README, AGENTS, report editor, progress, and testing docs for AI region synchronization behavior.
- Track report editor AI regions in React state instead of only scanning contentEditable DOM during render.
- Observe editor AI region mutations and refresh the AI writing target dropdown without requiring page navigation or refresh.
- Select newly inserted AI regions immediately after insertion and keep a live DOM fallback for generation.
- Harden AI region insertion so it still appends the region if execCommand has no active editor selection.
- Escape AI region names before injecting template HTML and add an accessible label for the insert button.
- Add Playwright coverage for inserting an AI region and seeing it immediately in the AI writing dropdown.
- Update report editor, feature, progress, testing, and AGENTS documentation for AI region synchronization.
- Update TemplateManage save flows to use the current in-memory template list instead of stale localStorage as the source of truth.
- Merge current templates back into the compatibility cache so newly created backend templates are not dropped on content save.
- Add an accessible label for the new-template button to support reliable E2E coverage.
- Add template list merge unit tests covering stale-cache replacement and newly created templates.
- Add Playwright coverage for creating a template, saving template content, and confirming it remains visible and persisted.
- Update feature, progress, testing, and AGENTS documentation for the template management fix.
- 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.