RELEASE NOTES
每一次更新,
都为更好地学习。
记录学习助手浏览器扩展的改进。以下为当前资料中有记录的版本。
LATESTv2.9.1 · WebVPN 适配
适配学校 WebVPN 访问教学平台:识别代理地址下的课程与学习活动页面,并修复接口请求及跨页面跳转的地址前缀处理。
v2.9.0 · 更新提醒
新增版本检查;发现新版本后显示提示,并可跳转到下载页面。
v2.7.11:保留公式符号并安全处理乱序
- 选项匹配保留加减号、括号等符号;页面中存在完整可靠的选项编号时优先按编号,否则只接受唯一完整文本匹配,不再按原始顺序或包含关系猜测。
- 题目优先按题目编号对应;缺少编号时仅使用唯一完整题干,题目或选项歧义时暂停自动提交,提示人工检查。
- 新题库记录包含题目编号并保留公式符号;旧记录没有完整信息时不会盲目使用,原记录仍保留,获取到可靠答案后重新建立。
- 本地回归覆盖实际公式、题目与选项乱序、旧题库歧义、重复选项、未匹配时禁止自动提交;真实结果页只读匹配确认 B,未重新提交真实测试。
v2.7.10:停止状态跨页面生效,保留主动启动接力
- 课程页或测试页点击「停止」后,保存跨页面停止状态并清除旧测试续跑凭据。随后手动打开测试入口、须知或答题页时,不会因为「进入测试时自动开始」设置或旧标记重新启动。
- 重新点击「开始托管」或「开始答题」会解除停止状态。课程队列进入测试时仍保留 pendingExam,测试入口、须知和整页跳转后的答题页继续接力。
- 立即点击开始再停止时,取消尚未完成的启动请求,避免异步回调在停止后重新启动。
- 保留「进入测试时自动开始」偏好,不通过永久关闭设置来实现停止。
v2.7.9:自动提交设置与自主选择开始位置
- 课程页、测试页都提供「答题后自动提交」开关,使用同一配置;关闭后填写结束停留等待手动提交。
- 设置分组仍叫「运行设置」,其内容选择改为「处理内容」,降低内层标签字号以区分层级。
- 课程小窗新增「开始位置」:默认当前页面的视频优先,没有当前视频则继续记录;可指定课程里的任一视频,也可明确继续插件记录。已完成一轮时「继续插件记录 / 从头开始」会重新建队列。
- 用户指定的视频不会被“跳过已完成任务”直接略过;“已完成视频从头重看”仍控制已完成视频的重看行为。
- 手动切到其他视频时暂停托管,避免被旧队列立即拉回;重新开始使用当前视频。跨页打开其他视频也会检查旧任务,等待用户启动。
v2.7.8:视频完成后可靠切换
- 服务端确认视频完成后,本地去重标记改为异步保存;该标记写入失败或回调无响应时,不再阻塞自动切换。
- 切换前等待队列游标保存,避免整页跳转恢复到上一条;当前任务执行期间请求的切换,会在执行锁释放后立即继续。
- 视频结算使用 finally 释放切换标记;过期的停止/重新开始回调不再推进新任务。意外错误显示具体原因,避免无提示卡住。
- 本地 Chrome 样本复现旧版“服务端 100% 但不切换”的存储阻塞现象;新版覆盖正常保存、保存报错、保存无响应、连续两条视频、队列结束、重看恢复和模式切换。未在当前真实课程复测。
v2.7.7:折叠标题保持单行
- 标题禁止换行,空间不足时显示省略号;收紧折叠标题栏间距,状态标签保持完整。
- 本地 Chrome 验证两种标题长度、三种状态及三种视口宽度,无换行或重叠。
v2.7.6:名称、图标与介绍
- 扩展名称与小窗标题统一为「学习助手」,更新功能介绍。
- 新增青绿色书本图标与金色星芒,提供 16、32、48、128 像素 PNG 和 SVG 源文件。
- 「已开始调试此浏览器」由视频后台前台仿真使用的 Chrome debugger 接口触发,是浏览器自身提示。当前实现保留该接口和提示;点击提示中的取消会断开连接,可能影响后台进度功能。停止任务或离开课程会释放连接。
v2.7.5:进度条与小窗口动效
- 修复网站 `div.bar` 样式将助手进度条宽度限制为 10px 的冲突,课程和测试统一使用独立命名的进度条,数字、填充宽度与无障碍进度同步更新。
- 窗口展开/收起、设置和日志展开/收起采用非线性缓动;设置选项组同时淡入和轻微位移,支持连续快速切换与中途打断。
- 测试选择和运行范围改为统一的小窗风格列表,展开和关闭均有过渡,支持鼠标、方向键、回车和 Escape。原生选择值和业务事件继续保留。
- 隐藏窗口、日志与选择列表的原生滚动条,保留滚轮、触控板和键盘滚动。窄窗口仍可访问底部内容。
- 动画优先使用浏览器原生透明度和位移;仅在尺寸变化时动画高度/宽度,限制布局计算范围,不以 JavaScript 逐帧更新位置。遵循系统减少动态效果设置。
v2.7.4:窗口锚点、视频重看与运行范围
- 默认小窗以右下角为锚点;展开/关闭日志、设置、折叠和浏览器缩小/恢复时,只做临时避让,不覆盖用户位置。手动拖动后按最近的屏幕边缘记住位置,恢复窗口大小后回到原来的手动位置。
- 新增「归位」按钮,可随时回到右下角,之后仍可自由拖动。旧版 left/top 记录可能含错误避让值,首次升级会从右下角重新建立位置记录;设置和折叠偏好继续保留。
- 「运行范围」提供「视频和测试 / 仅视频 / 仅测试」。队列只包括选中类型,其他课件资料不纳入;运行时改变范围或重看选项会先停止当前任务,再点击开始生成新队列。
- 「已完成视频从头重看」默认关闭。开启后,已完成视频在本轮从 0 秒播放一次,即使勾选跳过已完成任务也不会被跳过;未完成视频仍补播缺口。已完成测试仍按跳过选项处理。
- 重看支持暂停/继续及刷新后的播放位置恢复。本轮队列结束后,再点开始会开启新一轮,不会自动无限循环。网站自己的播放器继续负责进度上报。
v2.7.3:小窗口改版与独立测试上下文
- 课程与测试统一为 304px 浅色悬浮窗:低饱和绿色主按钮、柔和阴影、状态卡片与清晰的进度标签。
- 运行设置和完整日志默认收起,保留最新一条动态。窗口仍可拖动、折叠,分别记住两种面板的位置和展开状态;窄屏会约束在视口内。
- 收起按钮不再触发拖拽;课程切到测试页时立即移除旧课程窗口,避免双窗重叠。
- 独立测试的课程编号不再被当作答题前置条件。手动进入且没有课程元数据的页面仍可按当前测试编号读取试卷;缺少课程只影响返回原队列。
- 课程来源可从路径、查询参数、隐藏域、页面链接、测试元数据和已记录的对应关系恢复。对应关系与是否来自课程队列分别保存。
v2.7.2:独立测试页与入口修复
- 测试列表 `/course/{cid}/exam` 会显示测试选择框;选择测试后点「开始答题」,插件点击网站已有的测试入口,继续处理须知和跨页跳转。
- 同时识别课程活动 `#/exam/{id}`、测试详情 `#/id`、独立 `/exam/{id}/subjects#/take?instanceId=...`,并保留已存在的作答会话。
- SPA 切页、pathname/search 变化及延迟出现的入口都会重新检查初始化;自动续跑不再仅限页面第一次加载。
- 进入测试后,可在助手面板设置「进入测试页自动开始」。关闭时仍可手动点「开始答题」,手动启动的跨页流程会继续。
- 正在作答的题面和本次 instance 优先于旧完成记录;服务端明确显示零次提交时,不会被旧本地标记跳过。停止后不自动重启。
v2.7.1:视频后台进度修复
- 新增 `debugger` 权限,通过 CDP `Emulation.setFocusEmulationEnabled` 在浏览器层仿真前台,解决后台视频被 Chrome 节能策略暂停的问题。
- 仅在视频托管期间连接;停止、队列结束、离开视频页时释放。Chrome 会显示“正在调试此浏览器”提示条;关闭它会停止托管,再点开始可重新连接。
- 播放、定位、暂停优先使用网站播放器入口,随后确认底层媒体确实播放,避免播放器内部仍为 PAUSE 而视频单独播放。
- 每累计播放约 90 秒,通过网站播放器正常暂停、重叠回放两秒后恢复,让网站 SDK 自己结算,避免后台延迟/2 倍速产生超过服务端 125 秒上限的请求。
- 完成度同时观察 fetch/XHR 的 HTTP 结果,并回读服务端确认;不把已发送或 ended 当作已完成。