Files
lexgo/docs/09-product-requirements-overview.md
T
ila 38d8975325 feat: 自托管交付的安装、备份与恢复工具及部署文档 (#15)
- scripts/ops.py:install-check(依赖与资源版本、客户端不得低于服务端)、init-database(建空库
  并提示最小权限)、backup(全库 dump + manifest,不含凭据)、restore(默认只写空库、
  --confirm 必需、覆盖需 --force、拒绝系统库与带 CREATE DATABASE/USE 的 dump、比对源库校验和)、
  verify(完整性 + 可选两账号接口闭环)、smoke(干净实例上建两个演练账号走通学习闭环)
- scripts/bench.py:写明规模的人造数据集性能测量,记录数据量、机器与 p50/p95
- tests/test_lexgo_ops.py:版本解析、库名白名单、dump 安全性、manifest 字段白名单等无库测试
- Wiki 新增 Deployment-and-Operations 页面与 wiki-docs.json 映射(含升级回滚与已知限制)
- 更新 Architecture、Business-Rules、Local-Development、Product-Requirements、Home 与
  README/AGENTS;本单无 schema 与接口变化
2026-09-15 16:30:23 +08:00

31 KiB
Raw Blame History

generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Product-Requirements-Overview wiki_url: https://git.ilapage.cn/OPC/lexgo/wiki/Product-Requirements-Overview.- wiki_revision: a1847957e287c7eb1a54905e13632aeca4cd75f7 synchronized_at: 2026-09-15T08:27:38Z

产品需求总览

本页用途

连接调研、候选交付范围、工作量和验收。详细行为见 中文需求提取,两份分析冲突见项目档案。

事实来源边界

当前产品实现:账号与独立空间工程基础已通过验收,其余学习业务待实施。用户已确认多账号、数据独立、自托管和 F01~F12;已建立原型工单 #1 及 Quant-UX 桌面/手机设计。下方 U/A/N 与 M0~M4 保留为研究索引,不能扩大已批准 MVP,也不能用原型完成度代替产品实现进度。

当前需求索引

领域 需求定位 候选阶段 最小验收入口
身份与管理 U01、A01/A02/A09、N01 M1 A/B 用户数据不可互访,普通用户直接管理 API 被拒绝
内容库与文本处理 U02/U03/U04/U08/U09、N02/N03/N04 M0/M1 导入→就绪→阅读;失败重试无重复;原文可还原
阅读器、词语与短语 U10/U11/U12/U13/U16、N04/N07 M0/M1 点词、划短语、跨章状态与完成阅读开关正确
词典与语言资源 U14、A03/A04、N05 M0/M1 一种已验收语言查词与模型配置,本地核心无需翻译服务
复习与词汇库 U17/U19、A07、N02 M0/M1 到期/重学/时区/等级样例,重复作答不重复记账
统计、外观与移动 U21/U24/U25、N07 M1 基础、M2 补齐 事件统计一致、基础主题、手机与键盘操作
备份恢复 A10、N06 M1 基础、M4 演练 空实例恢复数据库、文件、配置清单后抽样一致
多格式导入 U05/U06/U07 文件部分 M2 EPUB/网页/字幕文件成功与失败样例,明确格式限制
功能完善 U11 完整形态/U15/U18/U19 CSV/U22/U24 定制/U25 PWA/U26、A04 格式/A05/A06 M2 练习不改调度、CSV 空值语义、TTS、设置及删除本人数据边界
外部与语言专项 U07 远程/U20/U23、A08 M3 独立验证 Anki/Jellyfin/YouTube 和中日专项,可降级
稳定化 N01~N08 M1 起持续,M4 集中 隔离、恢复、Unicode、幂等、性能实测;N08 待定版

登记规则

阶段与工作量表关联。正式建单后增加真实 URL、状态和设计版本;不编造 #1 等占位编号。拆分某个需求时保留原编号并注明子范围。

原型与设计资产

已建立 Quant-UX 桌面与手机原型 v1,入口和覆盖范围见本页末尾;当前已通过用户审核。管理区仅展示本 MVP 必要适配,后续实现沿用 go-admin。

状态规则

范围确认后更新为待实施;开始执行才标实施中;有实际证据才标待验收;用户明确验收才标已验收。发生范围、技术基线或验收标准变化时更新主题与估算,不用“已写文档”替代产品状态。

最小验收清单

首版按完整学习闭环、词语状态一致、阅读完成开关、多用户隔离、管理员越权拒绝、任务失败恢复、固定时间复习、Unicode/短语定位、完整备份恢复九类场景验收。真实测试入口待工程建立后补齐。

原型门禁

按轻量模式,只在交互不确定性或明显返工风险下建立可审阅原型;独立功能仍需单元工单。

线上原型与按需 HTML 快照

默认以带版本的线上链接审核;仅用户明确要求才导出 HTML,已确认快照不得覆盖。

原型确认记录

用户已验收当前 Quant-UX 桌面/手机 v1,原型工单 #1 已关闭;结论见验收记录。LinguaCafe 对照修订未执行,后续由划词验证工单承接,不将预设交互计作真实选择验证。

更新时机

范围确认、实际实施状态变化或验收标准变化时更新索引;工单只有实际创建后才填写 URL。

轻量修改边界

目标明确的局部样式或布局、预期行为明确的小 Bug,以及不改变接口、数据结构和权限的单模块调整可直接实施,完成必要验证后报告即可,不为了留痕补建工单。完整独立需求和中高风险变化仍需工单。

本轮技术决策与需求状态

2026-09-10 用户要求先记录已讨论技术方案,再讨论需求和 MVP。学习端采用 Vue 3 + TypeScript + Vite,通过 create-vue 新建独立工程,配套 Vue Router、Pinia、Element Plus、Vitest 和 Playwright;管理端基于指定 go-admin-ui 二次开发,共用基于 go-admin 扩展的后端及 MySQL 8。

上述决策只固定实现方向。当前 U/A/N 需求索引与 M0~M4 阶段仍是候选规划,不视为用户已批准全部 P0/P1/P2 或首版范围。不因技术选择自动创建实施工单或开始产品代码。目标用户现已确定为少量受邀用户;F01~F12 已筛选确认;默认学习语言已确认英语,原型 v1 已获用户验收,真实划词与调度仍需工程验证。

MVP 范围基线 v1(2026-09-10,F01~F12 已确认)

已确认定位:支持多账号、数据独立的自托管学习工具,先邀请少量用户使用。 用户要求从 LinguaCafe 提取候选,再由用户筛选。用户已确认 F01~F12 全部进入 MVP,X01~X14 暂不纳入。原文 P0 中超出 F 清单的部分不自动进入 MVP。确认功能范围不表示原型或产品实现已验收。

来源为已有 LinguaCafe 需求提取,静态研究基线为 c1ea298ce40c65b9dd33e9b26fd2e52fae66f2c8。本轮没有重新拉取上游或运行原版。U/A 为上游功能索引,N 为 LexGo 提出的质量要求;以下首版裁剪属于 LexGo 建议。

B:定位确定的基础与建议实现边界

编号 基础要求 来源与确认边界 最小通过条件
B01 多账号、学习者与管理员角色 多账号已确认;U01/A01/A02 为基础。建议首批由管理员创建账号,不默认公开注册或邀请链接 两账号独立登录;普通用户直接访问管理 API 被拒绝
B02 私人内容、词汇、释义、复习和进度独立 数据独立已确认;N01 是 LexGo 验收要求,不声称原版已完整满足 更换 ID 不能访问他人记录;后台任务、文件、缓存及账号切换不串数据
B03 共享模型与词典,个人学习记录独立 U14/A03/A04,作为已确认定位的实现建议 同一词典服务两人,A 修改释义不影响 B
B04 自托管、可恢复、已选功能行为正确 自托管已确认;A10/S10 为参考,N02~N06 为新增质量要求 可在干净环境安装;备份恢复抽样一致;重试和重复请求不重复产生副作用

B04 建议先提供可执行的部署与备份恢复步骤,不要求备份管理页面、定时策略或一键安装器进入首版。已选功能的隔离、文本正确性、幂等验收随功能保留,不能作为独立可删项。账号禁用、重置和删除策略在账号细化时确定;原版缺失的用户删除不能视为现成能力。

F:已确认的首版学习闭环

F01~F12 全部已确认进入 MVP,目前已通过原型验收,实施工单待执行,尚未实现。范围变化应另行记录用户确认。

编号 功能 首版最小范围与通过条件 来源
F01 私人书库与章节 创建、改名、编辑/删除本人书籍和章节,使用默认封面;可进入阅读,删除需确认且不影响他人 U02
F02 粘贴文本导入 选择语言、粘贴正文、新建或追加章节,先固定分章策略;文本可生成可读章节,异常有提示 U04/U08
F03 TXT 文件导入 约定支持编码,检查空文件、超限与错误编码;不含 EPUB/PDF/字幕 U04
F04 处理进度与失败重试 展示处理中/就绪/失败,错误可读;重试不重复生成章节、任务只对本人可见 U09;N02/N03
F05 基础阅读器 原文、词语高亮、点击查词、切换章节;先一套查询交互,Unicode/标点/空白及点击位置正确 U10/U11;N04
F06 本地词典查词 默认英语、一种可用词典格式,基础资源配置/导入与查询;可用时利用 lemma,查询不依赖在线翻译 U14/A03/A04
F07 个人词语记录 保存/修改释义、例句、学习等级;区分新词/学习中/已知/忽略;同一词跨章节状态一致 U12
F08 短语学习 连续选词保存短语、释义、状态并正确定位;匹配与重叠规则需细化,选 F10 时也覆盖短语复习 U13
F09 词汇库 搜索、按学习状态筛选、查看与编辑本人词条;不含 CSV U19 基础
F10 基础间隔复习 按用户/语言取到期词条,例句、答案、答对/答错和重学;固定时钟验证到期与等级边界,重复作答不重复记账 U17/A07;N02
F11 完成阅读与基础进度 标记章节已读,展示已读/已知词/待复习等基本数量;重复完成不重复计数 U16/U21 子集
F12 电脑与手机浏览器基础体验 响应式、字号/基础主题、常用键盘操作;已选闭环在两种设备上可用,不包含 PWA U24/U25;N07

X:按使用习惯增选,默认建议后置

X01~X14 本轮均不进入 MVP,留待后续需求讨论。

编号 功能 提升到首版的理由与边界 来源
X01 EPUB 导入 主要读电子书时优先;需分章与异常文件处理,不包含 PDF/MOBI U05
X02 网页 URL 导入 主要读新闻时优先;需明确网站适用范围、访问限制和失败回退 U06
X03 本地字幕文件导入 主要用视频材料时考虑;只做约定文件格式,不含远程平台 U07 文件部分
X04 词汇 CSV 导入/导出 有现成词表或需导出词汇时考虑;缺列与空值语义需保留,不是完整备份 U19/S7
X05 每日目标与学习日历 在基础统计上增加目标、日历和历史展示 U21 完整部分
X06 浏览器朗读 在阅读/复习中朗读并选择声音,不承诺云端 TTS 品质 U22
X07 在线翻译 先选一种服务,处理错误和额度,不默认集成所有服务商 U15/A05
X08 不计复习进度的练习 自由练习不改变 SRS 调度;练习次数统计另定 U18
X09 阅读前难度提示 用已知词/新词等帮助选择章节 U03
X10 阅读完成批量标已知 在 F11 外新增明确开关;关闭时只记已读,不改词语状态 U16 扩展部分
X11 复习范围筛选与策略界面 按书/章节筛选、管理员配置间隔;F10 可先固定已定义参数 U17/A07 完整部分
X12 复杂外观与查询形态 四种查询形式、字体、电子墨水主题等;按需要拆选 U11/U24/A06
X13 PWA 安装 添加到主屏,不等于完整离线学习与同步 U25 扩展部分
X14 本人语言数据批量清理 与删除一本书不同,需明确范围和恢复边界 U26

默认学习语言已确认英语。未来增加中文或日语时,U23 读音/汉字等专项需重新判断优先级,不能套用“英语先行”的旧估算。27 种语言完整覆盖不作为 MVP 承诺。

默认留到后续讨论的范围

Anki(U20)、YouTube/Jellyfin 远程字幕(U07/A08)、全量旧实例迁移、定时备份 UI、全部词典格式、复杂导入设置和完整管理面板建议后续再定;需要其中某项可单独提出。公开注册/邀请链接系统、组织租户、收费、课程、社交、AI 对话、OCR、视频转写、原生 App、完整离线同步和 FSRS 不纳入本次“原版功能提取”承诺。

已确认流程与依赖

  • 用户确认 F01~F12,并同意“更新范围文档 → 建原型工单 → Quant-UX 可点击原型 → 审核后拆实施工单”。
  • 原型阶段已结束,进入四阶段实施工单与技术验证;不导出本地 HTML。
  • F02 和 F03 均保留,支持粘贴文本与 TXT;F08 与 F10 均保留,必须展示短语保存与复习;F12 覆盖桌面和手机关键操作。
  • F05/F06/F07 是查词保存基础;所有私人数据归属本人,公共词典与模型可共享;原型只示意账号与数据归属;真实越权拒绝和服务端隔离在实现阶段验证。
  • 英语为演示语料,默认学习语言已确认英语。管理员创建账号、固定分章、按全库复习、不批量置已知作为原型草案处理,原型审核时确认细节。
  • 原型需覆盖加载、空状态、错误/重试、删除确认、保存成功、复习答案与结果;桌面与手机可走通完整学习闭环。
  • 具体实现工单、接口契约和估算拆解在原型获用户审核后进行。

本轮确认记录

内容 状态
多账号、数据独立、自托管、少量受邀用户先用 用户已确认
F01~F12 / X01~X14 用户已确认 F 全部进入,X 暂不纳入
默认学习语言 用户已确认英语;原型文章为虚构样例
交互和页面细节 当前 v1 已通过用户审核,见工单 #1 验收记录
产品实现与运行验收 工程基础 #2 已实现并本地验证,待用户验收;其余学习业务未实现

Quant-UX 原型任务

2026-09-10 用户明确要求使用 Quant-UX 并同意先建原型工单、审核原型后再拆实施工单。审核必须具备可编辑设计源、可访问演示链接、版本标识、覆盖矩阵与实际测试结果;未审核不得标为已验收。实际入口见下方,审核结果统一记录到工单 #1。

原型正式任务:MVP F01–F12:Quant-UX 桌面与手机交互原型 v1。F01~F12 范围已确认;Quant-UX 连接已恢复,原型 v1 已建立并获用户验收。

原型 v1 审核入口(2026-09-10)

版本身份:LexGo · MVP F01–F12 · 桌面/手机 v1;模型摘要、实际点击证据和限制见工单 #1。确认人:当前会话项目用户;确认日期:2026-09-10;结论:通过,精确记录见工单 #1 评论 7498。

用户要求页面尽量减少说明文字,与目标页面一致。产品页保留字段、操作、必要提示;功能编号、模拟说明和异常测试入口集中在独立导览及工单。英语及账号均为样例;输入、预设文件选择、处理状态、选词/短语与复习转换用于审阅交互,不证明真实文件解析、任意划词、数据持久化、权限隔离和调度正确。没有生成 HTML。

范围 原型入口
F01 书库、章节目录、书籍/章节编辑与删除确认
F02–F04 粘贴/TXT 导入、校验提示、处理中、失败重试、完成
F05–F08 阅读、查词、保存词语/短语、无释义/无词典、词条状态
F09–F10 生词本、筛选/空结果、编辑词条/短语、两张复习卡与重学/结果
F11–F12 章节完成、基础进度、浅色/深色字号、桌面/手机布局
多用户基础 登录/错误/退出、另一账号空书库、管理员建账号、语言资源配置

原型审核后再拆实施工单,结合首发语言与技术验证重新估算 F01~F12;旧全量研究估算不是该 MVP 的承诺。

2026-09-10 用户补充确认默认学习语言为英语。MVP 默认启用英语学习空间,技术验证优先检查英语分词/lemma 与本地词典;此确认不扩展为多语言同时交付。

实施工单与登录要求(2026-09-10)

用户已验收当前 Quant-UX 桌面/手机 v1,原型工单 #1 已关闭;结论见验收记录。LinguaCafe 对照修订未执行,后续由划词验证工单承接,不将预设交互计作真实选择验证。

学习端与管理端均使用账号(用户名)+密码登录,账号不要求邮箱格式;邮箱不作为必填登录标识。两端共用账号体系,管理权限由服务端单独校验。用户名唯一性和大小写规则在账号工单中细化。

四阶段实施总览 #16 汇总四阶段与依赖,各单均包含完整路径、参考模块、设计证据、验收和人日估算。工程基础 #2 已于 2026-09-10 通过用户验收:两端用户名登录、管理员创建/启停/重置学习账号、可撤销会话和本人英语空空间。阅读、导入、词典和复习尚未实现。代码在 feat/2-account-foundation 分支。

阶段 工单 覆盖 预计人日
1 #2 工程基础:管理员建账号,学习者登录独立空间 B01–B02、F12 登录基础 6~9
2 #3 技术验证:英语分词、原文定位与本地词典贯通 F05–F06 技术验证 3~5
2 #4 技术验证:桌面划词与手机短语范围选择 F05、F08、F12 技术验证 3~5
3 #5 粘贴英语文本,处理后进入本人章节阅读 F01 基础、F02、F04 基础、F05 原文 5~8
3 #6 配置英语词典,在章节中点词查看释义 F05 查词、F06、B03 5~8
3 #7 保存个人词义与状态,并在其他章节同步显示 F07、F05 高亮、B02 4~6
3 #8 完成到期单词复习,答题结果只记账一次 F10 单词、B02 5~8
4 #9 上传 TXT,校验编码后导入本人书库 F03、F04 补齐 3~5
4 #10 编辑和删除本人书籍、章节 F01 补齐、F04 3~5
4 #11 选择连续短语,保存并加入到期复习 F08、F10 短语 4~7
4 #12 搜索、筛选并编辑自己的词语和短语 F09 2~4
4 #13 完成章节并查看个人基础进度 F11 2~3
4 #14 补齐桌面与手机学习体验、主题及键盘操作 F12 收尾 3~5
4 #15 自托管试用交付:安装、完整恢复与两账号验收 B04、F01–F12 集成验收 4~6

工程基础交付边界(#2)

工程基础 #2 已于 2026-09-10 通过用户验收:两端用户名登录、管理员创建/启停/重置学习账号、可撤销会话和本人英语空空间。阅读、导入、词典和复习尚未实现。代码在 feat/2-account-foundation 分支。

用户名登录与账号管理覆盖 B01/B02 和 F12 的登录基础;所有 F 学习业务仍需按 #3~#15 验收。#2 的会话和权限测试不能证明尚未存在的书籍/词汇/复习权限已通过。

试用前管理能力增补

用户于 2026-09-10 验收 #2,并批准新增 #18 登录日志与操作审计:两个管理员列表、查询筛选分页、必要字段记录、权限及 90 天保留清理。沿用现有 go-admin 管理布局,无需独立高保真原型。已通过用户验收,纳入 #16“邀请用户试用前完成”;不替代 #3 英语分词和 #4 阅读选择验证,也不引入其他 go-admin 默认模块。

实施进度增补(#5)

2026-09-10:#5“粘贴英语文本,处理后进入本人章节阅读”已实现并待用户验收,覆盖 F01 基础(书库与章节)、F02(粘贴导入)、F04 基础(处理状态与失败重试)与 F05 原文(可读原文与章节切换)。本节取代此前“阅读、导入尚未实现”的表述:粘贴导入与原文阅读已实现;点词查词、词典、个人词语状态、复习与统计仍未实现(#6~#15)。schema 升级为 v3,新增 lexgo_books、lexgo_chapters、lexgo_ingest_jobs。

范围边界不变:本单按 Go 处理,不接入 Python NLP,因此不产生 token、lemma 或词典索引;Go+Python NLP 与全 Go 路线仍未确认,正式接入前必须由用户确认。真机手机详细证据仍缺失(#4 缺口保持)。

全 Go 正式架构决定(2026-09-11,#6)

用户已明确选择全 Go:正式英语分词、原文位置映射、本地词典解析和词形候选查询由 Go 后端完成,不运行 Python NLP 服务。此前“Python 建议/全 Go 未决”仅为历史决策记录,由本决定覆盖;spikes/english 保留历史验证,不接入产品。#6 按该方向实施,当前方案见工单最新启动评论;WordNet 3.0 仍为首个资源(英语释义),词形规则候选不等同于 spaCy 上下文消歧,原文及个人学习状态不按候选合并。

#6 交付范围更新(2026-09-11)

用户确认全Go后,英语词典配置与阅读器点词查义已实现待验收:共享WordNet3.0英语释义、管理员导入/启停、本人章节点击/键盘查词、加载/无结果/资源不可用/网络失败/关闭状态。词形结果是规则候选,不提供上下文词性消歧。个人释义输入是未保存临时草稿,#7才持久化。沿用已验收v1;手机底部45dvh面板自动测试通过,真机缺口保留。#5已关闭并合入main,#6尚不关闭。

#7 交付范围更新(2026-09-11)

F07 的个人词语记录已于 2026-09-11 通过用户验收:阅读器可以保存与修改个人释义、例句和状态(新词/学习中/已知/忽略),同一词形在本人其他章节显示相同状态与高亮,两个账号的数据互不影响。个人释义与共享 WordNet 词典分开存储,个人释义不进入审计日志。schema 升级为 v5,新增 lexgo_terms。

仍未实现并留给后续工单:词汇库搜索与编辑(#12)、短语(#11)、到期复习与等级推进(#8)、阅读完成与进度(#13)、TXT 导入(#9)、书籍章节编辑删除(#10)。词形候选仍不提供上下文消歧,个人学习状态不按候选合并;例句不自动关联原文句子。

#8 交付范围更新(2026-09-11)

F10 的单词到期复习已于 2026-09-11 通过用户验收(包含独立审核整改 R1~R3):按固定间隔表取本人当前语言的到期词条,正面显示词与挖空例句,显示答案后按「认识/答对」「不认识/答错」「再学一次」评分;答对升级并排下次复习,答错降级并立即回到本轮,再学一次不改等级并回到本轮。重复提交、网络重发与双标签页都不会重复更新次数和间隔;已知与忽略的词条不入队。管理端无改动。

仍未实现并留给后续工单:短语复习(#11)、词汇库搜索与编辑(#12)、阅读完成与进度统计(#13)、TXT 导入(#9)、书籍章节编辑删除(#10)。复习范围筛选与策略配置(X11)、练习模式(X08)、FSRS 仍在范围外。

#9 交付范围更新(2026-09-11)

F03 的 TXT 文件导入已于 2026-09-13 通过用户验收:学习端导入页新增「粘贴文本 / TXT 文件」来源切换,选择 UTF-8 的 .txt 文件后经大小、空文件与编码校验进入与粘贴相同的处理与阅读流程,失败可重试。只支持 UTF-8(允许可选 BOM)且不替换损坏字符;UTF-16 与其他编码会被明确拒绝;文件只在内存中解码、不写临时文件,客户端文件名不参与任何路径也不入库;重复上传同一文件只产生一章。schema 无变化。

仍未实现并留给后续工单:书籍与章节的编辑删除(#10)、短语选择与保存(#11)、词汇库搜索与编辑(#12)、阅读完成与进度(#13)、桌面与手机体验补齐(#14)、自托管试用交付与完整恢复(#15)。EPUB/PDF/字幕、UTF-16 转码、按空行自动分章与断点续传不在本单范围。

#10 交付范围更新(2026-09-11)

F01 的编辑与删除已于 2026-09-14 通过用户验收:学习端可改书名、改章节标题、编辑章节正文并按新版本重新处理,可用确认弹窗删除章节或整本书。编辑正文产生明确版本,旧处理结果被标为 superseded 而不覆盖新版本;删除在事务内完成并重排剩余章节序号,个人词条、复习排期与作答记录一律保留。本次没有数据库结构变化。

仍未实现并留给后续工单:短语选择与保存(#11)、词汇库搜索与编辑(#12)、阅读完成与进度(#13)、桌面与手机体验补齐(#14)、自托管试用交付与完整恢复(#15)。封面与音频附件(#21)、回收站/撤销、批量操作、章节跨书移动与语言变更不在本单范围。

#11 交付范围更新(2026-09-11)

F08 的短语学习与 F10 的短语复习已于 2026-09-14 通过用户验收:阅读器支持连续选择(桌面原生拖选、手机系统手势、面板按词调整端点),保存个人释义、例句与状态;短语与单词共用同一张表、同一到期队列与同一套幂等作答,同一短语跨章节只存一条记录并在出现处高亮;复习卡片把整段短语挖成一个空。范围规则(整词对齐、内部标点保留、最多 12 词、最左最长重叠)与失效引用回退(高亮消失、学习记录保留)已固化。本次没有数据库结构变化。

仍未实现并留给后续工单:词汇库搜索与编辑(#12,含短语编辑界面)、阅读完成与进度(#13)、桌面与手机体验补齐(#14)、自托管试用交付与完整恢复(#15)。短语自动合并同义形式、上下文词性消歧、短语跨书移动、批量编辑与真机手柄精细手感不在本单范围。

#12 交付范围更新(2026-09-11)

F09 的词汇库已于 2026-09-15 通过用户验收:生词本分页列出本人保存的词语与短语,可按关键词(匹配词形、显示原文或个人释义,大小写不敏感、通配符按字面值)与状态/类型筛选,可编辑释义、例句、状态与 1~7 学习等级,提供「开始到期复习」入口、空态与「没有匹配的词条 + 清除搜索与筛选」。编辑沿用与阅读器相同的领域校验与排期规则:身份不可编辑、只有状态或等级变化才移动复习时间、历史作答记录与计数保留;筛选与页码写入 URL,刷新或返回列表都保留。原型编辑页的「来自某章节」不实现(词条按身份存储、不引用章节)。本次没有数据库结构变化。

仍未实现并留给后续工单:阅读完成与进度(#13)、桌面与手机体验补齐(#14)、自托管试用交付与完整恢复(#15)、书籍音频与封面附件(#21)、书库列表优化(#24)。CSV 导入导出(X04)、复杂复习范围筛选(X11)、删除词条或批量清理(X14)不在本轮范围。

#13 交付范围更新(2026-09-15)

F11 的完成阅读与基础进度已于 2026-09-15 通过用户验收:阅读页提供显式「标记本章已读」(只记已读、不批量改变词语状态),书籍页章节列表显示已读,新的进度页面显示已读章节(分母只含可阅读章节)、待复习、已知词、学习中、新词、忽略与已保存词条数,以及每本书的已读进度;重复标记不重复计数,待复习与到期复习队列共用同一规则与时钟。正文改成新版本后该章回到未读并可在重读后更新同一记录;删除章节时记录随之消失。本次新增 schema v7(一张新表),需要显式迁移。

仍未实现并留给后续工单:桌面与手机体验补齐(#14)、自托管试用交付与完整恢复(#15)、书籍音频与封面附件(#21)、书库列表优化(#24)。每日目标、日历、难度评分、统计导出明确不在范围内。另记录既有缺陷 #32(编辑章节正文回到曾用版本返回 500,已定位未修复,方案待用户确认)。

#14 交付范围更新(2026-09-15)

F12 的电脑与手机基础体验已于 2026-09-15 通过用户验收:新增「显示」设置(浅色/深色/跟随系统;正文标准/大/特大),偏好按账号保存在本机、账号切换不串、不跨设备同步;阅读位置按账号与章节保留,正文换新版本后不套用旧位置;复习页支持空格显示答案与 1/2/3 评分,输入框内不误触全局快捷键,焦点环可见;手机端以 390×844 触摸视口验证八个界面无横向溢出、均可返回、触摸滑动可滚动且不误开释义面板。本次无数据库与接口变化。

仍未实现并留给后续工单:自托管试用交付与完整恢复(#15)、书籍音频与封面附件(#21)、书库列表优化(#24),以及已定位未修复的缺陷 #32。PWA、离线能力、自定义配色、全局 UI 缩放与偏好跨设备同步明确不在范围内。真实手机的长按选择与操作手感仍需人工确认,本单的触摸证据来自模拟设备。

#15 交付状态更新(2026-09-15)

B04 与 F01–F12 的集成交付已实现,待用户验收:新部署与运维 Wiki 页(首次部署、配置与凭据来源、日常运维、健康检查、升级回滚、备份恢复、已知限制),运维工具 scripts/ops.py(install-check / init-database / backup / restore / verify / smoke)与 scripts/bench.py。本机完成完整演练:空库安装并由管理员建立两个虚构演练账号走通学习闭环;备份开发库后恢复到空实例,逐表行数与内容校验和一致、源库未被改动,两账号闭环与越权校验全通过。性能在 20 章/2000 词条/8000 条作答的人造数据集上实测(p50 6–23 ms,登录 82 ms,均无错误),只作观察不给承诺。

用户已确认的范围边界:本次只交付本机可复现的安装/备份/恢复材料并在本机演练,不对外部署、不创建发布标签、不邀请用户;生产入口与 HTTPS 只写入文档。真实回滚、定时备份、监控告警、多机部署与 HTTPS 仍未验证;附件(音频/封面,#21)尚未实现,因此恢复契约目前只覆盖数据库,待 #21 落地后由本单的恢复验收纳入附件。遗留缺陷 #32(编辑正文回到曾用版本返回 500)仍待确认修复方案。