#11 选择连续短语,保存并加入到期复习 #30

Merged
ila merged 3 commits from feat/11-phrases into main 2026-09-14 22:59:04 +08:00
Owner

#11 实现完成,待用户验收。契约见评论 7893,实施、测试与真实链路见工单最新评论。

  • 短语与单词共用 lexgo_terms:身份键为按序规范化词形以空格连接,kind 与词数由身份键派生(不改 schema)
  • POST /api/v1/phrases 由服务端推导身份;章节 tokens 增加 phrases 区间;队列项增加 kind/wordCount
  • 跨章节匹配取最左最长,短语高亮覆盖内部单词但不改单词数据;复习卡整段挖空
  • 学习端新增原生拖选/手机手柄选择、端点按词调整与 Shift 点击扩展

本地验证:Go 集成测试(lexgo_test_issue9,64 项)、学习端 106 单测与 11 项 E2E、管理端 31 单测、治理 56 测试全部通过;真实 API+MySQL 30 项检查与真实浏览器闭环通过。已知限制:Playwright 合成拖拽在真实页面不扩展选区,真实链路改用真实点击 + Shift 点击,连续拖选由 mock E2E 覆盖。

#11 实现完成,待用户验收。契约见评论 7893,实施、测试与真实链路见工单最新评论。 - 短语与单词共用 lexgo_terms:身份键为按序规范化词形以空格连接,kind 与词数由身份键派生(不改 schema) - POST /api/v1/phrases 由服务端推导身份;章节 tokens 增加 phrases 区间;队列项增加 kind/wordCount - 跨章节匹配取最左最长,短语高亮覆盖内部单词但不改单词数据;复习卡整段挖空 - 学习端新增原生拖选/手机手柄选择、端点按词调整与 Shift 点击扩展 本地验证:Go 集成测试(lexgo_test_issue9,64 项)、学习端 106 单测与 11 项 E2E、管理端 31 单测、治理 56 测试全部通过;真实 API+MySQL 30 项检查与真实浏览器闭环通过。已知限制:Playwright 合成拖拽在真实页面不扩展选区,真实链路改用真实点击 + Shift 点击,连续拖选由 mock E2E 覆盖。
ila added 1 commit 2026-09-14 22:22:31 +08:00
- 短语与单词共用 lexgo_terms:身份键为按序规范化词形以空格连接,单词键不含空格,
  因此 kind 与词数由身份键派生,不需要新列或第二套复习逻辑
- POST /api/v1/phrases 由服务端从本人 ready 章节推导词序列与身份,切进单词的范围 400;
  章节 tokens 增加 phrases 区间,队列项增加 kind/wordCount
- 跨章节匹配按连续词形比对,重叠取最左最长;短语高亮覆盖内部单词但不修改单词数据
- 学习端新增 readerRange 纯函数层与 useTextSelection(原生拖选 + 手机手柄,不拦截
  touchmove),面板提供短语标题与按词调整端点的按钮,复习卡把整段短语挖成一个空
- Wiki 记录 Architecture、Business-Rules、Local-Development 与需求更新
ila added 1 commit 2026-09-14 22:23:17 +08:00
ila added 1 commit 2026-09-14 22:47:19 +08:00
- adjustRange 改变范围时同时清空短语链接与已加载条目:调整端点后不再声称「已保存」,
  已输入文本保留,保存按当前范围确定的身份写入(可能更新另一条,但绝不重复)
- 新增 TestWordKeysNeverContainSpaces:显式锁定「词片段不含空白」这一不变量,
  termKind/termWordCount 完全依赖它,此前只有间接覆盖
- e2e 断言超时提高到 15s:11 个用例共用开发服务器并行运行时,首屏模块加载可能超过
  默认 5s 造成偶发失败(产品行为未变,连续两次并行全量运行均通过)
ila merged commit a658fa6fd1 into main 2026-09-14 22:59:04 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/lexgo#30