Sprint 29, scoped to what wasn't already covered by concurrent work in
this session.
- dead code check: grepped console.log/console.debug/console.warn/
debugger/TODO/FIXME across features/admin/** - none found. tsc
--noUnusedLocals --noUnusedParameters over features/admin/** - clean,
no dangling imports/params.
- verified tsc --noEmit, ng build, arch:check:boundaries, and
arch:check:cycles all pass against the current working tree
- added CHANGELOG.md and RELEASE-NOTES.md at repo root summarizing
Sprints 20-28
Translation validation is deliberately not duplicated here - the ~178
missing adminXxx.* i18n keys are already logged in docs/KNOWN-ISSUES.md
and being addressed there. No lint script exists in package.json, so a
lint pass isn't applicable.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>