Skip to content

Commit 358777e

Browse files
committed
chore(release): 版本面五件套 bump v5.7.7 -> v5.8.0(ADR-0011 发布面)
- sw.js CACHE_NAME -> delector-static-v5.8.0 - index.html 顶栏 System · v5.8.0 Online - build.gradle versionName 5.8.0 / versionCode 50800 - README badge+下载表+Tests(883/884)+摘要段+changelog v5.8.0 - PROJECT_OVERVIEW 发布面节 v5.8.0 + ADR-0011 状态更新 - 守卫测试 test_writer_mobile 版本面一致性 3/3 PASS
1 parent 4565705 commit 358777e

5 files changed

Lines changed: 16 additions & 14 deletions

File tree

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# DeLector · 德语欧标沉浸精读与考点剖析工作台
22

33
<p align="center">
4-
<img src="https://img.shields.io/badge/Release-v5.7.7-blue?style=flat-square" alt="Release Version" />
4+
<img src="https://img.shields.io/badge/Release-v5.8.0-blue?style=flat-square" alt="Release Version" />
55
<img src="https://img.shields.io/badge/Python-3.10%20%7C%203.11-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python Version" />
66
<img src="https://img.shields.io/badge/FastAPI-0.110+-009688?style=flat-square&logo=fastapi&logoColor=white" alt="FastAPI" />
77
<img src="https://img.shields.io/badge/spaCy-German%20NLP-09A3D5?style=flat-square&logo=spacy&logoColor=white" alt="spaCy" />
88
<img src="https://img.shields.io/badge/CEFR-A1~C1%20Goethe-E63946?style=flat-square" alt="CEFR Ladder" />
99
<img src="https://img.shields.io/badge/AI%20Model-deepseek-brightgreen?style=flat-square" alt="AI Model" />
10-
<img src="https://img.shields.io/badge/Tests-839%2F840%20Passed-2EA44F?style=flat-square" alt="Pytest" />
10+
<img src="https://img.shields.io/badge/Tests-883%2F884%20Passed-2EA44F?style=flat-square" alt="Pytest" />
1111
<img src="https://img.shields.io/badge/License-MIT-gray?style=flat-square" alt="License" />
1212
</p>
1313

@@ -20,14 +20,14 @@
2020

2121
## 📦 多平台下载发布包 (Downloads)
2222

