Skip to content

Releases: zzz-sc-tech/juting

v0.7.9

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 27 Oct 12:28

v0.7.9 — 词级时间轴钉位 + 盲听位置线

语料(本轮主菜:行级 → 词级)

  • 词级时间戳钉位 v2:20 门 2501 行起点从「能量岛估计」升级为「云 ASR 词级时间戳真实词位」,
    承接 v0.7.7/v0.7.8 的行级精修链路再往下压一档精度
  • 修复钉位 v1 的传送损伤:标签互换、短句被前推 4~12 秒等回退全部回滚重钉
    (算法重写:文本顺序为权威、seal 只收缩不前推、同文多现要求唯一命中)
  • 六级十套 19 段漏句补行:正文/题干整段缺失(原文对号 + 译文)
  • 两处数据纠错:#55 组播报误写成 Q1 题干(改回模板 + 重钉)、#1012 游离重复 Q21 删除
  • 听感验证修复 6 门:锚点起播 + 题干错位钉位

审计指标(97 门全量):锚点源行 1391/1391、区间首句 1194/1194、开场报头 194/194 全部 100%,
结构违规 0,门禁 6/6 PASS。

词典 / 听写

  • 内置词典重生成:10113 词条(+3022)、词形映射 3186、语境例句 24147 条(97 课全量刷新)
  • 听写词表纳入四级:此前只读六级 seed,四级课程听写会误放行错拼

功能

  • 盲听位置线:泛听阶段关闭字幕时,声波纹理上显示当前位置——锚点标签 + 「第 N / M 句」,
    随播放推进平滑移动。盲听不再"失位"。

下载选择

包 适合 体积
win-lite 只装程序(自选语料/已有数据) ~68 MB
win-cet4 只要四级(49 门) ~496 MB
win-full-cet6 要六级(48 门) ~808 MB
win-full-cet6cet4 六级 + 四级全量(内部/自用) ~1237 MB

老用户点软件里「一键更新」即可——本轮音频没变不重下媒体层,时间轴精修、词典、
盲听位置线全部在 ~5-9 MB 程序层里
。

v0.7.8

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 26 Oct 17:00

v0.7.8 — 译文 100% + 逐句音频精修补全

语料

  • 四六级学习句译文 100% 双满分(四级 7843 句、六级 8489 句全译;此前六级新课译文只覆盖 80.1%)
  • 六级十套缺行补齐 30 行:开场报头、Directions 整段、"Then mark…" 尾句、题组播报 7 条
    (缺播报=锚点缺失)——文本用标准考试模板 + MiMo 对号入座
  • 逐句↔锚点全量精修(承接 v0.7.7):锚点源行/首句/开场报头 100% 对齐、拆裂行清理、
    531 行滑窗词级钉位、重复词去重 76 处("really really" 等合法英语全数保留)
  • 播报题号全库对表:646 组与音频逐条 diff,零冲突

工具链(面向维护者)

  • scripts/audit/check-all.mjs:门禁六连一条龙
  • scripts/local/release.mjs:发版一条龙(本版本即由它打包)
  • scripts/local/dispatch-translations.mjs:批量翻译调度(并发限频保护)
  • GitHub Actions 自动发版(试验性)

下载选择

包 适合 体积
win-lite 只装程序(自选语料/已有数据) 68 MB
win-cet4 只要四级(49 门) ~496 MB
win-full-cet6 要六级(48 门) ~808 MB
win-full-cet6cet4 六级 + 四级全量(内部/自用) ~1237 MB

老用户点软件里「一键更新」即可,本轮只下程序层 ~5-9 MB(音频没变,不会重下媒体层)。

v0.7.7 — 逐句↔锚点对应精修:点锚点第一声就是该单元开头

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 26 Oct 07:10

v0.7.7 — 逐句 ↔ 锚点对应精修:点锚点第一声就是该单元开头

这次修什么

