Files
ClassHelper/docs/dev/review-2026-10-17.md
T

9.3 KiB

title, description
title description
2026-10-17 审查修复记录 按审查报告核对缺陷、修复行为与验收方式。

2026-10-17 审查修复记录

本次按仓库根的代码审查报告逐项核对,保留此前联动退役与更新策略改动。

报告条目 处理结果
0.1 环境文档补充 PATH 与 Git Bash 启动方式;变更文档统一格式化。
1.1 恢复学期周次、毕业归档、权限组菜单,开发期检查路由是否遗漏菜单。
1.2 叫人通知写本地所属日期;启动时分批幂等回填旧通知,兼容 SQLite / MySQL。
1.3、2.14、3.10、3.14、4.5 每次建窗挂关闭隐藏处理;捕获加载失败;仅主窗口触发恢复,恢复期间等待异步加载;普通 Promise 拒绝不再重启进程,移除 activate 重复加载。
1.4、1.5 缓存按服务端和班级隔离,个人资料按服务端和登录名隔离;忽略跨会话的迟到响应,打开失败和版本切换后可重试 IndexedDB。旧无命名空间缓存不再直接作为新会话数据读取。
1.6 学期周统一加载后再取灵动岛课表,教学周变化触发重取;失败且无缓存时保留已知课表;主窗口禁用后台节流。
1.7、3.11 IPC 拒绝渲染端改安装记录;安装只接受更新专用目录中的文件,拒绝目录外及软链接目标;取消、更换目标和更新完成后清理旧包。
2.1 空角色原本已保留旧值;现在未识别的非空值也保留原角色,只有明确的教师/管理员值才变更。
2.2、2.9 员工的成绩明细、看板、更新检查与强制检查落实权限;班级端仍由本班边界授权。增加学生/教师名单只读权限,旧管理组继承对应读取能力;下线没有独立服务端能力的日志与开发者模式权限键,系统设置仍由系统管理权限控制。
2.3 当前班级范围已由 CLASS_DEVICE 角色正确解析,不存在报告描述的必然拒绝,也不会查询全班学生。补齐 Socket 身份中的 classSession,保持元数据完整。
2.4、2.5 课表导入读取本班学期长度,创建课表按实际兜底周数做区间交叉校验。
2.6 姓名重复时要求正确学号,不能静默绑定到同名学生。
2.7 增加共享删除事件与两端订阅,并移除通知中心及灵动岛中的已删通知。
2.8 批量录入接口本身只接收单个 classId;真正缺口在跨班批量改等级,现已逐班广播。
2.10 调班历史按学生当前班级及显式班级过滤条件校验权限;未分班学生仅管理员可读。
2.11—2.13 引导使用主题文字变量,仅可见时响应 Esc;成绩明细优先展示保存的等级。
2.15—2.17 助手叫人校验非空消息;周次草稿提交前校验日期;通知日期改变后清除不再可选的发布人。发布人选择本身已有 change 处理,未重复添加。
3.1、3.4、3.9 列表丢弃过期响应;考试口径读写固定同一个班级/考试快照并禁用加载中的开关;切班立即清空课程候选。
3.2 提交函数增加互斥与 finally 释放,按钮同步显示 loading,快速双击不会重复发请求。
3.3 考试下拉从独立考试列表生成,不再由筛选后的成绩反推。
3.5—3.8 不回退到已归档届别;使用主题语义色、清理死样式;拒绝协议相对和反斜线附件地址;人数加载失败显示不可用。
3.12、3.13 取消确认框正常返回;列表加载与实时新增、删除、已读合并,防止快照抹掉飞行中的变更。
3.15 核对并修正登录、班级开关、设备权限、菜单数量、Socket 房间注释。登录限流当前已经一次挂载到两个入口并共享计数器,该条报告不成立。
4.1 百分制/字母制批量重算使用分数计算等级;自定义等级没有通用换算规则,禁止整批猜算,保留逐条编辑。
4.2 审计明确记录解析结果 interpreted / unrecognized,不再写成永远等待执行的 pending;它不宣称前端业务发布已成功。
4.3、4.4 助手上下文与预览参数均校验班级、科目范围;缺失通知优先级按普通通知展示。
4.6 外观 IPC 在一帧内合并滑块事件,读取时先刷新最后一帧,避免丢失最终值。
5 清理无调用的名单/课程封装和事件标签等;班级页接通既有任课关系导入。旧时间配置弹窗仍直接调用四个 API,按报告的保留要求保留组件及依赖,不盲目删除。

管理员的 Web 权限判断已移除全权限短路,与服务端保持一致;默认组收回的功能入口会隐藏。 日常冒烟采用后台快速模式,视觉验收显式执行;具体命令和验证范围见验收与测试。

本次验证

  • 全仓类型检查、ESLint、构建、变更格式检查通过,文档构建无警告。
  • 隔离测试库端到端 243/243;审查接口回归 31/31;客户端维护接口 28/28。
  • 无窗口逻辑回归 18/18;模拟远控及更新代理 15/15;旧库升级回归通过。
  • 后台 Web 回归 37/37,约 38 秒;客户端联网冒烟 10/10,二次启动 9/9,总计约 15 秒。
  • 本次使用独立 SQLite 测试库,没有执行真实关机或安装;未运行会占用桌面的完整视觉验收。