# Ops Log Diagnostics Roadmap

현재 목표는 관리자 대시보드와 클라이언트 로그 진단 흐름을 안정화하고, 다음 문제를 더 빨리 규명할 수 있게 만드는 것이다.

## Current State

- 관리자 대시보드 렌더 크래시는 해결됨.
- 브라우저 오류는 `client-logs`로 서버에 전송됨.
- 관리자에서 최근 로그, 그룹 요약, 날짜 범위, source/route/message 필터를 볼 수 있음.
- 반복 오류 그룹을 클릭하면 해당 로그로 필터링됨.
- 대시보드에서 로그 진단 화면으로 바로 이동할 수 있음.

## Next Priorities

| 순위 | 작업 | 이유 |
| --- | --- | --- |
| 1 | `client-logs` 요약에 top sources / top routes 카드 고정 노출 | 재발 원인을 가장 빠르게 좁힐 수 있음 |
| 2 | 그룹 상세의 선택 상태 표시 | 어떤 그룹을 눌렀는지 사용자 혼동을 줄임 |
| 3 | 날짜 입력을 ISO 문자열/현지 시간으로 명확히 변환 | 필터 입력의 오해를 줄임 |
| 4 | 로그를 파일 파싱에서 구조화 저장으로 전환 검토 | 검색/통계 정확도를 높임 |
| 5 | 운영 대시보드에 최신 오류 개수와 최근 source 카드 고정 | 로그인 직후 문제 감지가 쉬워짐 |

## Guardrails

- 관리자 진단은 `AdminOnly`만 노출한다.
- 브라우저 오류 수집은 사용자 흐름을 막지 않는다.
- 중복 로그는 억제하고, 재시도 루프를 만들지 않는다.
- 하위 경로 `/admin` 기준을 유지한다.
- `App.razor`에 HTML 호스트와 `blazor.webassembly.js`를 다시 넣지 않는다.

## Verification

다음 작업은 항상 이 순서로 검증한다.

1. `dotnet build src/TaxBaik.Web/TaxBaik.Web.csproj -c Debug`
2. `node scripts/route_lint.mjs`
3. 로컬 브라우저에서 `/admin/login` -> `/admin/dashboard`
4. `/admin/client-logs`에서 요약, 그룹, 필터가 보이는지 확인
