main
modified: eslint.config.mjs modified: next.config.ts new file: src/__tests__/admin-api.test.ts modified: src/__tests__/api-routes-integration.test.ts modified: src/__tests__/db-admin.test.ts new file: src/__tests__/dump-adapted.tmp.test.ts new file: src/__tests__/dump-tasks.tmp.test.ts new file: src/__tests__/dump-tasks2.tmp.test.ts modified: src/__tests__/export-utils.test.ts modified: src/__tests__/student-dashboard.test.tsx new file: src/__tests__/task-content-audit.test.ts modified: src/__tests__/teacher-api.test.ts modified: src/app/(main)/app/page.tsx modified: src/app/api/admin/analytics/student/[id]/academic-summary/route.ts modified: src/app/api/admin/analytics/student/[id]/route.ts modified: src/app/api/admin/analytics/student/[id]/streak/route.ts modified: src/app/api/admin/analytics/student/[id]/timeline/route.ts modified: src/app/api/admin/deadlines/[id]/route.ts modified: src/app/api/admin/users/[id]/ban/route.ts modified: src/app/api/admin/users/[id]/restore/route.ts modified: src/app/api/admin/users/[id]/role/route.ts modified: src/app/api/admin/users/[id]/route.ts modified: src/app/api/admin/users/[id]/unban/route.ts modified: src/app/api/performance/analytics/route.ts modified: src/app/api/performance/route.ts modified: src/app/api/sql-performance/route.ts modified: src/app/api/sql/explain/route.ts modified: src/app/api/sql/route.ts modified: src/app/api/teacher/groups/[id]/deadlines/route.ts modified: src/app/api/teacher/groups/[id]/members/route.ts modified: src/app/api/teacher/groups/[id]/notify/route.ts modified: src/app/api/teacher/groups/[id]/route.ts modified: src/app/api/teacher/groups/route.ts modified: src/app/api/teacher/student/[id]/activity/route.ts modified: src/app/api/teacher/student/[id]/route.ts modified: src/app/api/web-vitals/analytics/route.ts modified: src/components/action-bar.tsx modified: src/components/admin/analytics/achievement-analytics.tsx modified: src/components/admin/analytics/student-academic-profile.tsx modified: src/components/admin/analytics/student-detail-dialog.tsx modified: src/components/admin/analytics/time-to-complete-chart.tsx modified: src/components/admin/extended-performance-dashboard.tsx modified: src/components/admin/performance-dashboard.tsx modified: src/components/admin/system-health.tsx modified: src/components/er-diagram.tsx modified: src/components/landing-page.tsx modified: src/components/locale-selector.tsx modified: src/components/profile/achievements-grid.tsx modified: src/components/query-history.tsx modified: src/components/task-panel.tsx modified: src/components/teacher/teacher-student-dialog.tsx modified: src/components/theme-toggle.tsx modified: src/components/web-vitals.tsx modified: src/hooks/use-keyboard-shortcuts.ts modified: src/lib/api-auth.ts modified: src/lib/auth-internal.ts modified: src/lib/auth.ts modified: src/lib/db-monitor.ts modified: src/lib/db/analytics.ts deleted: src/lib/db/analytics/activity.ts deleted: src/lib/db/analytics/core.ts new file: src/lib/db/analytics/deadlines.ts new file: src/lib/db/analytics/groups.ts deleted: src/lib/db/analytics/index.ts new file: src/lib/db/analytics/notifications.ts new file: src/lib/db/analytics/reminders.ts deleted: src/lib/db/analytics/student-analytics.ts modified: src/lib/db/progress.ts modified: src/lib/db/recommendations.ts modified: src/lib/db/users.ts modified: src/lib/email.ts modified: src/lib/export-utils.ts modified: src/lib/i18n.ts modified: src/lib/logger.ts modified: src/lib/mongodb-engine.ts modified: src/lib/performance-export.ts modified: src/lib/performance-monitor.ts new file: src/lib/performance-types.ts modified: src/lib/postgresql-adapter.ts modified: src/lib/rate-limit.ts modified: src/lib/sql-engine.ts modified: src/lib/store/gamification-slice.ts modified: src/lib/store/practice-mode-slice.ts modified: src/lib/use-polling.ts modified: src/locales/en.json modified: src/locales/ru.json modified: src/locales/zh.json modified: todo.md modified: tsconfig.json
chore: add Prettier formatter, format entire codebase, integrate with ESLint and lint-staged
feat: add structured JSON logger, API timing wrapper, deep sanitization, request IDs, and enhanced health endpoint
modified: scripts/test.mjs modified: src/__tests__/api-timing.test.ts modified: src/app/(auth)/login/page.tsx modified: src/app/(auth)/register/page.tsx modified: src/app/(auth)/reset-password/page.tsx modified: src/app/(main)/layout.tsx modified: src/app/(main)/not-found.tsx modified: src/lib/api-auth.ts modified: src/lib/api-timing.ts modified: src/lib/auth-internal.ts modified: src/lib/auth.ts modified: src/types/next-auth.d.ts modified: vitest.config.ts
fix: CSRF validation, authorization hardening, and HTML escaping
refactor: dead code elimination (checkDbAccessibility, getStudentCompletedTasks) + date-utils tests
test: add unit tests for db/connection and db/users modules
feat: database connection pool monitoring with Redis metrics
fix: increase timeout for flaky SQLite DB tests (15s)
fix: eliminate flaky SQLite tests by using unique random database paths; remove unused db/index.ts barrel
fix: remove empty getRequiredEnv test suite (function was removed)
fix: add missing getClientIdentifier to rate-limit mocks in tests — 23 tests fixed + 11 new getClientIdentifier unit tests
chore: setup husky pre-commit hooks, add new unit tests, security hardening, rate-limiting improvements, ESLint config updates, and roadmap restructuring
test: add i18n locale key consistency validation
fix: security hardening, consistent API responses, test improvements
fix: TypeScript error in mongodb-engine test - cast unknown to Record
feat: expand SQL adapter coverage (PostgreSQL EXTRACT/DATE_TRUNC/INTERVAL/GENERATE_SERIES, MySQL JSON_ARRAYAGG/REGEXP/GROUP_CONCAT SEPARATOR, ClickHouse formatDateTime fix)
test: add password-strength unit tests, update CONTRIBUTING.md
fix(password-validation): update error messages to match production routes
fix: replace hardcoded date in performance export test with dynamic date
i18n: convert all remaining Cyrillic UI strings in lib/ (11 files)
fix: lint error (missing act import) and flaky rate-limiter test
fix: theme system overhaul — dark mode support, hydration, unified toggle
Add security hardening, 102 new tests, sidebar search, pagination, and fix 9+ TS errors
Use AST-aware adaptWithWarnings for PostgreSQL and MySQL adapters
fix: unify route protection logic in middleware using tested route-protection.ts
modified: .gitignore modified: eslint.config.mjs new file: src/__tests__/safe-fetch.test.ts modified: src/app/(main)/app/page.tsx new file: src/app/api/sql-performance/route.ts new file: src/app/api/web-vitals/analytics/route.ts modified: src/app/api/web-vitals/route.ts modified: src/app/layout.tsx modified: src/components/admin/create-deadline-dialog.tsx modified: src/components/admin/deadline-manager.tsx new file: src/components/admin/performance-dashboard.tsx modified: src/components/admin/user-table.tsx modified: src/components/auth/register-form.tsx modified: src/components/auth/reset-password-form.tsx modified: src/components/locale-selector.tsx modified: src/components/teacher/deadline-manager.tsx modified: src/components/teacher/group-management.tsx new file: src/components/theme-init-script.tsx modified: src/components/ui/table.tsx modified: src/components/web-vitals.tsx new file: src/components/widget-error-boundary.tsx modified: src/lib/db/schema.ts modified: src/lib/pdf-report.ts new file: src/lib/safe-fetch.ts modified: src/lib/sql-engine.ts new file: src/lib/sql-performance-monitor.ts modified: src/lib/store/index.ts modified: src/lib/theme-provider.tsx modified: src/proxy.ts modified: vitest.config.ts
modified: package-lock.json modified: package.json new file: src/__tests__/sql-ast-parser.test.ts modified: src/components/timer-display.tsx modified: src/components/welcome-panel.tsx modified: src/lib/postgresql-adapter.ts new file: src/lib/sql-ast-parser.ts modified: src/lib/store/index.ts modified: src/lib/store/timer-slice.ts
fix tests: update Russian assertions to English
feat: enhance performance monitoring with Web Vitals, smart alerts, and export
fix: add AbortController to app page fetch, handle clipboard API errors
refactor: remove unused getPlural stub and add whitespace-only SQL edge case test
fix: add error handling to 8 API routes, clean dead store state, extract XP helper
chore: remove unused vi import in validation.test.ts
fix: replace placeholder verification queries with real checks
fix: remove group key exclusion in mongodb-engine and fix i18n fallback chain
fix: eliminate Zustand persist warnings in tests, fix stale closure in analytics hook, optimize standalone build