main
fix: open redirect vulnerability, standardize remaining API error handling
chore: code quality, security hardening, and infrastructure improvements
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
Add RBAC: role-based access control with admin and teacher panels
modified: src/app/(main)/app/page.tsx modified: src/components/action-bar.tsx modified: src/components/auth/login-form.tsx modified: src/components/auth/user-menu.tsx modified: src/components/results-table.tsx modified: src/components/schema-viewer.tsx modified: src/components/sidebar.tsx modified: src/components/sql-editor.tsx modified: src/components/task-panel.tsx modified: src/components/welcome-panel.tsx modified: src/lib/i18n.ts modified: src/middleware.ts