23-
> ✅ **v5.7.7 四平台安装/便携包由 CI 自动构建并挂载至下方 Releases**(Windows 便携 ZIP / macOS·Linux TAR.GZ / Android arm64 APK);Go agent 预览包见 Actions artifact(`DeLector-Agent-5.7.7-*`)。**v5.5.0 起 Android 端内置 4 篇 A1/A2 分级短文(覆盖安装后打开「遇见区」即可阅读);v5.5.1 修复了「新版本已就绪」提示点不动与常驻遮挡的问题;v5.6.0 新增备考域「🎧 听力微训工坊」三模式(精听/影子跟读 · 听写诊断 · 听力填空),Android 真机 TTS 链路已点检通过;v5.7.0 新增备考域「✍️ 长难句精读工坊」——句子难度 7 维评分 + 跨语料挑长难句 + 先拆解后揭示句法树 + 入复习盒闭环;v5.7.1–5.7.3 修复长难句工坊 Android 真机 500(detail 容错 → model_copy 真根因 → `[object Object]` 渲染)+ 跨端打包兼容守卫;v5.7.4 pure 评分增强 + 前端字号优化 + 轻量分析文案 + spaCy 加载诊断端点;v5.7.5 修复诊断竞态(_loadSpacyDiag 未 await → 诊断小字不渲染);v5.7.6 修复 spaCy 诊断 error 永远为空(route 按值 import 不可变字符串 `_spacy_load_error` → getter 实时读取显示真实加载异常);v5.7.7 修复真机 spaCy E050(CI 拷模型漏了 .dist-info → `is_package()` 只认 pip 元数据判"不是包" → 连 dist-info 一起打包 + APK 探针守卫)。**
23+
> ✅ **v5.7.7 四平台安装/便携包由 CI 自动构建并挂载至下方 Releases**(Windows 便携 ZIP / macOS·Linux TAR.GZ / Android arm64 APK);Go agent 预览包见 Actions artifact(`DeLector-Agent-5.7.7-*`)。**v5.5.0 起 Android 端内置 4 篇 A1/A2 分级短文(覆盖安装后打开「遇见区」即可阅读);v5.5.1 修复了「新版本已就绪」提示点不动与常驻遮挡的问题;v5.6.0 新增备考域「🎧 听力微训工坊」三模式(精听/影子跟读 · 听写诊断 · 听力填空),Android 真机 TTS 链路已点检通过;v5.7.0 新增备考域「✍️ 长难句精读工坊」——句子难度 7 维评分 + 跨语料挑长难句 + 先拆解后揭示句法树 + 入复习盒闭环;v5.7.1–5.7.3 修复长难句工坊 Android 真机 500(detail 容错 → model_copy 真根因 → `[object Object]` 渲染)+ 跨端打包兼容守卫;v5.7.4 pure 评分增强 + 前端字号优化 + 轻量分析文案 + spaCy 加载诊断端点;v5.7.5 修复诊断竞态(_loadSpacyDiag 未 await → 诊断小字不渲染);v5.7.6 修复 spaCy 诊断 error 永远为空(route 按值 import 不可变字符串 `_spacy_load_error` → getter 实时读取显示真实加载异常);v5.7.7 修复真机 spaCy E050(CI 拷模型漏了 .dist-info → `is_package()` 只认 pip 元数据判"不是包" → 连 dist-info 一起打包 + APK 探针守卫)。**v5.8.0 ADR-0011 词库单一真相化与等级判定数据驱动正式发布(2026-09-15,PR #46):背词工作台词库改为单一数据真相(A1 704 / A2 974 / B1 1712 同契约),根除 HTML 正则解析与静默回退;前端 `normalizeWord` 幂等归一 + 一次性迁移(id/进度零丢失);scope 判定数据驱动(13/13 切片护栏零漂移);**新增 B1 档位(工作台第 5 档 + 备考域 B1 页签,1712 词)**。测试基线 **883 passed + 1 skipped**;Android 需覆盖安装 v5.8.0 生效(B1 入口 + normalizeWord 迁移)。**
2424

2525
| 平台 | 版本 | 说明 | 下载通道 |
2626
| ------------------ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
27-
| 🪟 **Windows x64** | `v5.7.7` | 免安装 Python / 零环境依赖,解压双击 `DeLector.exe` 即可秒开 | [下载 ZIP 包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.7.7) |
28-
| 🍎 **macOS** | `v5.7.7` | 解压运行 `start` 脚本,全自动启动服务与默认浏览器 | [下载 TAR.GZ 包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.7.7) |
29-
| 🐧 **Linux x64** | `v5.7.7` | 全发行版通用,解压运行 `start` 即可使用 | [下载 TAR.GZ 包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.7.7) |
30-
| 📱 **Android** | `v5.7.7` | 内嵌 Python 运行时与 spaCy 离线模型,单机独立运行;**支持 arm64-v8a**,CI 钉死签名 keystore 并验签(可覆盖升级)。(CI 自动构建 APK;**v4.9.0 新增背词台核心词模式(235 词 / 704 词一键切换)与导入按归一词头去重,老设备幂等回填、FSRS 进度零丢失。**| [下载 APK 安装包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.7.7) |
27+
| 🪟 **Windows x64** | `v5.8.0` | 免安装 Python / 零环境依赖,解压双击 `DeLector.exe` 即可秒开 | [下载 ZIP 包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.8.0) |
28+
| 🍎 **macOS** | `v5.8.0` | 解压运行 `start` 脚本,全自动启动服务与默认浏览器 | [下载 TAR.GZ 包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.8.0) |
29+
| 🐧 **Linux x64** | `v5.8.0` | 全发行版通用,解压运行 `start` 即可使用 | [下载 TAR.GZ 包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.8.0) |
30+
| 📱 **Android** | `v5.8.0` | 内嵌 Python 运行时与 spaCy 离线模型,单机独立运行;**支持 arm64-v8a**,CI 钉死签名 keystore 并验签(可覆盖升级)。(CI 自动构建 APK;**v4.9.0 新增背词台核心词模式(235 词 / 704 词一键切换)与导入按归一词头去重,老设备幂等回填、FSRS 进度零丢失。**| [下载 APK 安装包 (GitHub Releases)](https://github.com/ROM4n2/DeLector/releases/tag/v5.8.0) |
3131

3232
---
3333

@@ -408,6 +408,8 @@ DeLector/
408408

409409
- [x] **v5.7.7**:**真机 spaCy E050 根因修复 —— dist-info 缺失**(2026-09-15,vault-debug)——v5.7.6 诊断小字首次显示真实错误:`E050 Can't find model (md 与 sm 双模型)`。根因排查:APK 解包显示模型文件 44 项全完整、`extract_packages` 生效、spaCy import 正常——但 spaCy 3.8 的 `is_package()` 实现是 `importlib.metadata.distribution(name)`,**只认 pip 元数据(.dist-info)不碰文件系统**;CI 把 `de_core_news_sm` 包目录 `cp -r` 进 APK 时**漏拷了平级的 `de_core_news_sm-3.8.0.dist-info`** → 真机判定"不是 Python 包" → E050。用独立 venv 干净复现:仅包目录 `is_package=False + E050`;补上 dist-info 后 `is_package=True + spacy.load OK`。修法:① CI "Sync Python Backend" 步骤用 glob 定位 dist-info 并连拷进 `src/main/python`;② CI APK 探针加 `dist-info-complete` 精确守卫(v5.7.6 旧 APK 被正确拦截、新 APK 放行,本地用真实 APK 验证)。测试基线不变(纯 CI 打包层修复);Android 需覆盖安装 v5.7.7、长难句工坊从「轻量分析」切回 spaCy 完整解析。
410410

411+
- [x] **v5.8.0**:**ADR-0011 词库单一真相化 + 等级判定数据驱动正式发布**(2026-09-15,PR #46)——① 背词工作台词库改为**单一数据真相**(`delector/data/a1_workbench_dict.py` 682 词 / 213 核心 / 22 自定义,A1 704 / A2 974 / B1 1712 同契约),根除 HTML 正则解析与静默回退(服务端直接 import 数据模块,缺失抛 RuntimeError);② 四路径契约统一(9 字段集 `{id,hw,pos,gender,plural,de,zh,core,cefr}`);③ 前端 `normalizeWord` 幂等归一 + `wb.schema.v1` 一次性迁移(id/进度零丢失,merge 探针全绿);④ scope 判定数据驱动(`SCOPE_PREDICATES` + `isInScope`/`cefrOf` 唯一入口,13/13 切片护栏零漂移);⑤ **新增 B1 入口**(工作台第 5 档 + 备考域 B1 页签 + 徽标动态化,catalog `count_fn` 动态推导零硬编码)+ `/api/cards` 信封解包修复。测试基线 **883 passed + 1 skipped**(838→883 净增 44);Android 需覆盖安装 v5.8.0 生效(B1 入口 + normalizeWord 迁移)。
412+
411413
- [x] **`server.py`** **拆分重构**(v4.6.4):3053 行单文件拆为 `nlp.py`(NLP/CEFR/文本分析)、`database.py`(DB/CRUD/备份)、`security.py`(SSRF/URL 安全),`server.py` 保留路由骨架。依赖图无环,319 测试全绿。
412414

413415
- [x] **介词矩阵「已入卡」持久化**(v4.6.4):新增 `prep_saved` 表 + `GET/POST /api/prep/saved`,前端 `_prepSavedKeys` 从服务端初始化,重进矩阵段按钮状态保持。

0 commit comments

Comments
 (0)