SpecialX
8c2fe14c20
refactor(modules): update classes, course-plans, diagnostic, questions, settings, student, layout
...
- Update classes data-access (invitations, main) for invitation management
- Update course-plans actions, data-access, and types
- Update diagnostic data-access for report queries
- Update questions data-access for question bank queries
- Update settings actions, ai-provider-settings-card, data-access, and types
- Update student course-filters, student-courses-view, student-schedule-filters, student-schedule-view
- Update layout app-sidebar, site-header, and navigation config
2026-06-24 12:03:35 +08:00
SpecialX
7e320d78c1
feat(ai): 统一 AI 配置入口到 /admin/ai-settings
...
## 新增
- 创建 /admin/ai-settings 统一配置页(AiProviderSettingsCard + AiUsageDashboard)
- admin 侧边栏新增"AI 配置"菜单项(权限 AI_CONFIGURE,图标 Sparkles)
- 新增 deleteAiProvider 数据访问层(事务删除 + 自动转移默认)
- 新增 deleteAiProviderAction Server Action(Zod 校验 + 权限校验)
- AiProviderSettingsCard 新增删除按钮(AlertDialog 确认 + destructive 变体)
- 新增 i18n 翻译键(delete/deleteConfirm/deleteSuccess 等,zh-CN + en)
## 移除
- 从 /settings 移除 AI 标签页(原 VALID_TABS 含 "ai",现仅 4 标签页)
- 从考试页面移除 AI 配置弹窗(Dialog + AiProviderSettingsCard 内嵌)
- 从 ai-provider-selector.tsx 移除配置弹窗(managePanel/manageOpen props)
- 移除 settings-view.tsx 中 canConfigureAi 逻辑和未使用 import
## 变更
- 考试页面"管理"按钮改为 Link 跳转到 /admin/ai-settings
- ai-provider-selector.tsx"管理"按钮改为 Link 跳转到 /admin/ai-settings
- exam-form.tsx 移除 providerDialogOpen/providerDialogKey 状态
- 修正架构文档 004 中 Action 命名(getAiProvidersAction → getAiProviderSummaries 等)
## 架构文档同步
- 004 更新 settings 模块章节(V3 标记/修正 Action 名称/新增 deleteAiProvider)
- 005 新增 deleteAiProviderAction 节点 + /admin/ai-settings 路由
2026-06-23 19:33:28 +08:00
SpecialX
1fcef5c3aa
feat(settings): add security center, 2FA/TOTP, avatar upload, system settings
...
- Add TOTP implementation and two-factor data-access for 2FA enrollment
- Add security center card with password policy and session management
- Add avatar upload action and component
- Add system settings actions and data-access (actions-system-settings, data-access-system-settings)
- Add notification preferences and service actions
- Add security-utils and student-overview-data with tests
- Update existing settings views, data-access, and types for new features
2026-06-23 17:37:06 +08:00
SpecialX
5d42495480
feat(settings): 设置与个人信息模块审计重构 — i18n + 服务注入解耦 + Error Boundary + 流式渲染
...
- 新增 SettingsService 接口 + Context 注入,组件层不再直接 import users/messaging actions
- 新增 resolveRoleSettingsConfig 配置驱动角色路由,删除 parent/student/teacher-settings-view 冗余文件
- 新增 SettingsSectionErrorBoundary,每个 TabsContent + profile 角色概览区块均包裹
- 新增 ProfileStudentOverview/ProfileTeacherOverview 异步 Server Component + 骨架屏,支持流式渲染
- 抽取 buildStudentOverviewData 等纯函数到 lib/student-overview-data.ts,便于单元测试
- 新增 settings.json 翻译文件(zh-CN + en),所有组件改用 useTranslations/getTranslations
- 重构 profile/page.tsx:i18n 适配 + Suspense 分区加载 + 业务逻辑抽离
- 同步更新架构图 004/005
2026-06-22 16:15:36 +08:00
SpecialX
a4d096a6fc
fix: patch P0 security vulnerabilities and critical UX issues across 6 modules
...
Security: Add admin/layout.tsx auth guard; Add requirePermission() to 12 admin pages
Dashboard: Fix StudentStatsGrid rendering; Fix teacher greeting; Add loading/error boundaries; Fix col-span; Add metadata
Announcements: Fix audience filtering; Add user detail page; Trigger notifications on publish; Pass classes data; Add loading.tsx
Messages: Implement soft delete; Add unread badge with polling; Add notification dropdown polling; Add keyword search; Add quiet hours DND
Management: Add loading/error for 9 admin routes; Fix admin-classes-view to use Select for school/grade
Profile/Settings: Add loading/error; Fix parent role routing; Create ParentSettingsView; Integrate AiProviderSettingsCard; Add Tab URL persistence; Add logout confirm; Add avatar; Fix Progress arbitrary class
Schema: Add senderDeletedAt/receiverDeletedAt to messages; Add quietHours to notificationPreferences; Add uniqueIndex import
Docs: Update architecture docs 004/005
2026-06-22 13:57:31 +08:00
SpecialX
c45b3488c5
feat(admin): 补全 admin 模块核心功能与产品体验优化
...
修复 v4 报告中的 13 个产品体验问题:新增用户管理列表页和系统设置页,重组导航菜单并补充缺失入口,增加角色切换机制,Dashboard 增加快捷操作和 recharts 趋势图表,考勤增加统计概览,排课增加课表网格视图,统一 Toast 操作反馈,同步更新架构文档
2026-06-22 13:38:07 +08:00
SpecialX
978d9a8309
feat: 新增备课模块并修复全模块 P0/P1/P2 缺陷
...
Security / deep-security-scan (push) Failing after 20m5s
DR Drill / dr-drill (push) Failing after 1m31s
CI / scheduled-backup (push) Failing after 1m31s
CI / backup-verify (push) Has been skipped
CI / weekly-dr-drill (push) Failing after 0s
CI / build-deploy (push) Has been cancelled
CI / security-scan (push) Has been cancelled
主要变更:
- 新增 lesson-preparation 模块: 备课编辑器、节点编辑、AI 建议、知识点选择、版本历史、作业发布
- 新增 shared 通用组件: charts/question-bank-filters/schedule-list/ui (chip-nav/filter-bar/page-header/stat-card/stat-item)
- 新增 student/admin 端 loading.tsx 与 error.tsx, 优化加载与错误态体验
- 新增 teacher/lesson-plans 页面 (列表/新建/编辑)
- 新增 drizzle 迁移 0002_tiny_lionheart 及 snapshot
- 新增 textbooks/schema.ts 与 exams/utils/normalize-structure.ts
- 修复 Tiptap v3 SSR hydration 崩溃 (rich-text-block immediatelyRender: false)
- 重构多模块 data-access/actions/组件, 修复权限校验与类型规范
- 同步架构文档 004/005 反映新增模块、导出、依赖关系
- 归档 bugs/* 测试报告与 e2e 测试脚本 (admin/parent/student/teacher web_test)
2026-06-22 01:06:16 +08:00
SpecialX
49291fcc31
refactor: fix all P0/P1/P2 bugs and architecture issues
...
Bug fixes (from bugs/ directory):
- Fix cross-module DB queries in 9 modules (homework, grades, parent, diagnostic, elective, proctoring, notifications, scheduling, classes) by routing through data-access functions
- Fix shared/lib <-> auth circular dependency via new session.ts module
- Fix divide-by-zero guard in grades data-access
- Fix audit export data truncation (paginated fetch for full datasets)
- Fix missing transactions in homework grading and elective lottery
- Fix missing revalidatePath in course-plans actions
- Fix frontend permission checks using requirePermission instead of requireAuth
- Fix dashboard role routing using session.user.roles
- Fix student auth pattern (migrate getDemoStudentUser to users module)
- Fix ActionState return type handling in components
Code quality fixes:
- Remove 60+ as type assertions (replace with type guards)
- Remove non-null assertions (use optional chaining or explicit checks)
- Convert dynamic imports to static imports (grades, diagnostic)
- Add React.cache() wrapping for read functions
- Parallelize independent queries with Promise.all
- Add explicit return types to 30+ arrow functions
- Replace any with unknown + type guards
- Fix import type for type-only imports
- Add Zod validation schemas for classes and diagnostic modules
- Extract duplicate code (normalizeRoleName, normalizeBcryptHash, logger IP extraction)
- Add console.error to silent catch blocks
- Fix permission naming consistency (exam:proctor_read -> exam:proctor:read)
Architecture doc sync:
- Update 004_architecture_impact_map.md and 005_architecture_data.json
- Update management-modules-audit.md for P0-7 cross-module fix
Moved deleted proctoring event route to deletes/ folder.
2026-06-19 05:13:34 +08:00
SpecialX
3b6272c99d
feat: 完成 P1 全部功能 + 修复 proxy 导出 + 切换 MySQL 端口至 14013
...
## P1 功能(20 项)
- 站内消息系统、家长仪表盘、学生考勤管理
- Excel 导入导出、用户批量导入、成绩导出
- 排课规则+自动排课+课表调整
- 成绩趋势+对比分析、密码安全策略、速率限制
- 数据变更日志、文件预览+存储策略、全文检索
- 依赖审计集成 CI、数据库定时备份、E2E 测试完善
- 通知偏好管理
## 基础设施修复
- src/proxy.ts: 将 middleware 导出重命名为 proxy(Next.js 16 要求)
- .env: MySQL 端口从 13002 切换至 14013
- scripts/create-db.ts: 新增数据库初始化脚本
## 架构文档同步
- 004_architecture_impact_map.md 和 005_architecture_data.json
完整记录所有新增表、模块、路由、权限、依赖关系
2026-06-17 13:44:37 +08:00
SpecialX
99f116cb64
=test_update_homework_tests_and_work_log
CI / build-deploy (push) Has been cancelled
2026-03-19 13:16:49 +08:00
SpecialX
eb08c0ab68
sync-docs-and-fixes
2026-03-03 17:32:26 +08:00
SpecialX
9bfc621d3f
feat(classes): optimize teacher dashboard ui and implement grade management
2026-01-14 13:59:11 +08:00
SpecialX
57807def37
完整性更新
...
现在已经实现了大部分基础功能
2026-01-08 11:14:03 +08:00