Skip to content

Changelog

dxx114514-stack edited this page Oct 1, 2026 · 2 revisions

更新日志

完整版见仓库 README 更新日志 与 Releases。以下为摘要。

v2.1.0(当前版本)

试卷系统

  • 新增试卷系统:选择题、判断题、填空题(客观/主观)、大题四种题型
  • 试卷 CRUD:教师可创建/编辑/删除,配置时间限制、及格分、最大尝试次数
  • 智能评分:客观题自动评分,主观题支持 AI 评分(Ollama)与教师手动批改
  • 题面 Markdown + KaTeX 实时预览;Excel 导入(中英文表头映射,配套 15 项单元测试,站内示例 /exam-sample.xlsx)
  • 新增试卷列表/答题/结果/批改页面与导航入口

Markdown 与渲染修复

  • 重写 renderMarkdown 解析器:补全列表/引用/表格/围栏代码块/h4–h6 与段落级联,行内单趟分词(修复图片被链接规则吃掉、公式被斜体拆开等缺陷)
  • 修复嵌入块/公式占位符被浏览器丢弃的问题(\x00 → 私有区字符 \uE000/\uE001)
  • 修复 Tailwind prose 类与 @apply 失效(新增预构建 css/prose.css),移除 0 引用死文件 frontend/css/app.css
  • 修复 @[url] 内嵌网页失效(helmet CSP frame-ancestors 改 'self')
  • 新增 Markdown 交互演示页 pages/markdown-demo.html

工程质量

  • 测试隔离:数据库测试改用 %TEMP%\NoldOJ-test\ 独立库,不再读写生产库
  • 新增 npm run test:server 黑盒安全套件(24 项)与 README「测试」章节
  • 启动收敛 IDE 运行残留中间态;启动告警(沙箱回退、CORS_RESTRICTED=false);补静默空 catch 日志
  • 清理死代码(废弃 Sandboxie 加载、重复键、0 引用文件)
  • 引入 ESLint(首跑清零 77 项,顺带修出 2 处真实运行时缺陷:提交详情 test_groups 未定义、problems.js 未导入 config)
  • 新增 CI(.github/workflows/test.yml:lint-and-test + blackbox 两个 job),并修复首跑两类失败:Linux 判题回退路径 runUnix 拼接 ENOENT、全新库随机 admin 口令致登录 401(新增 NoldOJ_INIT_ADMIN_PASSWORD)

v2.0.0

  • 重大重构:移除 Sandboxie 依赖,改用原生三层安全架构(低完整性级别 + Job Object + 受限令牌/AppContainer)
  • 题目详情页左右分栏;比赛上下文(返回比赛按钮、提交自动关联比赛排行)
  • 新增 statistics/wordcloud accepted_count 字段、题目页「复制为 Markdown」
  • 移除在线用户列表功能;修复 401 误清 token、删除题目 500

v1.10.0

  • 超管工具:创建用户(随机强密码)、Excel 批量导入用户、注册开关(落盘 config/register.txt 热生效)
  • 题面多样例(problem_samples + 幂等迁移)
  • Markdown 增强:@[office] / @[echarts] / @[mermaid]
  • AI 提示(失败 2 次可获取方向提示,60s 冷却)、AI 测试数据生成
  • Sandboxie-Classic 三层隔离(后于 v2.0.0 移除)

v1.9.0

  • 隐私开关:成就/数据看板/收藏三个独立开关,可对其他普通用户隐藏
  • 成就/看板/收藏支持 user_id 查看他人数据(遵循隐私开关),API 文档补全

v1.8.0

  • 数据库引擎 sql.js → node:sqlite(原生同步直写、零依赖;旧库无需转换直接打开)
  • 新增迁移脚本 scripts/migrate-sqlite.js(备份 + 完整性校验 + 行数统计)
  • 修复内嵌 @[url] CSP 白名单过窄、非管理员 CreateProcessAsUser error 5

v1.7.0

  • 公告系统、题目标签与难度、代码 Diff、多文件提交、WebSocket 实时推送
  • 比赛排行榜冻结、题单训练计划、讨论/题解区、虚拟比赛、代码查重
  • 验证码开关迁至 config/captcha.txt,JWT 密钥迁至 config/jwt.txt
  • API 扩展至 16 模块 100+ 端点、前端 30 页面、单元测试 70+ 用例

v1.6.0 及更早

版本 亮点
v1.6.0 SVG 图形验证码、模糊搜索、用户资料预览、图床限额管理、配置文件体系化(config/ 目录)、Token 刷新锁
v1.5.0 黑夜模式、用户偏好语言、Markdown 嵌入语法(bilibili/url/audio/video)、IDE 队列与内存检测、AI 审查注入防护、提交锁、注册限流、OpenAPI 文档
v1.4.0 Rating 排行榜、LM Studio 代码审查、128KB 长度限制、封禁全拦截、ID 回收复用
v1.3.0 Markdown + KaTeX 渲染、个性签名/简介、Rating 等级分、文章/题解系统、图床
v1.2.0 比赛邀请制与排行榜、首页统计、提交重测/删除
v1.1.0 自定义计分脚本、测试分组、管理面板 GUI、su 免密登录

相关文档

Clone this wiki locally