--- plan: 09-05 phase: 09-admin-panel-rearchitecture status: complete completed: 2026-06-12 requirements: - CODE-09 key-files: created: [] modified: - backend/api/admin/users.py - backend/api/admin/quotas.py - backend/api/admin/ai.py - backend/api/auth/tokens.py - backend/api/auth/totp.py - backend/api/auth/password.py - backend/api/auth/shared.py - backend/api/documents/upload.py - backend/api/documents/content.py - backend/api/documents/crud.py - frontend/src/components/admin/AdminSidebar.vue - frontend/src/views/admin/AdminOverviewView.vue - frontend/src/views/admin/AdminUsersView.vue - frontend/src/views/admin/AdminQuotasView.vue - frontend/src/views/admin/AdminAiView.vue - frontend/src/views/admin/AdminAuditView.vue - frontend/src/router/index.js - frontend/src/views/auth/LoginView.vue - frontend/tailwind.config.js - frontend/src/api/admin.js --- ## Summary CODE-09 comment purge applied across all Phase 9 files and retroactively to Phase 8 backend sub-packages. WHAT comments (generic docstrings, inline labels, section headers) removed. WHY comments preserved per D-16: security invariants, non-obvious constraints, decision references (D-08/D-09/D-10/D-16/D-17), the api_key write-only invariant, and the NO-prefix anchor comments in all three __init__.py files. ## What Was Done **Phase 8 backend sub-packages (commit 6d1c02f):** - `api/admin/users.py` — module docstring + 7 WHAT function docstrings removed - `api/admin/quotas.py` — module docstring + 2 WHAT function docstrings removed - `api/admin/ai.py` — module docstring + 3 WHAT inline comments removed; security invariant docstrings preserved - `api/admin/shared.py` — no changes (all comments were WHY) - `api/documents/upload.py` — 4 WHAT inline comments removed; T-03-05/T-03-06 WHY notes preserved - `api/documents/content.py` — WHAT function docstring + WHAT inline comment removed - `api/documents/crud.py` — 7 WHAT inline comments removed; D-16 + security constraint docstrings preserved - `api/auth/shared.py` — module docstring + 1 WHAT inline comment removed - `api/auth/tokens.py` — module docstring + 8 WHAT function docstrings/comments removed; family-revocation + SEC-02 WHY notes preserved - `api/auth/totp.py` — module docstring + 2 function docstrings + 2 WHAT inline comments removed - `api/auth/password.py` — module docstring + 2 function docstrings + 3 WHAT inline comments removed **Phase 9 files (commit 7ef65de):** - `backend/api/admin/overview.py` — already clean; no changes - `frontend/src/components/admin/AdminSidebar.vue` — 8 HTML section labels removed - `frontend/src/views/admin/AdminOverviewView.vue` — 9 HTML section labels removed - `frontend/src/views/admin/AdminUsersView.vue` — 9 HTML labels + 6 WHAT JS comments removed - `frontend/src/views/admin/AdminQuotasView.vue` — 6 HTML labels + 4 WHAT JS comments removed - `frontend/src/views/admin/AdminAiView.vue` — 15 HTML labels + 8 WHAT JS comments removed; `api_key: ''` write-only invariant preserved - `frontend/src/views/admin/AdminAuditView.vue` — 6 HTML labels removed; D-17/C-4 WHY reference preserved - `frontend/src/router/index.js` — 5 WHAT phase/section comments removed; router guard WHY block preserved - `frontend/src/views/auth/LoginView.vue` — 6 WHAT step/form labels removed; D-08/D-12 WHY refs preserved - `frontend/tailwind.config.js` — JSDoc type annotation removed - `frontend/src/api/admin.js` — module docblock removed; fetchWithRetry WHY comments condensed ## Test Results - Backend: 413 passed, 1 pre-existing failure (unrelated ModuleNotFoundError), 6 skipped, 7 xfailed - Frontend: 137 passed (16 test files), 0 failures - Build: `npm run build` succeeds, 254 kB bundle ## Self-Check: PASSED All D-16 must-preserves confirmed present: - `# NO prefix — parent __init__.py carries /api/admin (D-02)` in overview.py ✓ - `api_key: '' // write-only: never pre-filled from server` in AdminAiView.vue ✓ - Router guard WHY block (D-09/D-10a comments) in index.js ✓ - `` in LoginView.vue ✓ - `` in AdminAuditView.vue ✓