前几版把字幕的文本和时间轴都修好了,但点对话锚点跳转的体验还有四块空白:

  • 开场报头偏 2~3 秒:点「Section A / Conversation 1」先听到几秒静音或上一段尾巴
    (whisper 对开头几秒整段漏转写,行只能插值)
  • 题干行截开头:点题组锚点后,第一句题干播放时开头被截掉最多 6.8 秒
  • 正文行系统性偏晚:retime 管线的「字符比例铺岛」假设失准,约 500+ 行点行
    播放时开头截、逐句连播时尾巴带上一句
  • 行级文本缺陷:重复词("As a As a"、"two Two")、拆裂对("Only once." 单独成行)、
    域层模式外的说明段变体泄漏进学习池

怎么修的

三层 MiMo 逐岛钉位(音频词图 > 官方原文 > 现存文本),全程缓存、复跑零调用:

  1. 锚点级:开场报头 ±45s 标签词匹配(含同音变体——MiMo 把 "Section A" 听成
    "Section Eight")、题组播报碰撞细分、标签前向搜索("Conversation Two" 播报在行后 52s)
  2. 正文行滑窗级:对错位行所在的合并岛滑 2s 窗逐窗转写,行的前 3 词出现在窗文本
    头部即锁定起点——用纯文本 ASR 逼近词级时间戳,531 行钉正
  3. 题号全库对表:646 条题组播报与音频逐条 diff,零冲突(#16 型原文题号错无残留)

外加拆裂对合并、幻影行删除、重复词去重(听证序列计数判定,"really really" /
"had had" / 同位语等合法英语全数保留)。

验证结果

指标 修前 修后
锚点源行 ±1.2s 对齐率 97.22% 100%
开场报头(点锚点第一声) 184/194 194/194
区间首句 ±1.5s 97.61% 100%
指令行越界 40 0
正文行 ±2s 92.99% 93.96%(另 531 行窗口级钉正)

四门禁 + 缺题检查 + 单调/重叠/负时长全 PASS;审计器与三精修器复跑幂等(字节一致 / 零变更零调用)。

范围

四六级全部 97 门(49 + 48),行数 18945 → 18883(-62,拆裂合并与幻影删除),
MiMo 总调用约 11800 次全部落缓存。详见 temp/REPORT-anchor-refine.md。

下载选择

包 适合 体积
win-lite 只装程序(自选语料/已有数据) 68 MB
win-cet4 只要四级(49 门) 496 MB
win-full-cet6 要六级(48 门) 808 MB
win-full-cet6cet4 六级 + 四级全量(内部/自用) 1237 MB

老用户点软件里「一键更新」即可,本轮只下程序层 ~5-9 MB(音频没变,不会重下媒体层)。

v0.7.6 — 六级补齐 2015/2016 十套 + 四六级逐句对齐精修

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 25 Oct 12:02

v0.7.6 — 六级补齐 2015/2016 十套 + 四六级逐句对齐精修

语料

  • 六级新增 2015/2016 年 10 套真题(48 门全):2015-06×3、2015-12×3、2016-06×2、2016-12×2,每套 25/25 题干齐全
  • 四六级逐句对齐精修:以「词组 ↔ 语音岛 DP 对齐」重铺词时间,题干/播报行逐岛 MiMo 转写钉位——四级对齐率 86%→98.5%(偏晚 53 条→18,最重 6.8s→1.7s),六级 97%→99%(截开头清零)
  • 全库播报残片修复:33 行截断播报补全 + 1 对拆裂行合并;#16 原文题号范围错误按音频纠正(22-25→23-25)
  • #16 等课程的题组播报现在与音频逐字一致

界面

  • 精听/难点复习的未揭晓提示(「点击播放逐句揭晓,或按 R 显示原文」)改为居中空态模块,不再缩在卡片一角

下载选择

包 适合 体积
win-lite 只装程序(自选语料/已有数据) 68 MB
win-cet4 只要四级(49 门) 293 MB
win-full-cet6 要六级(48 门,含 2015/2016 新增十套) 329 MB

每个 flavor 均提供三层增量包:-update.zip(程序)/ -deps.zip(依赖)/ -media.zip(音频,lite 无此项)。老用户可只下 update + media 增量升级。

SHA256SUMS.txt 为全部资产的校验和。

v0.7.5 — 四级字幕时间轴重建:修掉「播放本句只有 1 秒」

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 22 Oct 17:12

v0.7.5 — 字幕时间轴重建:修掉「播放本句只有 1 秒」

这次修什么

v0.7.4 修好了四级字幕的文本(找回 26% 丢失内容、补回标点、修好题号结构),但时间轴坏了:

  • 145 行被压成 0.5 秒(41/49 课),点「播放本句」只能听到一小段甚至静音
  • 典型:#1038 的 Question 1 只占 0.98 秒,而紧随的 Question 2 占了 27.92 秒
  • 887 行(9.5%)的时间区间落在音频静音上

原因是 whisper 对整段 20 分钟音频做分段时,段边界会横跨 15~20 秒的答题停顿;字幕行按字符比例铺在这段上,就被摊进了静音。

怎么修的

按长停顿切块重做时间轴,文本一个字没改:

  1. 能量检测找出真实语音段(-48 dBFS)
  2. 按 >3 秒的停顿切块,块内再按最大停顿切成 ≤55 秒的小块
  3. 每个小块:MiMo 转写拿准确文本,whisper 拿词级时间,两者对齐
  4. 全课词序与现有字幕文本对齐,重建每行起止
  5. 行边界吸附到真实语音段

cet4 共 49 课、1920 次 MiMo 调用、0 失败。

验证结果

指标 修前 修后
压缩行(<0.1 秒/词) 145 0
落在静音的行 887(9.5%) 76(0.8%)
完全落在静音 287 47(多为 "A." "B." 这类不朗读的选项标签)

门禁全过:

node scripts/audit/check-invariants.mjs              # 87/87 PASS
node scripts/audit/check-duration-sanity.mjs         # 0 违例
node scripts/audit/check-timeline-speech-overlap.mjs cet4   # 0.8% PASS
node scripts/audit/check-timeline-speech-overlap.mjs cet6   # 0.2% PASS

题号覆盖仍是 cet4 392 组 / cet6 266 组、零缺题;时间戳单调、无重叠、无负时长。

抽检 4 条随机样本,把新窗口切出来单独做 ASR,结果与字幕文本逐字一致:

#1002 l19  字幕 Question one: Why were many passengers stranded at the railway station?
           音频 Question 1. Why were many passengers stranded at the railway station?
#1038 l20  字幕 Question 1: What may be the reason that friends are similar...
           音频 Question 1. What may be the reason that friends are similar...

新增门禁

scripts/audit/check-timeline-speech-overlap.mjs —— 按能量检测语音段,检查每行时间是否真的落在语音上。现有门禁只查时间戳自洽(单调/不重叠/正时长),查不出这类问题。

影响范围

  • 只有 presets/cet4/seed.json 的时间戳变化(v20261021.2 → v20261022.3),文本、译文、题号、锚点结构全部不动
  • scripts/audit/data-contract.mjs 修了 saveTranscript 的写盘目标:原来硬编码 cet6,写四级会覆盖 cet6 seed
  • 六级语料本次未改(其时间轴本来就正常)

v0.7.4 — 四六级语料重建:找回丢失的 26% 内容

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 21 Oct 07:28

这一版在修语料

上一版的字幕有严重的底层问题,用 MiMo ASR 与本地 whisper 交叉核验后发现:音频里说的话,有四分之一没进字幕。

以四级 2015年6月第1套为例,音频里是:

At least 16 people were killed and up to 150 trapped under the rubble when a factory collapsed in an industrial area of Lahore in eastern Pakistan.

字幕里是:

t least 16 people were killed and up to 150 trapped under the rubble...

首字母 A 丢了。这不是个例——四级 49 套里有 1,098 句(14.8%)丢了首字母,1,042 句(14%)在句子中间被切断,点「播放本句」只能听到半句。

根因

原语料的 ASR 管线丢标点、丢词:四级原数据 85,555 词,音频实际 117,957 词,少了 26%。标点全丢导致句子边界消失,切分和锚点跟着一起坏。

怎么修的

用 MiMo ASR 按 60 秒分块重新转写(文本准确),再用 whisper 的词级时间轴对齐(时间准确),两者合成新字幕。

四级 49 套全部重建:

指标 修复前 修复后
词数 85,555 117,957(+38%)
丢首字母 1,098(14.8%) 2(0.02%)
句子被切断 1,042(14.0%) 3(0.03%)

残留的 111 个问题点(缩写误切、块边界、重复碎片)逐个用 MiMo 核验,修掉 109 个。

六级 38 套基线较好(丢首字母 0.8%),核验 196 个疑点后修掉 19 个真问题。

译文补全

字幕重建后行边界全变,原译文全部失效。用 MiMo 重新翻译:四级 8,391 条、六级 7,603 条。

抽检 400 条长句核验质量,2.5% 有瑕疵(多为「过度具体化」),已全部重译修正:

原译 修正
颜色和图表 颜色和地图
这些空间由大脑构建 这些气泡由大脑构建
把压岁钱存进去 把礼金存起来

词典扩容

内置词典原来只收六级词汇,四级的 8,057 个词里有 37% 查不到释义(abolish、acid、acquaintance 都查不到)。

现在两个库都收,并加了「所有格/连字符回退词根」规则(company's → company、four-inch → inch):

改前 改后
词条数 7,368 9,567
未命中率 6.78% 2.13%

下载哪个

你考什么 下载
四级 juting-v0.7.4-win-cet4.7z(293 MB)
六级 juting-v0.7.4-win-full-cet6.7z(276 MB)
不确定 juting-v0.7.4-win-lite.7z(68 MB,空课程,可后续导入)

老用户:客户端「设置 → 检查更新」会自动下载增量包(程序层 5MB + 媒体层 217-238MB),不需要重下整包。

已知问题

  • iOS Safari 未验证(无设备)
  • 六级译文是原装的,本轮只做了问题点精修,未整体重译
  • 仍有约 2% 的句子存在跨词切断(如 An iPhone + SE with),规则修复会误伤,保留原样

校验

SHA256SUMS.txt 已随附。数据完整性已验证:两库时间戳单调、零重叠、零负时长。

v0.7.3 — 界面可用性大修 + 真机验收修复

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 18 Oct 06:00

这一版做了什么

v0.7.2 之后做了一轮完整的界面可用性审查与修复,共 6 个提交、约 60 个文件。核心是「用起来不别扭」,不是加功能。

界面与层级

  • 首页重排:今日进度做成 28px 主数字 + 进度条占第一视觉位;「继续学习」提到趋势图上方;右栏收敛为 3 张卡(≥2 门在学才出现「课程完成度」)
  • 考试页:0 答时「交卷」降为描边;播放器移到题号与选项之间;不可作答时给一句能执行的提示
  • 状态不再只靠颜色:当前阶段 = 左侧竖条 + 实心序号,已完成 = 对勾角标,句子的难点/掌握 = 图标 + 读屏文本
  • 四主题对比度:次级灰字从 1.2–2.1:1 提到 4.95–5.28:1;极简白主题下泛听原文从 1.48:1 → 7.73:1(之前整页英文几乎看不见)
  • 字号收敛:26 档声明 → 8 档(12/13/14/15.5/18/24/28/40),字重 6 档 → 4 档

手机

  • 390 宽下泛听媒体区 100px → 310px,阶段导航 350px → 52px
  • 题号导航从 148px 竖网格改成 56px 单行横滚,切题后自动滚到导航下方
  • 横屏改章节窄轨:正文起点从视口外拉回屏内
  • 触控目标统一 44px(含歌词插旗、倍速项、菜单项、侧栏关闭)

可用性与无障碍

  • 键盘可用:章节列表改 roving tabindex(99 个 tab stop → 3 个),↑↓/Home/End 移动,Shift+F10 唤出菜单
  • 加载态分三态,不再「请求还没回来就说没有课程」
  • 弹层支持 Esc 关闭并把焦点还给触发按钮;焦点环改成 2px 实色描边
  • 空态统一成「图标 + 标题 + 说明 + 主次按钮」,文案去掉「管理端 / 索引 / 服务已启动」这类黑话

真机验收(Android Chrome)

  • 修掉词典侧栏整体跑到屏幕外、底部「加入生词本」点不到的问题(入场动画的 fill-mode 给 fixed 后代新建了包含块)
  • 侧栏改用 100dvh;关闭按钮 26px → 44px
  • 弯撇号不再把 don’t 拆成 don + t(点词会查到错误释义)
  • 320 宽下文档被隐藏元素撑宽 52px 的问题

其它

  • 生词本新增本地筛选(词形 / 释义),搜索页的生词结果可直接带词跳转
  • 清理 39 条没人用的界面文案键;术语统一(「标记难点 / 移出难点 / 已掌握」「原文」)

下载哪个

文件 用途
juting-v0.7.3-win-full-cet6.7z 全新安装:程序 + 便携 Node/MySQL + 六级 38 套真题(含音频)
-update.zip 已有安装的程序层更新(约 5 MB)
-deps.zip / -media.zip 依赖层 / 媒体层,客户端会按清单哈希自动判断是否需要下载
SHA256SUMS.txt 校验和

已装 v0.7.2 的用户在设置页点「检查更新」即可:依赖与媒体没变,只会下载约 5 MB 的程序层。

已知未验

iOS Safari 未做真机验证(本版有一处 animation-fill-mode 改动与 100dvh,iPhone 上建议确认词典侧栏位置与底部按钮是否可见)。

v0.7.2 — 点词查词典 + 数据备份 + 学习动效

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 17 Oct 08:03

v0.7.2 — 点词查词典 + 数据备份 + 学习动效

本 Release 为六级版(38 套六级真题)。
三批功能:点词查词典 / 四项增强(备份·听时长·错题·复习·搜索)/ 动效打磨。

一、点词查词典 + 生词本增强

以前收生词要从整句里自己挑词、再手动敲一遍。现在改成点句中任意单词:

  • 右侧滑出侧栏,显示音标 / 词性 / 中文释义 / 考试标签(六级·考研·雅思…)/ 本库例句
  • 例句来自本库 38 课的真实语境(跨课各取首句,最多 6 条),点击可跳转该课该句
  • 侧栏内一键「加入生词本」,再点同一词收起
  • 内置精简词典:7368 词条 + 1762 词形映射(1.3MB),只收本库出现的词
    • 词形自动归位:children's → children、patients' → patient、foods → food
    • 未收录词(专有名词)优雅降级显示「未收录」,仍可收藏

二、四项增强

学习数据导出 / 导入(防丢失)

设置页新增「数据」区块:一键导出全部学习进度为 JSON 文件,可导入恢复。

  • 支持覆盖与合并两种模式(合并时进度取并集、生词取并集、成绩去重追加)
  • 畸形文件会被明确拒绝,不会写入任何数据
  • 启动时自动保留最近 3 份进度快照(误清缓存时兜底)

首页「累计所听时长」

统计区新增第 5 格:累计时长 + 今日时长。按墙钟计时(不乘倍速),
切走标签页自动停止累计。

错题档案

  • 首页「你最常错的题」:跨场次聚合反复错的题(需 ≥2 场或同题错 ≥2 次)
  • 交卷后「成绩历史」:历场日期/得分/错题/未答/各 Section 分布 + 得分走势折线

生词复习调度

生词本顶部新增「今日待复习 N 词」,按遗忘曲线 1/3/7/15 天 安排:

  • 复习卡用收藏时的原句挖空出题(不脱离语境背单词)
  • 「认识」→ 间隔推后;「不认识」→ 归零重排;连续 4 次 → 标记「已掌握」
  • 老生词自动迁移,首次打开即可复习

跨课全文搜索

TopBar 放大镜或 /search:搜索句子 / 生词 / 课程标题,命中高亮,
点击结果直接跳到该课精听并定位到该句。

三、动效打磨

  • 句子切换:上下句带方向感的滑入(200ms),不再瞬间替换
  • 阶段切换:舞台淡入 + 横向位移
  • 列表增删:生词本删除后其余行平滑上移,新增项缩放淡入
  • 波形播放头:从跳格改为连续滑动(transform 走合成器,不阻塞主线程)
  • 按钮反馈:按下轻微缩小 + 回弹
  • 无障碍:尊重系统「减少动态效果」设置,动画自动降为瞬时

四、资产说明

文件 用途
juting-v0.7.2-win-full-cet6.7z 首次安装用这个,需 7-Zip 解压
juting-v0.7.2-win-full-cet6-update.zip 程序层(客户端一键更新必下)
juting-v0.7.2-win-full-cet6-deps.zip 依赖层(按需,客户端自动判断)
juting-v0.7.2-win-full-cet6-media.zip 音频层(按需,客户端自动判断)
SHA256SUMS.txt 校验和

从 v0.7.1 升级:音频未变,客户端只会下载程序层(约 5MB)+ 依赖层(45MB)。
若已是最新的依赖(本次有依赖变化),会完整下载一次 45MB。

五、数据

  • 六级版:38 门 / 2017—2026 真题 / 字幕 7690 行 / 译文覆盖 99% / 题干锚点映射 100%
  • 词典:7368 词条 + 1762 词形映射,1.3MB

六、验证

  • 构建通过(JS 1830.96 kB / gzip 611.87 kB)
  • 浏览器实测:点词侧栏内容齐全、收藏落盘、跨课例句跳转、搜索命中与空态、
    导出文件完整、畸形导入被拒、动效 computed style 生效(line-enter-next 0.2s /
    stage-enter 0.2s / 播放头 transform 推进)、reduced-motion 降为 0.01ms
  • 三服务启动正常(8100 API / 8101 学习端 / 8102 管理端)

v0.7.1 — 体积再瘦身:安装包与磁盘双降

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 16 Oct 05:15

v0.7.1 — 体积再瘦身:安装包与磁盘双降

本 Release 为六级版(38 套六级真题)。
在 v0.7.0 增量更新的基础上,继续压缩安装体积与下载量。

这次省了什么

项 v0.7.0 v0.7.1 省下
安装后磁盘占用 约 1.26 GB 约 1.0 GB 约 260 MB
依赖包 -deps.zip 123 MB 约 55 MB 约 68 MB
完整包 .7z 299 MB 约 240 MB 约 60 MB
程序包 -update.zip 3.6 MB 3.6 MB —

怎么做到的

① 依赖树按「运行期闭包」裁剪

前端与管理后台都以预编译好的产物提供服务,运行期根本不需要 React、antd、
Vite、TypeScript、ESLint 这些构建期依赖。改用白名单制:从真正的运行入口出发
递归展开依赖图,只保留闭包内的包(node_modules 解压后 365 MB → 141 MB)。

顺带清掉三个死依赖:resend(邮件服务,源码零引用)、mysql v2(已废弃,
实际用 mysql2)、以及一批 Expo/React Native 残留。

② MySQL 单机自用调参

参数 原值 新值 原因
innodb_redo_log_capacity 100 MB(默认) 32 MB 数据库才 16 MB
skip-log-bin 关闭→开启 开启 binlog 是为主从复制设计的,单机无用且持续增长
临时表空间上限 无限增长 64 MB 防跑飞
innodb_buffer_pool_size 256 MB 128 MB 省的是内存不是磁盘

实测:MySQL 数据目录 219 MB → 约 140 MB,数据完好(38 门课程校验通过)。

③ 这些改动对老用户同样生效

MySQL 配置由启动器每次启动时生成,存量安装下次启动即生效,无需重装。
依赖裁剪则通过更新包传递——并且本版改了依赖门控的判据(见下),
确保老用户能真正拿到裁剪版、且本地多余依赖会被清理掉。

依赖门控改版(重要)

v0.7.0 用 package-lock.json 的哈希判断「依赖有没有变」。但裁剪只改打进包的内容,
不改 lock 文件——照旧判据,老用户会得出「依赖没变」从而跳过依赖层,
磁盘永远瘦不下来。

本版改为:

  • 更新清单里带依赖文件清单的哈希与归属包名清单;
  • 客户端比对本地标记(更新器安装成功后写入),哈希不同才下载;
  • 依赖层安装后清理本地多余的旧依赖(覆盖安装只覆盖不删除),
    工作区包 @juting/* 永不删。

结果:老用户升级到本版时会下载一次依赖包(约 55 MB),之后本地多出来的
构建期依赖会被自动清掉,释放约 220 MB 磁盘。

资产说明

文件 用途
juting-v0.7.1-win-full-cet6.7z 首次安装用这个,需 7-Zip 解压
juting-v0.7.1-win-full-cet6-update.zip 程序层(客户端一键更新必下)
juting-v0.7.1-win-full-cet6-deps.zip 依赖层(按需,客户端自动判断)
juting-v0.7.1-win-full-cet6-media.zip 音频层(按需,客户端自动判断)
SHA256SUMS.txt 校验和

验证

改动涉及依赖裁剪,风险在「裁掉运行期要用的包」。因此做了真实启动验证
(不是静态检查):裁剪后的目录完整跑通全栈启动——数据库初始化、38 门课程导入、
后端健康检查、学习端与管理端 HTTP 200、音频流实测返回 audio/ogg 与完整字节数、
课程数据接口返回完整元数据。

过程中实测抓到两个会导致崩溃的裁剪 bug(作用域包容器目录被误删、
vite preview 依赖的 @vitejs/plugin-react 被误裁),均已修复并补了回归测试。

数据

  • 六级版:38 门 / 2017—2026 真题 / 字幕 7690 行 / 译文覆盖 99% / 题干锚点映射 100%

v0.7.0 — 增量更新:日常更新只需几 MB

Choose a tag to compare

@zzz-sc-tech zzz-sc-tech released this 16 Oct 03:02

v0.7.0 — 增量更新:日常更新只需几 MB

本 Release 为六级版(38 套六级真题)。
从 v0.6.0 起更新不需要重新下载音频。

更新包拆成三层,只下变化的部分

以前每次更新都要下载完整的更新包(466 MB),哪怕只改了几行程序代码。
本版把更新包拆成三层,客户端先比对本机已有的内容,只下载确实变化的那层:

层 体积 什么时候需要下载
程序 3.6 MB 每次更新
依赖库 123 MB 仅依赖库本身有更新时
音频 217 MB 仅音频有更新时

实测效果:日常更新从 466 MB 降到 3.6 MB(约 129 倍)。
音频与依赖库留在本机原样不动,不再重复下载。

判断完全自动,你不需要做任何选择。update.log 里能看到每层「已就位,跳过」或「下载」的明细。

顺带修掉一处浪费

旧版更新包里包含了便携 MySQL 与 Node 运行时(约 122 MB),
但覆盖安装时这两个目录本来就是受保护的、永远不会被替换——
等于每次更新白下 122 MB。本版已从更新包中排除。

兼容与过渡

  • 旧版客户端可以无缝升级到本版:v0.6.0 的「检查更新」会照常选中本版的程序包,
    完成升级后新逻辑自动生效,从下一次更新起才开始省流量。
  • 完整安装包(.7z)与更新包的覆盖安装语义不变,学习数据(temp/runtime/)始终不受影响。
  • 更新包内的媒体文件采用「只补缺失、不覆盖已有」策略,不会破坏本机已就位的音频。

资产说明

文件 体积 用途
juting-v0.7.0-win-full-cet6.7z 299 MB 首次安装用这个,需 7-Zip 解压
juting-v0.7.0-win-full-cet6-update.zip 3.6 MB 程序层(客户端一键更新必下)
juting-v0.7.0-win-full-cet6-deps.zip 123 MB 依赖层(按需,客户端自动判断)
juting-v0.7.0-win-full-cet6-media.zip 217 MB 音频层(按需,客户端自动判断)
SHA256SUMS.txt — 校验和

手动更新(网络受限时):下载 .7z 完整包,解压后全部覆盖到安装目录即可。
客户端一键更新会按需自动取用后三个文件,无需手动下载。

数据

  • 六级版:38 门 / 2017—2026 真题 / 字幕 7690 行 / 译文覆盖 99% / 题干锚点映射 100%

技术说明

分层与门控的完整设计、验证数据与踩坑记录见
docs/增量更新方案.md。