{
  "version": "2.1.1.5",
  "channel": "stable",
  "releaseDate": "2026-10-26",
  "downloadUrl": "https://dd.sakaay.com/files/zhixue_ai_marking.user.js",
  "changelog": {
    "2.1.1.5": [
      "【修复·重要】用火山方舟（以及其它只把地址填到 Base URL 的网关）时批改一律 404：脚本是把「服务网关 URL」原样发出去的，填 https://ark.cn-beijing.volces.com/api/v3 时请求就打到了 /api/v3 本身，平台回 404、响应体还是空的，看起来像网络或密钥的问题。现在保存时会自动补成 …/api/v3/chat/completions（只填了域名则补 /v1/chat/completions），已经存过的配置也直接生效、不用重新填；本来填的就是完整接口的人完全不受影响。自定义网关路径不会被猜着改。",
      "【优化】404 且平台一个字都不返回时，报错直接说清「多半是网关 URL 没填到接口，或模型 ID / 接入点在控制台里不存在」，不再只有一句「API报错 (404)」。",
      "【界面】「服务网关 URL」打开时显示的是实际会请求的完整地址；鼠标停上去能看到「填到 /v1、/api/v3 也可以，会自动补全」。"
    ],
    "2.1.1.4": [
      "【修复·重要】标签页切到后台后批改速度断崖式下跌：根因是浏览器的定时器节流 —— 标签页隐藏后定时器最少 1 秒一拍，隐藏超过 5 分钟更是合并成每分钟一拍，而批改的每个节奏点（等下一份卷子、提交后起下一份、每秒检查有没有换题、确认窗倒计时）全都架在定时器上，于是一份卷子能从二十秒变成十几分钟。现在后台改由一个极小的 Worker 心跳来驱动这些等待，速度和前台一致，切回前台自动交还原生定时器。",
      "【优化】后台时确认窗不再空等那 5 秒倒计时：它归零本来就是自动提交，而老师人在别的标签页上看不见它倒数 —— 现在直接提交，每份省 5 秒。",
      "【说明】个别平台的 CSP 不允许建 Worker 时会自动退回原来的做法，控制台会留一条「退回原生定时器」的说明 —— 这种情况下请让批改页保持在前台。"
    ],
    "2.1.1.3": [
      "【修复·重要】「润色标准 / AI润色 / AI识别」以前用的是**另一套**模型配置：拿工作流里记的那个供应商，再取该供应商的第一个模型 —— 和批改不是同一个来源。升级或换过供应商之后，这几个按钮会拿着别人的地址 + 空密钥去请求，表现出来就是「批改一切正常，润色一直转圈或者报 401」。现在它们和批改走完全同一套（「模型和供应商」里选中的那个网关、密钥、模型）；缺密钥会直接说清缺什么，不再发一个注定失败的请求，控制台也会打印这次用的模型和地址，方便对账。",
      "【修复】「润色完了还是这个样」：润色时正文不再被替换成 `<!-- AI润色标准中... -->` 占位符。以前那个占位符是真写进正文的，跑完之前点一下「确认」就会被当成内容存进方案，那一段标准也就没了；存进去之后再点润色，AI 拿到的\"原文\"就是这句占位符，它只会原样还回来 —— 于是提示「完成」、内容一个字没变。现在进度用按钮文案（润色中…）+ 提示条表示，正文一个字不动，结果到了才写进去。",
      "【修复】已经存成占位符的那一段：打开编辑器时当没填（不再让你对着一句「AI润色中…」改），判分前也会把它当成\"没填答案\"拦下来，不会把一句 HTML 注释交给模型当标准。",
      "【优化】润色/识别进行中会锁住编辑区并提示「别关窗」；关窗或点确认时这一轮会被取消，迟到的结果不会再改动已经交出去的内容。"
    ],
    "2.1.1.2": [
      "【修复·重要】「分数设置」里填了答案和评分标准，点开始却仍提示「请先填写参考答案和评卷标准」：开批前的检查和单题模式的提示词都只认顶上那份旧的「批改上下文」，而那一块上一版已经下线，老师填的答案存在分数表每一行里 —— 于是填了等于没填（提示词里也是空的，等于拿一份空答案在判）。现在两处都改认逐题那份：填了就放行，答案和标准真的会进提示词。",
      "【修复】缺答案时不再只说一句「请先填写」：会点名哪一行没填（例如「第 31(3) 行还没填」），并自动切到「批改 → 分数设置」那一页，不用满面板找入口。",
      "【优化】分数表某一行的答案会盖过旧的全局答案（老师能看见、能改的只有行内那份）；行内留空时仍旧用全局那份兜底，老方案不受影响。参考答案里贴的图不会在搬运过程中丢掉。"
    ],
    "2.1.1.1": [
      "【说明】版本号从 1.21.15.x 直接跳到 2.1.1.1：这一版改的是「答案 / 评分标准」的编辑与查看方式，按大版本走。",
      "【修复】「润色标准」按钮以前只在「评分标准」那个单独的编辑器里，可平时点的是「编辑答案」，打开的永远是参考答案 —— 按钮加了也找不到。现在这个弹窗顶部多了两页「参考答案 / 评分标准」，切到「评分标准」就能看到「✨润色标准」（就是原来的「细化标准」）。在参考答案页点它，会先切到标准页再开始，不会像没反应。两页填的内容确认时一起保存，原来填的不会丢。",
      "【优化】润色标准的提示词补了一条：把「意思对即可」「酌情给分」这类含糊说法改写成 AI 能直接照做的条件（例如「答出原文列出的要点之一，意思相近也算对」），但绝不新增原文没有的要求；每条独立成行，方便逐条判分。",
      "【修复】分数表里「收起」的位置以前不合理：一题答案上千字时，它被顶到一屏之外，得先滚到底才点得到；收起之后「编辑答案」还会变回白底，看不出这题填过。现在展开/收起改成行里的小三角（就在「编辑答案」旁边），展开区右上角也有「收起」；预览限高 120px 自己在框里滚，长标准不会再把表撑开。填过内容的行「编辑答案」保持深蓝，收起也能一眼看出哪几题填过。"
    ],
    "1.21.15": [
      "【修复·重要】批到一半、平台自动翻到下一题时，脚本不再拿上一题的答案去判新题：只要「分数设置」里配好了新题（题号对得上、满分和答案都有），它会**自动接着批**，不用再点一次「继续批改」；新题没配好才停下，并直接说清「补上第 N 题那一行」。页面没渲染好、你自己接管了、或分数表行数和本页分数框对不上，都不硬开，停在暂停状态等你点。",
      "【新功能】答案改成逐题填：「批改 → 分数设置」每一行点「编辑答案」直接弹出 Markdown 编辑器（公式、AI 润色、AI 识别都在），确认后这一行会显示渲染好的预览；评分标准在同一行里各写一份。原先那块「批改上下文」（题目内容 / 参考答案 / 评卷标准）整块下线。",
      "【新功能】编辑器新增「✨细化标准」（只在评分标准这类字段出现）：把你写的标准整理成一条条给分点、扣分点，阅卷时照着做就行。提示词写死了「只细化、绝不新增你没写的要求、不改满分」，结果先落在编辑器里，你对着原文看过再点「确认」才生效。",
      "【优化】分数设置不再要那个「表里每行是一道题」的开关 —— 表里哪一行对得上当前这一题，批改就自动用哪一行（其余行留给别的题），表下方写明当前用的是哪一行并高亮；整份任务的分数表也不会再被自动检测冲掉。",
      "【修复】「批阅份数」改成每题各算各的：换题自动清零重算（含「批到页面任务完成就停」的页面进度），换题时也会先按绑定关系切方案 —— 以前新题还挂着上一题的答案和分值。",
      "【修复】配置面板 / 评阅历史在平台任何页面都出得来了：以前云阅卷、好分数、鑫考、碧落、AMEQP、光大V2 这几个平台还要求「当前必须是批改页」才初始化界面，站在首页上连图标都没有，而进批改前恰恰最需要先配好方案和答案。能不能开批没有放松：非批改页点批改照样被拦下并提示先进任务。",
      "【修复】设置面板打开时，右下角那排浮动按钮（AI 批改 / 设置 / 历史）不再压住面板里的内容 —— 让位位移以前写死成 460px（按 440 宽的面板算的），而面板早就改成了 560。",
      "【界面】历史记录面板每条都标出题号（第 9 题），一份任务十几道题的记录混在一条列表里也能分清；面板顶部「AI 批改助手」和「当前方案」合成一行；批改页那几段大段说明文字删掉了，其中「不知道就会做错」的要点挪到了对应的勾选框 / 步长输入框上（鼠标停上去能看到）。"
    ],
    "1.21.14.78": [
      "【修复】配置面板 / 评阅历史在平台首页、任务列表上也出得来了：以前云阅卷、好分数、鑫考、碧落、AMEQP、光大V2 这几个平台还要求「当前必须是批改页」才初始化界面，站在首页上连图标都没有 —— 而进批改前恰恰最需要先把方案、答案配好。云阅卷和好分数改成按域名判断；内网裸 IP 的那几家（地址不固定）改成「在批改页认过一次就记住这个站点」，之后同一个站点任何页面都有界面。",
      "【说明】「能不能开批」没有放松：在非批改页点批改，照样会被拦下并提示先进入批改任务。"
    ],
    "1.21.14.77": [
      "【修复】设置面板打开时，右下角那排浮动按钮（AI 批改 / 设置 / 历史）不再压住面板内容：让位位移以前写死成 460px（按 440 宽的面板算的），而面板早就改成了 560 —— 于是按钮一直压进面板 100px，盖住批改页正文和底部那排按钮。现在按面板的实际宽度让位，以后改宽度它自己会跟上。",
      "【界面】面板顶部「AI 批改助手」和「当前方案：xx」合成一行，不再占两行高度。",
      "【界面】批改页那几段大段说明文字删掉了（自动重新检测分值、步长怎么选、批到页面完成就停、总分不一致处理、后台二次复核）。其中「不知道就会做错」的要点挪到了对应的勾选框 / 步长输入框上 —— 鼠标停上去能看到，界面上不再占地方。"
    ],
    "1.21.14.76": [
      "【新功能】编辑器里多了一个「✨细化标准」按钮（只在评分标准这类字段上出现）：把你写的标准整理成一条条给分点、扣分点，阅卷时照着做就行。提示词里写死了「只细化、绝不新增你没写的要求、不改满分」，整理结果先落在编辑器里，你对着原文看过再点「确认」才生效；结果不像话时会保留你原来写的。",
      "【优化】「🪄AI润色」按钮的说明写清楚了：它只做排版（把内容整理成 Markdown / LaTeX 公式，逐字保留、不改写内容），不会细化也不会改写你的标准 —— 之前它和「细化标准」确实是两件事。"
    ],
    "1.21.14.75": [
      "【界面】「批改上下文」那一整块删掉了（题目内容 / 参考答案 / 评卷标准）。答案改成逐题填：打开「批改 → 分数设置」，点某一行的「编辑答案」直接弹出 Markdown 编辑器（公式、AI 润色、AI 识别都在），确认后这一行会显示渲染好的预览；评分标准在同一行里各写一份。",
      "【优化】「编辑答案」按钮的文字以前被按图标尺寸（28px 宽）挤住看不见，现在按文字排版。",
      "【界面】历史记录面板每条都标出题号（第 9 题）—— 一份任务十几道题的记录混在一条列表里，这下能分清了。"
    ],
    "1.21.14.74": [
      "【新功能】平台自动翻到下一题时，只要「分数设置」里配好了这一题（题号对得上、满分和答案都有），脚本会**自动接着批**，不用再点一次「继续批改」（脚本正在批、或刚因为「这一题批完了」自己停下，都一样接）；新题没配好才停下，并直接说清「补上第 N 题那一行」。页面还没渲染好、你中途自己接管了、或者分数表行数和本页分数框对不上，都不硬开 —— 停在暂停状态等你点。",
      "【修复】批改中被平台翻页时，新题还挂着上一题的方案（答案、分值都是别人的）—— 现在换题时无论是否在批改，都会先按绑定关系切方案。",
      "【修复】「批阅份数」改成每题各算各的：换题自动清零重算，含「批到页面任务完成就停」的页面进度判定（那是按题读的）。以前换题后上一题的「已完成」标记还挂着，点「继续」之后新题批完了也不会自动停。"
    ],
    "1.21.14.73": [
      "【优化】分数设置不再有「表里每行是一道题」那个开关 —— 这件事自动判断：表里哪一行对得上当前这一题，批改就用哪一行；对不上，就按「当前这一题的各小题」用整张表（老方案行为一个字没变）。表下方会写清「当前是第 9 题：用表里「9」这一行」，并把那一行高亮，用的是哪一行一眼可见。",
      "【优化】分数表表头固定成「题号 / 满分」，不再随开关变来变去。",
      "【修复】整份任务的分数表不再被「题目变化时自动重新检测分值」冲掉：那张表是老师手填的，自动同步和「识别题号」都只动当前这一题，其余行（连同答案）原样保留。",
      "【修复】开批前先对一次账：分数表里的行数和本页分数框数对不上时（多半是这一题没配进表里）明确拦住并提示补哪一行，不再拿整张表去判这一题、把分写到别的地方。"
    ],
    "1.21.14.72": [
      "【优化】设置面板重排：页签变成「方案 / 批改 / 数据 / 模型和供应商」，模型和供应商排在最后。批改页从此进去第一眼就是「分数设置」，「批改上下文」（所有小题共用的兜底答案）挪到方案页。",
      "【新功能】分数设置可以「表里每行是一道题」：勾上后，整份任务要批的题号一次全列在表里，逐题点「编辑答案」把答案一次写完；批改翻到哪一题就自动取哪一行，不用每换一题重配一遍。当前题号不在表里时会明确拦住并提示加一行，不会拿别的题的答案去判。",
      "【优化】步长从「只能下拉选」改成可以直接输入数字（也能从下拉里选 1 / 0.5 / 1.5 / 0.1）。",
      "【优化】「运行模式」三档（普通 / 试改 / 无人）下线，批改固定走普通模式 —— 想全自动就用「先确认几份再转全自动」那条路（批够份数问一次，之后不再弹窗）。存量的试改 / 无人配置会在升级时自动改回普通模式。",
      "【修复】模型来源统一到「模型和供应商」页：工作流里不再单独选模型（那里只留思考参数、回答长度、JSON 与双评），两处都能改模型导致的「改了一处不生效」不再出现。"
    ],
    "1.21.14.71": [
      "【修复】界面不再挑页面：以前必须先被认成「批改页」，批改按钮和配置面板才出得来 —— 于是站在任务列表上没法配方案、没法看历史，而这两样恰恰是进批改之前最需要的。现在站内任何页面都完整出界面（批改按钮 / 齿轮配置 / 评阅历史），点「AI 批改」时若不在批改页，会直接说明原因并在后台重新识别，不再让老师对着一张空界面猜。",
      "【优化】油猴菜单里的「不限阅卷页」开关已撤掉 —— 界面本来就全站都有，这个开关只剩「关」没有「开」，留着只会让人以为自己漏开了什么。",
      "【说明】页面识别的定位从「决定要不要初始化界面」改成「决定能不能开批」，识别在后台跑，不再挡住界面。页面上原有的批改流程一个字没改。"
    ],
    "1.21.14.70": [
      "【新】界面外观可以「云端更新」了：皮肤（配色、圆角、间距这些）改成从 `dd.sakaay.com/files/ui/theme.css` 单独下发，改它**不用再发新版本**，老师刷新页面就生效",
      "【设计】拉不到远端皮肤时自动退回打包时内联的那一份（内容和云端完全一样），所以最坏情况只是\"样式回到发版时的样子\"，不会白屏、不会错位。拉取超时 4 秒，等不到就先用手上的那份 —— 皮肤是锦上添花，不值得拖慢启动",
      "【说明】这是「页面放云端、主程序放本地」的第一步，目前只覆盖样式层。文案、面板模板后续可以按同样方式搬到云端"
    ],
    "1.21.14.69": [
      "【修复】暂停（或换题、重新开始）之后，**已经在跑的那次后台复核**会一路跑完，并把结论写进历史 —— 那是上一题、甚至上一份卷子的判断，看起来就是\"凭空冒出一条不一致\"。现在结论回来时会核对轮次，对不上就丢弃，不写历史也不提示",
      "【修复】轮次变了之后不再继续消费复核队列：后面那些任务的结论同样会作废，白花调用还会让人以为复核一直没停。队列留着，下次有机会再跑",
      "【说明】这两条让**结论**作废，请求本身仍会跑完 —— 它和主流程共用同一个中断控制器，要彻底掐掉得改整条调用链，风险不划算。实际影响是可能多花一次调用，但不会再产生错误的历史记录"
    ],
    "1.21.14.68": [
      "【修复·重要】题库批完、平台**自动翻到下一题**时，脚本还在拿上一题的参考答案和评分标准去判 —— 判出来必然是 0 分。而平台切题是全自动的、界面上没有任何提示（无感），老师只会看到一堆莫名其妙的 0 分，也不知道从哪来的",
      "【修复】现在会在四个必经节点核对「现在这一页还是刚才那一题吗」：取完答题卡图（省掉一次注定要丢的 AI 调用）、**写分之前**（最关键，别再往新题的输入框里写上一题的分）、提交之前（否则提交上去的是「这一份的分 + 下一题的题面」）、以及检测到切题的那一刻",
      "【改进】一旦发现题目变了就**立刻停下并明确提示**，让老师先核对新题的答案和分值再点「继续批改」。不再默默往下跑 —— 那样要等收到一堆 0 分才发现出事了",
      "【说明】每批一份都会记下当时的题号，控制台开头能看到 `| 题号: xxx`。识别不出题号时（页面还没就绪）不误判、也不拦停"
    ],
    "1.21.14.67": [
      "【修复】历史记录面板不实时刷新：批完一份、让 AI 分析完、打完老师分，面板里的内容还是旧的，看着像\"改完了没存上\"。原因是面板的列表渲染是它自己的局部状态，而外部每处改动数据的地方**只通知了左侧那个实时小列表**，面板是另一套完全独立的渲染、一次都没被通知到",
      "【修复】改成在数据层集中通知：新增 / 更新 / 删除记录时，打开着的面板都会立刻重绘。以前\"一个改动点补一句\"的做法治不完 —— 少补一处就又是一个现场（上一版就只补了其中一处）",
      "【说明】面板没打开时这次通知是空操作；重绘本身出错也不会影响记录写入，只记一条日志",
      "【修复·重要】上一轮全面审计查出的一批问题，这版一起带上（此前只改在本地、一直没发布）：",
      "　· **内存溢出（OOM）主因**：每次弹出确认窗都往页面上挂 2 个永不移除的拖拽监听器，而它们的闭包拽着整份弹窗（包括答题卡图片），批几十上百份就是几十上百份影像不放 —— 页面直接崩。改用指针捕获，监听器收在弹窗自己身上，弹窗一走就跟着回收",
      "　· 暂停后那份卷子仍会被提交的**第二条入口**：暂停恰好发生在「AI 判完」和「确认弹窗出现」之间时，弹窗会把暂停标记冲掉、照常倒计时",
      "　· 插入图片必崩：一段代码调用了只存在于另一个函数内部的函数（`ReferenceError`）",
      "　· 步长被写坏时算出 `NaN` 分并写进平台输入框（和上次那个取整方式同一个洞的第二张口子）",
      "　· 历史存储损坏时不再整条链路失效，且会先把原始数据备份下来",
      "　· 提交加防重入（连点两次会提交两份、份数记两次）",
      "　· 换题时上一题的异步链路会把分写进新题 —— 引入「轮次令牌」，暂停 / 停止 / 换题都会让在途链路作废",
      "　· 「标记为空白卡」在等待期间被暂停也会照样提交；复核被暂停打断时错误地记成「复核失败」",
      "　· 分步长、表单回填等几处同类兜底，以及导入配置后补跑一次迁移"
    ],
    "1.21.14.66": [
      "【修复·严重】每份卷子都报 `TypeError: Math[o] is not a function`、批改全部失败 —— 演示时撞到的就是这个（AI 其实判对了分，卡在取整那一步把整份判死）。根因是配置里的取整方式被写坏成了字符串 `\"undefined\"`：配置里没有这个字段时，设置面板给隐藏输入框赋 `undefined`，而浏览器会把它变成字符串 `\"undefined\"`；保存时那句 `|| 'round'` 又拦不住它（非空字符串是真值）。于是 `Math[\"undefined\"](score)` 直接抛错",
      "【修复】三层一起兜：保存时校验；启动时把**已经坏掉的存量配置**改回「四舍五入」；计算时再校验一次（最后一道防线，配置再脏也不崩）。取整方式的白名单只有一份，放在 config.js",
      "【说明】坏掉的配置会被自动修好，不用手动重新配方案"
    ],
    "1.21.14.65": [
      "【修复·严重】按「暂停」之后，那份正在等确认的卷子**仍会在倒计时结束时被自动提交**：暂停时只做了一句「关掉确认弹窗」，既没清倒计时定时器、也没设「已暂停」标记 —— 而那个定时器盯的是另一个字段（`countdownPaused`，暂停设的是 `isPaused`），于是它照跑不误，归零就调用提交。你看到的只是弹窗关了，据此以为已经停住",
      "【修复】倒计时定时器补了一道自杀守卫：只要确认弹窗已经不在页面上（暂停 / 取消 / 提交 —— 任何让它消失的路径），定时器立刻自行清理、绝不再做任何动作。原来它可能一直跑下去，还会去提交「上一份」的分数（闭包里的分和弹窗都已经是旧的）",
      "【说明】暂停时的清理动作必须排在关弹窗之前 —— 反过来写就是对已经移除的元素做清理"
    ],
    "1.21.14.64": [
      "【修复·严重】点「保存并启用」直接报 `covered is not defined`，设置存不下去。这是我上一版（.62）引入的：我在「保存校验」里加了「逐题答案填全了，全局那两份就可以留空」的判断，又把这个变量用在「页签红点」的计算里，却忘了在那处也定义它 —— 那个函数一被调用就抛错，而它是保存流程的必经之路",
      "【说明】这个错上一版的测试没抓到，因为我写的是「源码里有没有这句话」的断言 —— 它只能证明那句话写在文件里，证明不了那个变量存在。现在改成**真跑** `updateSettingsNavBadges()`：漏定义、或者红点判断改回只看全局，测试都会挂"
    ],
    "1.21.14.63": [
      "【优化】版本更新记录不再跟着脚本一起下发了：它本来写在 config.js 里，于是 93 个版本条目被打进脚本本体（约占 2.2% 体积），而脚本运行时**根本没读过它** —— 「检查更新」弹窗里的更新说明一直是从远端拿的（先取 manifest.json 的 changelog，拿不到才降级去远端脚本正文里抠）。现在它搬到项目根目录的 changelog.js，只写进 manifest.json 当远端的更新说明，脚本本体一个字都不带",
      "【说明】降级路径（manifest 拿不到、直接拉完整脚本时）从此只报版本号、不再显示更新说明 —— 那份说明本来就已经不在脚本正文里了，顺手把只会返回空的那个函数删掉，免得代码看起来还能拿到"
    ],
    "1.21.14.62": [
      "【改进】「分数设置」的流程顺过来了：先把题号识别出来，再逐题填分值和答案。「检测页面输入框」这个按钮改叫「识别题号」—— 名字跟老师自己的说法对齐，不用猜它是干什么的",
      "【改进】分数表每行的「答」按钮改成「编辑答案」，而且**点题号本身**也能展开该题的答案设置。原来只有行尾那个小按钮能点，而「答」这个名字看不出点了能干什么",
      "【改进】「批改上下文」（题目 / 参考答案 / 评卷标准）默认收起。它是所有小题共用的兜底，不是每次都必须来这儿填：一道大题有几道小题时，把各小题的答案全堆在一个框里，模型反而容易串",
      "【改进·放宽必填】逐题填了答案，全局那份就可以留空了：只要每道小题都填了自己的参考答案 / 评卷标准，「批改上下文」里不填也不再算缺项、不再拦着保存（保存校验和页签红点同步放宽）。没配小题的单题模式仍然必填 —— 那时全局那份是唯一的来源"
    ],
    "1.21.14.61": [
      "【新增】进入页面即检测更新。原来它挂在「检测到阅卷页」之后、还要再等 5 秒 —— 等于进了页面好一会儿才去看有没有新版本；而且 24 小时内只查一次。老师刷新页面往往就是想确认新版装上没有，这个顺序恰好把最该早的事排到了最后。现在脚本一加载就查，且每次进页面都查（更新清单只有 ~1KB）",
      "【修复·影响分数】设了步长却没落到「逐点得分」上：单题模式的提示词完全没提步长，模型就照着评分标准里「酌情给 0.5 分」的描述逐点给半分级分数，各点加起来 1.5，系统最后才把总分取整成 2 分 —— 于是「分数计算」写着 0.5+0+1+0=1.5、顶上的分数却是 2，看着像算错了。现在刻度（本题满分、最小刻度、允许给的分值）和「标准分值比刻度细时怎么吸附」都写进提示词，并要求算式结果等于得分。分小题 JSON 那条路径早就有这个约束，单题漏了",
      "【新增】单题模式下，模型给的分被取整过时，弹窗里明确写一句「已按步长 X 分取整为 Y 分」，并说明下面的「分数计算」是模型写的原始算式 —— 原来这两个数对不上，老师只会怀疑分数算错了"
    ],
    "1.21.14.60": [
      "【修复】AI 润色会把结果写坏：替换选区时右侧截断点写死成了「占位标记的长度」，只有第一次替换是对的。从第二次流式更新起它落进了上一次结果的内部，把上一次的尾巴当成\"原文\"留下来，一轮轮往后叠碎片；文本短的时候还会越过字符串末尾，把选区之后的正文整段丢掉",
      "【修复】模型偶尔会陷入「重复退化」（同一个短语连着输出几十遍），原来的「AI润色」会把这坨内容**原样写进编辑器**，还提示「AI润色完成」。现在写回之前先判一次：长度是否翻倍、是否有大段重复、是否有整行重复 —— 不像话就整段丢掉、保留原文，并明确报错说清原因",
      "【说明】重复判据是**和原文比**，不是看绝对值：评卷标准里本来就常有大量重复内容（\"赊\"、\"赊\"、\"赊\" 这种逐字列举），照抄一遍是正常润色。误判的代价是老师一次**正常**润色被丢掉、还得重来，比漏判更烦人",
      "【说明】提示词也补了防复读约束：逐字保留原文、绝对不要重复输出、条目数与顺序不变、输出长度与原文相当。评卷标准这类「大段重复引号」的文本本来就是复读高发场景，不点明它就顺着往下抄"
    ],
    "1.21.14.59": [
      "【修复】打开设置抽屉时，右下角那三个按钮（设置 / 历史 / AI 批改）浮在抽屉内容上面 —— 抽屉 z-index 10000、按钮 99999。现在抽屉一开，整列自动左移、贴到抽屉左边缘站着，关掉再移回原位；移动和抽屉滑入是同一帧一起动，不会先滑抽屉再跳按钮。和主按钮并排的「全自动批阅」状态条、复核徽标、流式面板也跟着一起挪",
      "【说明】为什么不让抽屉干脆盖住按钮：「评阅历史」和「评阅详情」正是这么做的（z-index 2147483647，天然压在上面，不用管）；但这三个按钮是随时要用的，抽屉开着照样得能点。窄屏（< 800px）放不下时退回被盖住，而不是把流式面板挤出屏幕"
    ],
    "1.21.14.58": [
      "【修复】右下角几个按钮叠在一起了：流式面板（「AI 分析流输出」）原来停在 bottom:100px、宽 340px，正好把「历史」和「设置」两个圆形按钮整个盖住；而「复核异常」徽标停在 right:20/bottom:150，又正好压在设置按钮上 —— 它 z-index 比按钮高三个数量级，所以徽标一出现，设置按钮就点不动了，而且完全看不出是被盖住的",
      "【改进】右下角改成一条明确的竖向堆叠，从下往上：AI 批改(40) → 历史(95) → 设置(150) → 复核徽标(205) → 流式面板(255)，每两档之间留 9~16px，谁也不压谁。这份清单写在 ui-button.js 顶部，以后往这个角落加东西照着排就行",
      "【改进】流式面板内容区的上限改成 min(220px, calc(100vh - 400px))：面板被抬高之后，矮屏上再让它无限往下长就会顶到顶部那条批改进度栏"
    ],
    "1.21.14.57": [
      "【新增】评分标准和参考答案可以「AI 优化」了：在评阅详情的「AI 评分标准」里点一下，AI 会看着这份卷子（答题卡 + 学生答案 + 现有标准）给出改进后的参考答案和评分标准，附修改理由，分析过程流式显示在右下角。看完点「应用」才写回当前方案 —— 不点就一个字都不会变",
      "【说明】AI 优化的依据来自这份卷子本身：老师打的分 / AI 复判的建议分 / 其他模型的分，只要有一个和 AI 判的分对不上，就说明标准漏了点什么，AI 才有改进的方向。都一致时不跑 —— 硬跑只会得到一句「不变」，或者更糟：它自己找个理由乱改一通",
      "【说明】复用修正面板那套「提示词优化」，不是另写一套。同样只改**当前方案**的参考答案和评分标准，影响之后批的卷子，已提交的分数不追溯；题目不动（题面是老师从卷子上抄的，AI 改它风险大于收益）",
      "【说明】写回时保持字段原有形状 —— 评分标准里可能嵌了图片，直接覆盖成纯文本会把图一起抹掉"
    ],
    "1.21.14.56": [
      "【改进】详情里的「AI 分析」会实时显示分析过程了：点「让 AI 复判一次」，右下角弹出「AI 分析流输出」面板，模型写一句你看一句 —— 和试改批改时用的是同一个面板、同一套函数。原来那十几秒只有一句「正在复判…」，看不出脚本是死了还是在干活",
      "【改进】同一份卷子不再被说两遍：「后台二次复核」（首判 0 → 复核 0）和「AI 分析」（建议 0 分）原来是两个并排的框，说的其实是同一件事，看着像两套不同的机制。现在合成一个「AI 分析」区块 —— 手动复判是主角，后台自动复核收进底部当背景信息（逐题差异和「复核模型的分析」折叠块都还在）",
      "【说明】「跑几个模型」时右下角那个面板当进度条用，只列每个模型的状态，不塞流式原文 —— 几个模型是并发跑的，原文互相覆盖会糊成一团。无人模式下不弹这个面板（教师不在电脑前，弹了没人看）"
    ],
    "1.21.14.55": [
      "【新增】评阅详情里多了「评分对比」：可以自己打一个分，也能让另外几个模型各判一遍，摊开来看。一个分数可不可信，看的是它稳不稳 —— 下面会直接算出跨度（例：3 个分数 1 / 1.5 / 2，跨度 1 分）。跨度小说明这题判得住，跨度大说明标准本身有争议",
      "【新增】「老师打分」：填一个自己的分数保存下来，和 AI 的分并排对比。长期攒下来这些就是「AI 判偏了」的样本 —— 不一致的记录会在历史列表里挂「老师 N」标签，方便回头看",
      "【新增】「AI 评分标准」可以就地查看和修改了：正在看某一份卷子时发现标准写得含糊（比如「答到共同点给 1.5 分」到底要不要点明），直接在详情里改，不用关掉抽屉进设置翻那一栏。**改的是当前方案的标准，影响之后批的卷子，已经提交的分数不会追溯**；想让手上这份按新标准重判，用上面的「让 AI 复判一次」",
      "【说明】「其他模型」跑哪几个：优先用你为「独立判断」特意配过的那些 —— 工作流的副模型/仲裁模型、以及后台复核模型；都没配就取前两个可用模型。当前模型排除在外（它已经判过了），一次最多跑 3 个。某个模型失败不影响其余几个，失败原因会写在该行上"
    ],
    "1.21.14.54": [
      "【新增】评阅详情里多了「AI 分析」：点一下「让 AI 复判一次」，AI 会按同一套评分标准独立再判一遍，直接告诉你「建议 N 分」、比当前分数高还是低多少、以及它的理由。原来看不出「这份到底该给几分」，只能自己从 AI 评语里逐条拼",
      "【说明】盲评：复判时不告诉模型当前给了多少分 —— 说了它只会顺着复读（后台二次复核当初也是同样的原则）。配了「复核模型」就用它来复判，换个模型才算真独立；没配就沿用当前模型",
      "【说明】按需触发，不会每份自动跑，不额外占额度。结果存进历史，关掉抽屉再打开还在，不必为同一份反复花调用。分析过、且建议分与最终分不一致的记录，历史列表里会挂一个「AI 建议 N」标签，方便回头找"
    ],
    "1.21.14.53": [
      "【新增】评阅详情里的「后台二次复核」多了一块可展开的「复核模型的分析（它为什么这么判）」：里面有复核模型自己的总评，以及**有差异的那几题**它给出的理由。原来只有「首判 1 → 复核 2」两个数字，看不到任何理由 —— 而「要不要回退重判」恰恰得知道它凭什么这么判。这段内容其实一直在数据里，只是从来没被读出来过",
      "【说明】复核一致时不保存这段分析：历史记录有体积上限、超了会截断旧记录，不为用不上的内容挤掉真正要留的记录"
    ],
    "1.21.14.52": [
      "【新增】复核异常可以一键跳去看原卷了：打开「后台二次复核」面板，每条结果下面多了「查看原卷」，点了直接打开那份卷子的评阅详情（学生答案、AI 评语、答题卡、逐题得分）。原来面板只给分差和逐题差异，而「要不要回退重判」恰恰要看这些 —— 只能关掉面板、自己去评卷历史里翻，可历史里并没有标记哪一份是复核异常的，等于找不到。历史被清理过的会明确提示，不会点了没反应"
    ],
    "1.21.14.51": [
      "【新增】转入全自动后，右下角（「AI 批改」按钮左侧）多一条状态条：「● 全自动批阅 · 继续弹窗观察」。点了「好，别再弹了」之后确认窗不再上屏，而原先你既看不到脚本在干什么、也没有任何回头路 —— 想切回逐份确认只能刷新页面。现在一眼能确认当前模式，点一下「继续弹窗观察」就切回每份都弹窗，再点一下切回全自动，不用重刷",
      "【说明】切回逐份确认后不会再弹「要不要关掉确认窗」—— 你刚才已经明确说要继续弹了。想回全自动点那条状态条即可"
    ],
    "1.21.14.50": [
      "【修复】设置里点「检查更新」总是弹「未配置更新地址」：渠道地址原来有**两份**配置 —— build.js 里那份负责写脚本头的 @updateURL，config.js 里那份供脚本内检查用。上一版配 OTA 时只改了前一份，于是 Tampermonkey 能自动更新、但脚本自己的「检查更新」按钮一直说没配。现在合并成一份（config.js 的 CHANNELS），两边同源",
      "【修复】更新清单文件 manifest.json 没有被发布到服务器上，就算地址填了也会 404。现在构建后随脚本一起发布"
    ],
    "1.21.14.49": [
      "【新增】「AI 分析流输出」面板可以拖动了：按住标题栏拖到别处，位置在本次会话内保留。它原来固定停在右下角，而那里往往正是你要看的答题卡和分数框",
      "【新增】历史记录显示每题耗时：左侧列表是「14:32 · 8.6s」，完整面板是「耗时 8.6s」。从这份卷子开始批算到提交完成；中途暂停过（超过 10 分钟）的不记，免得污染统计",
      "【新增】左侧历史每条可以直接点开详情，不用先展开完整面板、再找那条、再点「详情」",
      "【调整】单次 AI 请求超时从 120 秒改为 60 秒，并且超时后会自动重发一次（最多 2 次，与服务端错误共用重试预算）。原来超时直接判失败，你得看清提示再手动点一次重试",
      "【修复】「评卷历史」面板在无关页面上也显示：光大阅卷 V2 的识别原来只判断「页面上存在 li.f-csp 元素」，而 f-csp 不是罕见类名 —— 任何页面碰巧有一个这种元素就会被判成光大阅卷、适配器随即注册、面板跟着冒出来。现在要求它是一排分值选项，并校验内容像不像分数",
      "【修复】脚本更新后配置丢失：方案列表解析失败时原来会换成一份空数据顶上，之后任何一次保存都会把它写回存储，把逐题填的分值/答案/密钥一把盖掉。现在解析失败会先尝试从备份恢复；首次保存前也会把更新前的那份配置留一份备份"
    ],
    "1.21.14.48": [
      "【修复·影响分数】双评模式下两个模型分差在阈值内时取平均，用的是写死的整数取整，没按你设的分值步长走。步长 0.5 的题若 A 给 1.0、B 给 1.5，双评只给 1 分，而单评会给 1.5 —— 同一份卷子走双评比走单评少半分。现在统一按步长取整，小题自己的步长优先",
      "【修复·影响分数】取整会把分数顶过满分：满分 1.3 的题、步长 0.5 时 1.3 被抬成 1.5。原来的截断写在取整之前、挡不住这一下，多出来的分会被写进平台的输入框（被拒绝或存成超满分）。现在取整之后再夹一次满分",
      "【修复·配置不生效】在编辑器里改完题目/参考答案/评卷标准之后，面板不显示「未保存」，点「AI 批改」也不会被未保存提醒拦住 —— 结果是改完答案直接开批，用的还是上次保存的那份（可能是空的），全程没有任何提示。现在改完立刻标记为未保存",
      "【修复·数据丢失】历史记录里的答题卡图片迁移到本地库时，若迁移失败，原来的图片数据也被一并删掉、并紧接着落盘，等于永久丢失且无法重试。现在失败就保留原图"
    ],
    "1.21.14.47": [
      "【修复】「先确认几份再转全自动」功能做了却像没做：计数语句写在「启用批阅份数限制」的判断之后，而默认配置根本没勾那个开关，于是计数恒为 0、询问框永远不出现。现在「本脚本批了多少份」无条件记账，与是否限流无关；刷新页面也会从会话存储恢复，不再从头数"
    ],
    "1.21.14.46": [
      "【修复】「评卷历史」面板在无关页面上也显示：脚本的 @include 里有一条「IP:端口」正则（本意是覆盖光大阅卷那类内网部署），而学校内网 IP 没法预先枚举、正则只能放宽，于是 http://127.0.0.1:8399 这类本地工具页面也会被注入脚本。主按钮早有「未检测到批改页面就跳过初始化」的守卫，这个面板当时漏了，现在补上 —— 只在真正识别到阅卷平台时才显示"
    ],
    "1.21.14.45": [
      "【调整】新手引导从 5 步砍到 1 步：只填 API 密钥，填完立刻能用。原来还要依次填方案名、批改模式、批改工作流、批改上下文 —— 这四项都有合理默认值，需要细调的人去设置面板改就好，不该在第一次打开时就拦住人",
      "【修复】新手引导「关不掉」：原来点「以后再说」只把窗口移除、没记标记，下次进页面照样弹出来。现在关闭（含右上角新增的 × 按钮）会记住，不再自动弹出",
      "【新增】新手引导右上角加 × 按钮，任何一步都能一键关掉"
    ],
    "1.21.14.44": [
      "【新增】每道小题可以填自己的参考答案和评分标准：「分数设置」里每题多了一个「答」按钮，展开即可填写。各小题考查点不同时不用再往通用的那一栏里挤（留空继续用通用的；两边都填时以小题自己的为准）",
      "【修复】小题答案送往提示词的链路上断了两处：派生 subQuestions 时只取了 label/满分/步长，答案被静默丢掉 —— 界面上填了、配置里存了，模型却收不到，而且不报任何错。现在主批改与三评仲裁两条路径都会带上",
      "【修复】点「检测页面输入框」重建分值表时会把已填好的答案清空，现在按位置保留"
    ],
    "1.21.14.43": [
      "【新增】启用脚本自动更新：头部写入 @downloadURL / @updateURL，指向自建分发地址 https://dd.sakaay.com/files/zhixue_ai_marking.user.js。以后发布新版本，Tampermonkey 会自己发现并提示更新，不用再手动装 zip",
      "【注意】这一版仍需手动安装一次 —— 之前构建的脚本头部没有更新地址，Tampermonkey 无从得知去哪里检查新版本。装上这版之后才会开始自动更新",
      "【说明】更新地址直接指向 .user.js 本体，不再从 manifest.json 的路径推算脚本名（那要求分发目录同时放两个文件，少一个就静默 404、自动更新失效）"
    ],
    "1.21.14.42": [
      "【新增】「先确认几份再转全自动」：设置 →「方案」→「运行模式」，填份数（默认 3）。前几份照常弹确认窗，批够后会问要不要关掉确认窗；选「别再弹了」之后每份直接提交，不用再等倒计时",
      "【新增】左侧常驻「评卷历史」：每批一份实时更新，显示 得分/满分 与时刻，教师改分和空白卡会打标记，低分标红；可折叠，底部「查看全部」打开完整面板",
      "【修复】转全自动后，分数自相矛盾的卷子会被静默提交：原来复用的 holdForMismatch 只在无人模式下才为真，普通模式转全自动后它恒为 false。现在单独判定，任何模式下分数对不上都会让窗口上屏、等教师确认"
    ],
    "1.21.14.41": [
      "【新增】「批阅份数」新增「批到页面任务完成就停」：勾上后不用填份数，每次批完自动读页面上的「已阅量/任务量」，批满就暂停。任务份数经常变、或已经批过头时用这个",
      "【调整】两套进度数字不再混：浮条改为「本脚本已批 N 份 · 页面 X/Y」并注明来源，设置面板里的状态加了「本脚本」前缀 —— 原来它和「页面显示：已阅 206/101」并排放着，很容易看成同一个数",
      "【修复】只勾了「启用批阅份数限制」而没填目标份数时，顶部会挂一个毫无信息量的「批阅进度: 0/0 (0%)」浮条，现在这种配置下不再显示",
      "【修复】开始批改前先确认页面任务是否已完成：已满时直接不启动，不再出现「已经超额一百多份、点一下又继续批」",
      "【修复】任务份数模式读不到页面进度时继续批，不会因为读不到就停住；重置计数时也不会动页面进度（那是平台的事实）"
    ],
    "1.21.14.40": [
      "【修复】致命报错「Uncaught ReferenceError: panel is not defined」：fillFormFromActivePreset 里误用了 createSettingsPanel 的局部变量 panel。每次换题（题目变化检测会触发方案下拉变更、进而重填表单）都会抛错，并把随后的表单填充整个打断 —— 表现为设置面板显示不全、批阅份数的「页面显示：已阅 X / 任务量 Y」提示不出现",
      "【新增】测试守卫：扫描全文件 panel. 的用法，凡所在函数没有持有 panel（参数或内部声明）就当场失败。这类错误语法完全合法、编辑器不报，只在运行时才炸"
    ],
    "1.21.14.39": [
      "【新增】「批阅份数」可自动读取页面任务量：打开设置面板会读阅卷页上的「已阅量/任务量」，显示「已阅 X / 任务量 Y，还差 N 份」；目标份数为空时按剩余待批自动填好",
      "【新增】「批阅份数」里的「读取页面任务量」按钮，可随时重新读取",
      "【说明】读取为跨平台通用实现：不写死某个平台的选择器，改为扫描页面文本匹配「任务量」+「数字/数字」，换平台或平台改版都不用改代码；日期（2026/10/11）与分母为 0 的无效数据不会被误读"
    ],
    "1.21.14.38": [
      "【新增】题目变化时自动重新检测分值：翻到新题会自动按页面输入框重建小题数与满分，不必再手动点「检测页面输入框」（不同题型的小题数/满分不同，一直沿用上一题的配置会让分数算错且不报错）",
      "【新增】「分数设置」新增开关「题目变化时自动重新检测分值」，默认开启；面板里正在编辑且尚未保存时不会被自动覆盖，检测结果为空时也不会覆盖",
      "【调整】检测到题目变化后先切换绑定方案、再写分值，避免把这一题的分值记到上一题的方案上；自动批改循环运行中同样会重新检测"
    ],
    "1.21.14.37": [
      "【调整】设置面板三个页签从左侧竖排改为顶部横排：内容区宽度从「面板宽 - 112px」变成整行，窄面板下横向空间多出一倍",
      "【调整】页签平分整行、选中态由左侧竖条改为底部横线；页面内不再重复显示页面名（顶部页签已有）",
      "【优化】切换页签后自动回到顶部，不再停留在上一个页面的滚动位置"
    ],
    "1.21.14.36": [
      "【调整】打分面板两种模式共用同一块：单题模式也合成一行「本题」照常铺分值，不再做成\"有小题才显示\"——那样单题模式下这块就是空白，教师找不到改分入口",
      "【优化】面板标题随模式自动切换：「各小题得分」/「本题得分」，位置和操作完全一致"
    ],
    "1.21.14.35": [
      "【修复】单题模式（平台只有一个「打成分步」控件、没有评分单元）下弹窗里没有打分面板：总分环下面一片空白，教师根本没法改分。现在改为在同一位置铺出「最终得分」的可选值（按总满分和步长）",
      "【优化】改分措辞统一为「教师改分」（原来写死「教师逐题改分」，单题模式没有小题，说法不对）"
    ],
    "1.21.14.34": [
      "【调整】人工打分改成弹窗内常驻面板：每题的可选分值直接铺在「各小题得分」里，点一下即定分，不用再跳独立面板",
      "【新增】点分值立刻停住倒计时（点分数即接管），并同步更新总分环、标注该题「已改」、顶部显示「AI X → 你 Y」",
      "【修复】教师改分后提交时会重新把分数覆盖回平台输入框 —— 分数在弹窗弹出前就已写入，不回填的话送出去的仍是 AI 原分数",
      "【调整】教师逐题改分后不再入队后台二次复核（人已逐题看过，复核没有意义）；历史记录标记为已修正并写明改了哪几题",
      "【调整】「暂停」按钮改为只停倒计时并提示改分入口，不再跳到独立面板",
      "【移除】弹窗底部的「✍️ 人工打分」按钮与独立打分面板；ui-quick-score.js 只保留候选分值计算"
    ],
    "1.21.14.33": [
      "【调整】设置面板合并为三页：删除「AI」「自动化」两个 tab —— AI 配置（工作流/供应商/密钥/模型）与运行模式并入「方案」，批阅份数并入「批改」",
      "【修复】「总分不一致处理」与「后台二次复核」两个设置区块从未显示：没被 moveSection 搬走，被 replaceChildren 静默抹掉",
      "【修复】提交弹窗空白过大的根因：Markdown 渲染后的 HTML 撞上容器的 white-space:pre-wrap，换行被再算一次并叠加 <p> 默认外边距，行间空白翻倍。现在渲染后自动切换为正常排版",
      "【调整】提交弹窗紧凑化：加宽到 1010px、内容区高度 520px→68vh、区块间距 16px→10px、内边距收紧，评分依据/评语显示高度分别提到 280px/320px",
      "【修复】流式输出面板同样存在 pre-wrap 与 Markdown 换行叠加导致的空白翻倍，一并修正"
    ],
    "1.21.14.32": [
      "【修复】致命崩溃：提交弹窗里 startPaused 声明在使用之后，触发 TDZ（日志只有「Cannot access 'w' before initialization」），导致每一份卷子在填完分后直接中断批改",
      "【新增】提交弹窗「构造期冒烟测试」：用 DOM 桩把 showAutoSubmitDialog 在所有模式/选项组合下真跑一遍，任何 TDZ / ReferenceError 都会当场变成测试失败（已验证能拦住上面那个 bug）"
    ],
    "1.21.14.31": [
      "【修复】链接模式下后端抓不到图片（400「图片无法识别/文件已损坏」）会让整批卡死在该份上：现在自动下载图片、改用 base64 重发一次，判分不再中断",
      "【优化】图片发送方式说明改为实测结论：本机后端抓不到智学网图片（图片需登录态，裸抓只得到登录页），除非确有必要请保持关闭"
    ],
    "1.21.14.30": [
      "【修复】请求耗时日志「全程」那行把总耗时又当成\"等首字\"打印，前后分不开；改为首次数据块时记下时刻，最终输出「全程 = 等首字 + 生成」的拆分",
      "【优化】耗时日志直接给出瓶颈判定：等首字久→降思考档位/压小图片/换模型；生成久→精简输出"
    ],
    "1.21.14.29": [
      "【新增】后台二次复核：首判照常立即给分、立即提交，后台对同一份卷子独立再判一次，两次比对不一致就提示（设置→自动化→后台二次复核）",
      "【新增】复核结论写入历史记录：列表显示「复核一致 / 复核不一致 6→7.5」标签，详情抽屉给出逐题差异，CSV 导出新增复核三列",
      "【新增】未处理的复核异常在页面右下角常驻徽标，点击可查看复核结果面板",
      "【说明】复核为盲评 + 事后审计：不把首判结果喂给模型（否则只会复读），且复核完成时分数已提交、脚本无法撤回，故只提示由教师决定是否回退重判"
    ],
    "1.21.14.28": [
      "【修复】AI评语不再采信模型的自由文本：改为由各单元自带的理由拼装，教师看到的原因与分数必然出自同一份数据（此前出现过\"评语写0分、score填1.5\"导致多给分）",
      "【新增】逐题自相矛盾检测：若某题的评分理由里写的得分与 score 字段对不上，弹窗标红列出该题，并按「总分不一致处理」设置拦下自动提交",
      "【优化】JSON 输出要求每个单元自带 comment（含最终得分），并要求先判定对错再给分；原始响应打进控制台，便于分辨是模型填错还是脚本解析错"
    ],
    "1.21.14.27": [
      "【新增】人工打分面板：按各题步长把可选分数摊成一排按钮，点选即定分，实时显示与 AI 的差值，确认后按教师分数回填并提交",
      "【新增】提交弹窗新增醒目「人工打分」按钮（占满一行）；点「暂停」也直接进入该面板 —— 暂停即接管，人工复核不用再手敲数字",
      "【修复】从人工打分面板取消回到弹窗时以暂停态打开，避免自动模式 1 秒倒计时在教师看清之前就把分数提交出去"
    ],
    "1.21.14.26": [
      "【新增】预置候选模型并带推荐思考档位：cn:glm-5.3-flash / cn:deepseek-v4.1-flash / global:glm-5.3-flash 默认填 off，cn:hy3 默认填 low",
      "【新增】工作流编辑里切换模型会自动套用该模型的推荐思考档位；模型列表直接标出「思考 off/low」",
      "【优化】预置模型为非内置（可删除），且只自动补入一次，删掉后不会在下次加载时被塞回来"
    ],
    "1.21.14.25": [
      "【新增】设置→AI→模型列表新增「拉取」按钮：读取网关 /v1/models 一次性加入全部可用模型（内置列表原本只有 1 个）",
      "【优化】模型输入框支持批量粘贴：逗号 / 空格 / 分号 / 换行分隔均可一次添加多个，不再逐个手敲"
    ],
    "1.21.14.24": [
      "【新增】设置→数据→「总分不一致处理」：可选自动模式下是否也停下来等教师确认（默认停下）",
      "【新增】总分不一致且选择停下时，自动模式本次不再倒计时提交，标题标红显示「自动模式·已暂停待确认」，并放出「分数有误」按钮"
    ],
    "1.21.14.23": [
      "【变更】模型自报总分对不上时不再作废重跑：取各单元之和给分，并在提交弹窗标出「模型总分自核对不上」请教师核对。重跑要再发一次带图请求，代价远高于复核",
      "【新增】提交弹窗新增不一致提示：显示模型自报值、各单元之和、以及已按求和值给分"
    ],
    "1.21.14.22": [
      "【变更】撤回「大题 → 小题」层级设计（path 数组）：真实结构是扁平题号列表，path 属臆想，且冗余、token 高",
      "【新增】总分交叉校验：各单元先按各自步长取整 → 求和 → 与模型自报总分（同样按步长取整）比对，一致才给分，不一致本次作废并重新评分",
      "【新增】JSON prompt 列出每个单元的可选分值刻度（按步长枚举），减少模型给出步长外的无效分数",
      "【优化】移除不参与计分的「所属大题」列，评分单元表格恢复为 小题/小题分/步长 三列"
    ],
    "1.21.14.21": [
      "【新增】支持「大题 → 小题」层级：评分单元可填所属大题，JSON 改用 path 数组下发，小题名重名也不会错配",
      "【优化】只让模型给最末级单元打分，大题分由系统按小题自动求和，父子层级永远一致",
      "【优化】path 匹配失败时的兜底顺序重排：label 不唯一时不再重复命中同一条（旧扁平格式下的重复计分）",
      "【新增】分数设置表格新增「所属大题」列"
    ],
    "1.21.14.20": [
      "【优化】JSON 输出精简：只要求「识别结果 + 各小题分数 + 勤勉等级」，明确禁止写评分理由、评语、计算过程。阅卷是匿名的，不需要给学生写评析，少生成一大段输出 token 也更快"
    ],
    "1.21.14.19": [
      "【优化】一次性迁移：输出上限低于 4096 的工作流自动提升到 8192。旧版默认值 2048 会让思考模型的思考 token 挤占预算、频繁触顶整卷重跑，时间翻倍"
    ],
    "1.21.14.18": [
      "【新增】分小题模式改为优先要求 AI 返回 JSON：请求体带 response_format=json_object 由后端强制约束，字段固定、无正则误匹配",
      "【变更】JSON 模式下总分一律由各小题 score 求和得出，模型自报的 total_score 只作对照告警、不参与计算",
      "【优化】JSON 解析失败或后端不支持 response_format 时，自动退回文本格式重试并记下标志，判分不会中断",
      "【新增】工作流编辑新增「要求 AI 返回 JSON」开关（默认开启）"
    ],
    "1.21.14.17": [
      "【修复】总分与小题之和对不上：解析器原来直接采用 AI 自报的【总分】（小题之和算完即弃），模型常把自己写的总分算错。现在小题全部解析成功时一律以小题之和为准",
      "【修复】引导创建小题时步长写死「整数」，满分 1.5 的题会被 Math.round(1.5)=2 抬成 2 分。改为按满分自动推断（小数满分用 0.5）",
      "【优化】分数设置区新增「步长是什么、怎么选」说明，讲清 1.5→2 这个最常见的分数虚高原因"
    ],
    "1.21.14.16": [
      "【修复】编辑工作流弹窗模板多出一个 </div>，提前关闭了负责滚动的 modal-body：内容一超高就被裁掉、滚不动，保存按钮顶出可视区",
      "【优化】三段散落的黄色提示合并为弹窗顶部一个「两个影响速度的关键项」框，弹窗恢复可滚动"
    ],
    "1.21.14.15": [
      "【优化】思考参数说明改为直接指出：留空等于用接口默认档，而本机模型默认档全是 high"
    ],
    "1.21.14.14": [
      "【新增】思考深度选项补全 off / none / xhigh / max（对齐后端模型列表实际支持的取值）",
      "【优化】回答长度上限默认 4096 → 8192：思考模型的思考 token 也吃这个预算，上限太小会频繁触发整卷重跑（思考重来一遍，时间翻倍）",
      "【新增】[AI响应] 日志改为可读格式，直接显示思考字数 / 正文字数 / 思考占上限的比例",
      "【优化】设置界面补充「思考参数影响速度」与「思考 token 占用输出预算」两处说明"
    ],
    "1.21.14.13": [
      "【优化】图片压缩改用 createImageBitmap + OffscreenCanvas 异步编码：多张图真正并行，且不再阻塞主线程卡住页面"
    ],
    "1.21.14.12": [
      "【优化】进入阅卷页不再白等 10~12 秒：主页面同步检测优先，iframe 等待降为兜底且由 10s 缩到 3s",
      "【修复】初始化会被并发触发两次（检测多跑一轮、设置面板被重复重建）",
      "【优化】默认回答长度上限 2048 → 4096，减少「回答超长」触发的整卷重跑（重跑要重传图片）",
      "【新增】请求耗时日志：区分「等首字」与「生成」，并打印请求体大小、图片模式、max_tokens",
      "【优化】图片发送方式的说明改为提示真实代价：链接模式省上传带宽但推理更慢"
    ],
    "1.21.14.11": [
      "【新增】设置面板左下角显示构建版本号，确认装的是哪一版不用再猜"
    ],
    "1.21.14.10": [
      "【新增】设置 → 数据 → 图片发送方式：可让 AI 后端直接抓取答题卡图片链接（默认关闭）",
      "【新增】判卷计时日志：取图/压缩耗时、AI 请求耗时、是否因回答超长整卷重跑",
      "【优化】答题卡图片长边超过 1600px 时自动压缩，减少视觉 token 开销",
      "【优化】修正发图 MIME 写死 PNG 的问题，按真实类型（JPEG/PNG/WebP）发送",
      "【优化】非阅卷页面不再空跑 6 秒检测轮询，修复智学网站内页面日志刷屏",
      "【修复】已有配置方案时不再反复弹出配置向导；题目标识加防抖，避免切题瞬间误判"
    ],
    "1.21.14.9": [
      "【修复】自动批改频繁暂停：平台加载下一份失败时超时后自动重试，不再直接暂停需手动点继续",
      "【修复】13 个平台等待下一份超时窗口 10 秒对齐到 25 秒，避免平台加载慢时误判"
    ],
    "1.21.14.8": [
      "【修复】九科星批改错位：分数总是提交到下一份试卷，原因是切卷检测误把输入框清空当切卷信号，现只以图片变化为准并校验图片已加载"
    ],
    "1.21.14.7": [
      "【新平台】新增南昊AI教学提分平台 (nhcisc.com) 适配，支持 showimage 答题图取图、满分 placeholder 提取、clearNoNum 分数归一化和换卷检测"
    ],
    "1.21.14.6": [
      "【新功能】纠错支持「仅修改分数」模式，跳过提示词优化只改分数不重跑 AI",
      "【修复】纠错面板按钮无响应：collectFeedback 内改自计算 hasSubScores，修复作用域丢失"
    ],
    "1.21.14.5": [
      "【修复】上进教育平台绑定试题后刷新误弹新试题引导：任务标识误含每次进页都变的会话 ID，现改用 pathname+data-key 并自动迁移旧绑定"
    ],
    "1.21.14.4": [
      "【新平台】新增上进教育服务云平台 (sipd.cn) 平台适配，与威科姆悦卷通同构，支持 data-stu 换卷检测、平台任务标识和0分确认弹窗自动处理"
    ],
    "1.21.14.3": [
      "【修复】工作流双评配置（分差阈值等）在版本升级时被覆盖为默认值，现只补缺失字段保留用户自定义值",
      "【修复】教师反馈小题分留空时总分实时计算未回退到 AI 原始分"
    ],
    "1.21.14.2": [
      "【修复】增强 AI 请求5xx错误重试（最多2次、递增延迟），HTML 错误页不再原样显示",
      "【修复】提示词分析失败后新增「重试分析」按钮，无需重走整个流程",
      "【修复】教师反馈未填写的小题分使用 AI 原始分而非默认 0 分",
      "【优化】分析中点「返回修改」回到上一步保留编辑状态，而非退出弹窗"
    ],
    "1.21.14.1": [
      "【修复】三评仲裁下多小题只给单个总分的问题，仲裁现在支持逐小题评分并保留小题分",
      "【修复】单题模式评分提示词中满分值永远显示\"未指定\"的问题",
      "【修复】评分提示词约束统一：补齐划掉内容无效、未识别答案处理、严格按标准评分等约束",
      "【修复】纠错/提示词优化参照旧格式提示词的问题，改为与实际批改一致的结构化格式"
    ],
    "1.21.14": [
      "【新平台】新增九五优评 (timesphoenix.com) 平台适配，支持 iframe 阅卷界面取图、分给分点评分、提交限速自适应和打分确认弹窗自动确认",
      "【修复】多小题模式下参考答案/评分标准未进入批改提示词的问题（连带修复提示词优化误报\"原评分标准完全缺失\"）",
      "【修复】提示词优化改为增量修订，强制保留原文全部条目细节，禁止概括压缩",
      "【修复】AI 输出算式（如 2+2=4）时分数解析误取第一个数字的问题",
      "【修复】双评模式下分数计算/评分依据/小题评语误显示单模型原文的问题，现按合并后平均分重建，两模型评分不同时并列展示双方依据",
      "【修复】双评小题评语在两模型给分一致但评语措辞不同时也并列展示双方意见",
      "【修复】双评总分与小题之和不一致时以小题之和为准，提交弹窗新增分数不一致提示和双评原始分展示"
    ],
    "1.21.13": [
      "【新平台】新增阅小二 (haoyuejuan.com) 平台适配，与五岳阅卷同构，支持 OSS 裁剪答题卡、分小题评分和回评模式识别",
      "【新平台】新增海云智评 (zp.kaow.cn) 平台适配，支持 OSS 裁剪答题卡多页取图、多小题满分提取和提交二次确认弹窗自动处理",
      "【新平台】新增鑫考内网版 (biluo/display.jsp) 平台适配，支持 fen 属性满分提取、inputkey 键盘确认提交和 URL query 任务标识",
      "【修复】补全脚本头 match 与 description 字段中的阅小二平台入口",
      "【修复】修复思考类模型输出额度被 reasoning 占满导致批改正文为空的问题，新增工作流回答长度上限配置（#107）"
    ],
    "1.21.12": [
      "【新平台】新增AMEQP网上评卷平台适配，支持内网裸IP部署、题块裁剪图取完整图、多评分单元和jQuery+EasyUI组件交互",
      "【修复】修复乐华阅卷满分按钮无法命中导致不自动跳下一张的问题：分数匹配改为数值解析，并兼容带「满」标记的按钮",
      "【修复】AMEQP答题卡取图裁切到题块可视区域，不再发送整张答题卡",
      "【修复】AMEQP填分后同步平台隐藏字段并延迟提交，避免\"没给分\"误跳下一份",
      "【修复】AMEQP任务标识改用题号，修复绑定试题后仍重复弹出引导界面的问题"
    ],
    "1.21.11": [
      "【新平台】新增C30教育云（大数据精准教学系统）平台适配，支持 Canvas 答题卡渲染和 Vue + Element UI 组件交互",
      "【优化】页面加载时自动检测满分值并写入配置，无需手动设置",
      "【优化】暴露 PresetManager 到全局，支持适配器在 onPageLoad 中读写配置"
    ],
    "1.21.10": [
      "【新平台】新增威科姆（悦卷通）平台适配，支持多小题评分、OSS 图片和键盘/鼠标/步骤三种打分模式",
      "【新功能】新增评分理由编辑功能及预览区，支持 Markdown 格式",
      "【修复】修复七天网络新域名（qt7.cn）无法弹出 AI 阅卷窗口的问题"
    ],
    "1.21.9": [
      "【新平台】新增科耘阅卷平台适配，支持 SVG 图片渲染和 Element UI 组件",
      "【新平台】新增慧学星平台适配，支持 OSS 图片托管和分步骤评分模式",
      "【新平台】新增粤教翔云智慧测评平台适配，支持题组批改模式",
      "【新平台】新增云阅卷(好分数)平台适配，Vue 3 + Element Plus 框架",
      "【新平台】新增光大阅卷 V2 平台适配，支持 IP:端口部署版本",
      "【修复】修复五岳阅卷平台更新后无法获取答题卡图片的问题，改用 DOM 结构匹配替代 URL 模式匹配",
      "【文档】更新文档站，平台数量从 14 个扩展到 19 个",
      "【文档】为 5 个新平台创建独立文档页面",
      "【文档】更新平台对比表、快速导航、SEO meta 信息",
      "【优化】科耘适配器初始化时自动取消\"打分键盘\"勾选，避免键盘输入被捕获导致误填分数",
      "【优化】科耘适配器采用延迟填分模式，用户确认后才填入分数触发自动提交",
      "【优化】科耘适配器提交前自动勾选\"自动提交\"，确保填分后平台能正常提交"
    ],
    "1.21.8": [
      "【新平台】新增54学霸阅卷平台适配，支持 Canvas/base64 图片渲染和多小题输入框评分",
      "【新平台】新增九科星阅卷平台适配，支持多小题评分和图片裁剪功能",
      "【新平台】新增慧阅卷平台适配，支持 frame 内部文档访问和评分功能",
      "【新平台】新增乐华阅卷平台适配",
      "【新功能】配置备份与恢复功能，确保更新时配置安全",
      "【新功能】评阅历史面板支持 Markdown 渲染，优化显示效果",
      "【新功能】评分弹窗评语支持滚动显示长评语",
      "【新功能】纠错面板添加 Markdown 编辑器预览功能，支持 AI 润色",
      "【新功能】双评阈值支持设为0，优化仲裁提示词",
      "【优化】AI 评分时自动忽略涂改、划掉的内容，只评判最终保留的答案",
      "【优化】重构 Markdown 渲染器，支持 LaTeX 块级和行内公式",
      "【优化】优化图片获取逻辑，增加有效性验证和超时处理",
      "【优化】改进分数匹配逻辑，优先精确匹配并增加模糊匹配策略",
      "【优化】增强分数解析逻辑，支持负数和超出满分的处理",
      "【优化】优化多个编辑面板的交互体验",
      "【优化】阻止 Enter 键冒泡，避免触发表单提交",
      "【优化】优化各面板 z-index 属性，确保覆盖层优先级正确",
      "【修复】修复五岳阅卷答题卡获取问题和多图片显示问题",
      "【修复】修复光大适配器多个稳定性问题",
      "【修复】修复乐华阅卷等待获取下一份试卷失败的问题",
      "【修复】修复乐华阅卷分数填充逻辑",
      "【修复】修复 OOBE 界面编辑题目后无法显示的问题"
    ],
    "1.21.7": [
      "【新平台】新增润建学情大数据精准分析平台适配，支持 CSS 背景图渲染和点击式评分"
    ],
    "1.21.6": [
      "【修复】修复光大V2适配器在SPA页面加载时无法正确注册的问题",
      "【修复】修复光大V2提交时错误触发firstUpdateUserInfo请求的问题",
      "【修复】修复光大V2答题卡与实际评阅不一致的问题",
      "【修复】修复光大V2刷新后重复显示OOBE引导界面的问题",
      "【修复】修复光大V2等待下一份试卷超时的问题",
      "【优化】光大V2提交流程重构：用户确认后才点击分数选项提交",
      "【优化】光大V2图片池使用bh-ddh作为包号标识，与界面显示一致"
    ],
    "1.21.5": [
      "【新功能】光大阅卷图片获取重构：使用密号(mh)索引图片池，通过页面密号精确匹配当前试卷图片，彻底解决图片错位问题",
      "【新功能】提交对话框新增「取消」按钮，可关闭面板不提交分数",
      "【新功能】提交对话框新增最小化/恢复功能，最小化后显示分数浮动条，方便核对答题卡",
      "【新功能】提交对话框支持拖动，可自由移动位置查看被遮挡的答题卡",
      "【优化】光大阅卷等待新试卷改用密号变化检测，比得分重置更可靠",
      "【优化】XHR 拦截器添加平台域名守卫，仅在对应平台上执行，避免影响其他平台",
      "【修复】修复光大阅卷脚本无法加载的问题（@match 模式从 *:// 改为显式 https://）",
      "【修复】修复 SPA 导航后 UI 不初始化的问题（init 调用移至 early return 之前）",
      "【修复】修复光大阅卷从第二份试卷开始图片不正确的问题"
    ],
    "1.21.4": [
      "【新平台】新增云阅卷平台适配，支持内网阅卷系统的自动批改",
      "【新平台】新增新教育智能平台适配，支持考试系统和作业系统两种批改模式",
      "【新功能】批改进度面板支持拖动，可自由调整位置并自动保存，避免遮挡网页原有内容",
      "【新功能】新手引导验证密钥时显示加载动画",
      "【新功能】新手引导验证密钥时自动清除之前的错误提示",
      "【优化】API 密钥验证速度优化，使用固定回复减少响应时间",
      "【优化】批改进度面板圆角样式优化",
      "【修复】修复新手引导弹窗可能重复弹出的问题",
      "【修复】修复批阅进度计数不更新的问题",
      "【修复】修复批改进度面板无法拖动的问题",
      "【修复】修复新手引导验证动画在深色按钮上不可见的问题"
    ],
    "1.21.3.0": [
      "【新功能】新增批阅份数功能：支持设置目标批阅份数，达到后自动暂停，可选择继续、停止或重置",
      "【新功能】新增工具页面 (/tools)：集中查看历史记录、关于信息、检查更新，无需进入阅卷页面",
      "【新功能】历史记录导出重构：统一导出栏，支持 JSON/CSV/HTML 格式切换，HTML 支持有图/无图导出",
      "【新功能】图片缓存跨域可见：在任意阅卷平台均可查看图片缓存大小，解决 /tools 页面显示 0.0 MB 的问题",
      "【新功能】图片三态标注：有图可导出、有图·无法导出、无图，仅 HTML 有图模式下显示",
      "【新功能】阅卷平台非阅卷页面注入历史按钮，无需进入阅卷页面即可查看历史记录",
      "【新功能】图片导出帮助说明：点击「为什么有的图片无法导出？」展开内联说明",
      "【新功能】历史面板新增分页功能，支持 10/20/50/100 条每页切换和页码跳转",
      "【新功能】油猴菜单拆分为「工具栏」和「历史记录」两个快捷入口",
      "【优化】图片筛选功能联动：仅在 HTML 有图模式下显示图片状态筛选",
      "【优化】getImageStatus 性能优化：添加内存缓存，解决大量记录时筛选卡死",
      "【优化】UI 风格统一：格式选择器、图片选项、导出按钮样式一致",
      "【优化】图片缓存大小显示优化：使用 navigator.storage.estimate() 替代 cursor 遍历",
      "【优化】HTML 导出分批加载图片：避免并发事务过多导致 IndexedDB 超时",
      "【优化】分小题分数应用取整规则：与总分取整逻辑保持一致",
      "【优化】双评模式小题分数取平均：两个模型的小题分数分别取平均后填入",
      "【修复】iframe 内重复注入：添加 @noframes 指令和 frame 检测",
      "【修复】选中按钮文字不变白：修复 CSS 优先级问题",
      "【修复】无人值守模式下无法手动检查更新：force 参数现在可绕过无人值守检查",
      "【修复】SPA 导航后工具页面不注入：添加 1.5 秒延迟等待 VitePress 渲染完成",
      "【修复】历史面板深色模式字体颜色问题：强制使用浅色主题",
      "【修复】无人值守模式暂停后自动刷新：清除自动刷新标记防止误触发"
    ],
    "1.21.2.203": [
      "【新功能】新增油猴菜单快捷方式：查看历史记录、打开设置、检查更新",
      "【新功能】新增光大阅卷平台适配，支持分小题给分、给分详情弹窗自动确认",
      "【优化】光大阅卷图片获取优化：通过 API 拦截精确获取当前试卷图片",
      "【优化】UI 样式隔离：添加 all: initial 防止平台 CSS 干扰",
      "【修复】修复光大阅卷刷新后按钮消失问题",
      "【修复】修复光大阅卷非批改页面显示按钮问题"
    ],
    "1.21.2.105": [
      "【新功能】新增光大阅卷 (pj.yixx.cn) 阅卷平台适配，支持 Canvas 渲染和点击式评分",
      "【优化】光大阅卷支持从 Canvas 提取答题卡图片，兼容跨域图片场景"
    ],
    "1.21.2": [
      "【新功能】新增工作流配置系统：内置快速批改/普通批改/双评模式三种工作流，支持用户自建、编辑、删除工作流",
      "【新功能】新增双评仲裁模式：两个 AI 模型独立评分，分差超阈值自动触发第三模型仲裁",
      "【新功能】新增思考链深度设置：支持 minimal/low/medium/high 四档推理深度，适配不同模型",
      "【新功能】新增用户引导：首次使用时分步引导配置 API 密钥、方案名称、批改模式和工作流",
      "【新功能】新增华翰云 (yunyuejuan.net) 阅卷平台适配",
      "【新功能】新增多供应商管理：支持 5plus1官方、火山引擎、OpenAI 兼容等多种 API 服务商",
      "【优化】双评模式面板重构：结果→老师A独立区块→老师B独立区块→仲裁结果，提交弹窗/历史详情/HTML导出三处同步",
      "【优化】CSV 导出新增老师A/B评分依据、分数计算、仲裁分析等详细列",
      "【优化】编辑默认工作流时弹出确认对话框，用户工作流无需确认",
      "【优化】弹出编辑窗口时点击空白区域不再自动关闭（alert/confirm/prompt/workflow编辑均适用）",
      "【优化】双评默认副模型改为 aimarker-fast + minimal（不思考），与主模型一致",
      "【优化】工作流管理新增删除按钮：仅用户自建工作流可删除，默认工作流隐藏删除按钮",
      "【修复】编辑工作流后刷新不生效：迁移逻辑改为仅版本升级时重置内置工作流",
      "【修复】新建工作流时模型下拉为空：增加 provider 有效性回退，新建后自动弹出编辑窗口",
      "【修复】纠错面板\"提示词优化\"报错 endpoint undefined：正确传递 API 调用配置",
      "【修复】删除模型报错 deleteModel is not defined：改用 unsafeWindow 暴露到页面全局"
    ],
    "1.12.1": [
      "新增五岳阅卷 (wylkyj.com) 平台适配，支持答题卡识别和分小题评分",
      "轻量级更新检查：优先检查 manifest.json (~1KB)，失败时降级检查完整脚本",
      "Changelog 统一管理：文档站和脚本从远端 manifest.json 加载",
      "更新后刷新优化：等待时间从 15 秒缩短到 10 秒，新增「立即刷新」按钮",
      "开源协议从 MIT 更改为 GPL-3.0"
    ],
    "1.12.0": [
      "新增好分数 (haofenshu.com) 平台适配，支持 SVG 答题卡识别和 Vue 输入框分数填充",
      "侧边栏配置页重构为分组结构：基本、批改、AI 配置、其他",
      "关于页新增完整 CHANGELOG 展示",
      "通信密钥未填写时显示醒目红色警告横幅和分组标题提示",
      "新增「保存答题卡图片」开关，可关闭图片缓存以节省存储空间"
    ],
    "1.11.3": [
      "新增好分数 (haofenshu.com) 平台适配",
      "新增「保存答题卡图片」配置选项",
      "match 规则放宽至 *.haofenshu.com/*，提升兼容性"
    ],
    "1.11.2": [
      "修复纠错面板\"提示词优化\"不显示优化结果的问题",
      "修复解析器将\"不变\"后的括号注释误认为评分标准内容的问题",
      "优化分析提示词：要求 AI 将发现的问题写入对应字段",
      "修复 Toast、确认弹窗等 z-index 层级被历史面板遮挡的问题",
      "智学网单题模式下自动跳过分小题给分"
    ],
    "1.11.1": [
      "智学网分小题给分适配，自动识别多个小题输入框并逐题填入分数",
      "修复 64MiB 存储溢出：imageUrls 中的 base64 data URL 自动剥离",
      "历史记录存储主动防御：超 50MB 自动清理旧记录",
      "每次保存后控制台输出存储大小",
      "纠错面板支持分小题独立修正",
      "历史面板新增存储状态栏和清理选项",
      "历史面板新增批量选择和删除功能"
    ],
    "1.11.0": [
      "全面 UI 重构：设置面板改为右侧滑入式侧边栏",
      "浮动按钮增加脉冲动画状态指示",
      "历史按钮改为 SVG 图标",
      "Toast 通知支持成功/错误/信息状态，可手动关闭",
      "模态弹窗动画优化（scale + translate）",
      "流输出面板新增复制按钮",
      "提交对话框分数改为环形展示，倒计时改为环形进度",
      "纠错面板新增步骤进度指示器",
      "历史详情改为右侧抽屉式滑入",
      "历史筛选改为可折叠面板"
    ],
    "1.10.4": [
      "修复配置导入功能中错误的函数名引用（showConfirmDialog、refreshPresetSelect）"
    ],
    "1.10.3": [
      "修复配置导入功能报错 showConfirmDialog is not defined"
    ],
    "1.10.2": [
      "修复历史记录面板清空确认弹窗被遮挡的 z-index 层级问题",
      "修复更新检查时 changelog 不显示的问题（从远端脚本提取 CHANGELOG）",
      "修复历史记录弹窗动画开始时位置不居中的问题",
      "更新后自动刷新页面，无需手动重载",
      "检查更新按钮增加加载动画",
      "新增配置导出/导入功能，支持 JSON 文件备份和恢复"
    ],
    "1.10.0": [
      "新增分小题评分适配：七天网络新UI和旧版支持分小题独立给分",
      "detectSubQuestions() 纳入标准适配器协议，平台自动检测小题列表",
      "设置面板自动识别平台小题，无需手动配置分小题信息",
      "历史记录图片存储改为 IndexedDB，修复长时间批改后脚本崩溃（64MiB 限制）",
      "旧记录图片数据自动迁移到 IndexedDB，升级无感"
    ],
    "1.9.0": [
      "新增七天网络新 UI (yj5.7net.cc) 适配，支持 Vue SPA + Canvas 渲染答题卡",
      "通过 XMLHttpRequest 拦截 API 响应精确获取当前学生图片，解决预取图片干扰问题",
      "新增试改模式，每次批改后暂停等待教师确认，支持分数纠错和提示词优化",
      "AI 失败自动重试时复用已下载图片，避免重复抓取",
      "构建输出自动压缩 (terser)，文件体积减少约 30%",
      "修复七天网络新 UI 提交按钮选择器错误",
      "修复连续批改时图片错位问题"
    ],
    "1.8.6": [
      "优化导出逻辑，支持筛选"
    ],
    "1.8.5": [
      "新增七天网络阅卷平台适配，一个脚本同时支持智学网和七天网络",
      "统一构建输出，自动检测当前平台并加载对应适配器"
    ],
    "1.8.3": [
      "纠错流程精简为两步，确认后直接使用教师分数",
      "新增独立浮动历史按钮和多服务商管理系统"
    ],
    "1.8.0": [
      "纠错面板重新设计，支持查看 AI 分析和手动修改提示词",
      "新增评分模式切换（普通/无人值守）"
    ],
    "1.7.0": [
      "新增自动检查更新功能",
      "重构代码结构为模块化"
    ]
  },
  "changelogDates": {}
}