MVP 技术验证:桌面划词与手机短语范围选择 #4

Closed
opened 2026-09-10 17:09:01 +08:00 by ila · 3 comments
Owner

来源与目标

2026-09-10 用户确认 F01–F12、原型通过,并要求按四阶段建议推进。原型验收:#1 评论 7498。阶段 2;覆盖 F05、F08、F12 技术验证。

在可运行阅读小样中验证点词、连续范围选择、调整、取消以及关闭查词后继续阅读,并对照 LinguaCafe 可查证行为。

验收标准

  • 记录 LinguaCafe 参考版本和实际观察/源码来源,区分借鉴与推断;覆盖阅读器、查词面板、短语和复习的差异清单,继承 #1 评论 7497 未完成项。
  • 桌面鼠标及键盘可选择、调整、取消;手机长按/触摸操作与页面滚动不冲突,至少记录一个真实手机浏览器结果;无法真机验证时明确未通过该项。
  • 正文内选中反馈对应准确字符范围;处理跨行、标点、重复短语与 Unicode;关闭面板后阅读位置保持。
  • 给出范围/重叠匹配建议和测试样例;与已验收主要流程有实质差异时先更新关键原型状态供用户确认。

依赖与执行

前置:#2。状态:已完成(用户验收通过,真机测试证据缺口保留)。前置尚未通过时不得标进行中;每单完成停在待验收,由用户验收后关闭。技术验证可与不依赖其结论的工作分工,但不提前冻结未验证契约。

参考模块与设计证据

学习端定制组件;go-admin 表格表单不作为阅读器模板。

复用 v1;连续选择以运行小样验证,只对发生实质变化的状态补 Quant-UX 原型。

后端不为建表/API 单独画页面原型;先写数据、接口、状态、隔离与幂等契约。学习端采用 #1 已验收 v1,未做的 LinguaCafe 对照不标完成。

工作量、范围与风险

预计 3~5 人日(8 小时/人日),包含本单设计、前后端实现、相关测试、修正和文档;是规划估算,不是交付日期或 AI 运行时间。仅 F 范围,X 系列不纳入。数据变更先在隔离测试库验证迁移/回退,保留既有数据和原型。

文档与证据

实施时按影响更新 Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification;需求变化更新 Product-Requirements-Overview,交付单补实际部署恢复文档。Wiki 先写再回读同步;结束评论记录测试、未验证内容、提交及 revision。工单正文保留基线,重要变化追加评论。

Gitea MCP 指向其他站点,沿用目标 git.ilapage.cn API 回退;凭据仅进入进程。

## 来源与目标 2026-09-10 用户确认 F01–F12、原型通过,并要求按四阶段建议推进。原型验收:#1 评论 7498。阶段 2;覆盖 F05、F08、F12 技术验证。 在可运行阅读小样中验证点词、连续范围选择、调整、取消以及关闭查词后继续阅读,并对照 LinguaCafe 可查证行为。 ## 验收标准 - [x] 记录 LinguaCafe 参考版本和实际观察/源码来源,区分借鉴与推断;覆盖阅读器、查词面板、短语和复习的差异清单,继承 #1 评论 7497 未完成项。 - [ ] 桌面鼠标及键盘可选择、调整、取消;手机长按/触摸操作与页面滚动不冲突,至少记录一个真实手机浏览器结果;无法真机验证时明确未通过该项。 - [x] 正文内选中反馈对应准确字符范围;处理跨行、标点、重复短语与 Unicode;关闭面板后阅读位置保持。 - [x] 给出范围/重叠匹配建议和测试样例;与已验收主要流程有实质差异时先更新关键原型状态供用户确认。 ## 依赖与执行 前置:#2。状态:已完成(用户验收通过,真机测试证据缺口保留)。前置尚未通过时不得标进行中;每单完成停在待验收,由用户验收后关闭。技术验证可与不依赖其结论的工作分工,但不提前冻结未验证契约。 ## 参考模块与设计证据 学习端定制组件;go-admin 表格表单不作为阅读器模板。 复用 v1;连续选择以运行小样验证,只对发生实质变化的状态补 Quant-UX 原型。 后端不为建表/API 单独画页面原型;先写数据、接口、状态、隔离与幂等契约。学习端采用 #1 已验收 v1,未做的 LinguaCafe 对照不标完成。 ## 工作量、范围与风险 预计 3~5 人日(8 小时/人日),包含本单设计、前后端实现、相关测试、修正和文档;是规划估算,不是交付日期或 AI 运行时间。仅 F 范围,X 系列不纳入。数据变更先在隔离测试库验证迁移/回退,保留既有数据和原型。 ## 文档与证据 实施时按影响更新 Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification;需求变化更新 Product-Requirements-Overview,交付单补实际部署恢复文档。Wiki 先写再回读同步;结束评论记录测试、未验证内容、提交及 revision。工单正文保留基线,重要变化追加评论。 Gitea MCP 指向其他站点,沿用目标 git.ilapage.cn API 回退;凭据仅进入进程。
Author
Owner

用户在当前会话指示“还是由你来做#4工单”。前置 #2 已验收,#3 也已验收。分支 feat/4-reading-selection-spike 基于已验收 #3 分支;已有 PR 不自动合并。

实施计划:

  1. 核对 #1 评论 7497/7498 与已验收 Quant-UX v1,按固定 LinguaCafe commit c1ea298ce40c65b9dd33e9b26fd2e52fae66f2c8 查阅读器、查词、短语、复习源码;记录来源/采用方式/差异与推断,不伪称已运行上游 UI。
  2. 在 spikes/selection 建立独立阅读小样,虚构章节与内存状态;正文点词、浏览器原生连续选择、键盘范围调整、取消、个人释义模拟保存及关闭继续阅读。固定原文半开区间与重复/重叠匹配建议,自动测试 Unicode、跨行和标点。
  3. 桌面面板使用固定预留侧栏,手机底部面板保留可滚动正文;不阻止原生长按/触摸滚动,不替代浏览器选择手柄。新增范围调整操作是把原型预设短语模拟落实为真实正文选择,不扩大正式产品范围;若发现主要流程实质变化,先更新关键 Quant-UX 状态再请求确认。
  4. 浏览器验证鼠标/键盘、选中范围、取消/面板关闭与阅读位置。真实手机验证已向用户询问可用性,未取得实际结果前明确标为未通过,不用桌面窄屏代替真机。
  5. 更新架构、业务规则、本地验证 Wiki 和四项差异证据,回读同步镜像;必要测试后提交推送、回写证据,停待验收。#21 不实施。

边界:无生产数据、MySQL、账号接口或正式复习调度;释义与保存仅虚构内存样例。关闭小样进程即可回退。使用既有目标 Gitea API 回退,因为 MCP 指向其他站点。

用户在当前会话指示“还是由你来做#4工单”。前置 #2 已验收,#3 也已验收。分支 feat/4-reading-selection-spike 基于已验收 #3 分支;已有 PR 不自动合并。 实施计划: 1. 核对 #1 评论 7497/7498 与已验收 Quant-UX v1,按固定 LinguaCafe commit c1ea298ce40c65b9dd33e9b26fd2e52fae66f2c8 查阅读器、查词、短语、复习源码;记录来源/采用方式/差异与推断,不伪称已运行上游 UI。 2. 在 spikes/selection 建立独立阅读小样,虚构章节与内存状态;正文点词、浏览器原生连续选择、键盘范围调整、取消、个人释义模拟保存及关闭继续阅读。固定原文半开区间与重复/重叠匹配建议,自动测试 Unicode、跨行和标点。 3. 桌面面板使用固定预留侧栏,手机底部面板保留可滚动正文;不阻止原生长按/触摸滚动,不替代浏览器选择手柄。新增范围调整操作是把原型预设短语模拟落实为真实正文选择,不扩大正式产品范围;若发现主要流程实质变化,先更新关键 Quant-UX 状态再请求确认。 4. 浏览器验证鼠标/键盘、选中范围、取消/面板关闭与阅读位置。真实手机验证已向用户询问可用性,未取得实际结果前明确标为未通过,不用桌面窄屏代替真机。 5. 更新架构、业务规则、本地验证 Wiki 和四项差异证据,回读同步镜像;必要测试后提交推送、回写证据,停待验收。#21 不实施。 边界:无生产数据、MySQL、账号接口或正式复习调度;释义与保存仅虚构内存样例。关闭小样进程即可回退。使用既有目标 Gitea API 回退,因为 MCP 指向其他站点。
Author
Owner

#4 小样与桌面验证交付,待验收

真机项未通过:未取得实际手机浏览器结果。不得据本次桌面或窄屏测试将该项勾选。

提交:8d4a095590cb3dbd3f226d2a16dacdb1a902242c
PR:#22
入口:http://127.0.0.1:5184/,命令 python spikes/selection/serve.py。

实现:spikes/selection 独立小样,两章虚构英文;原生 DOM Selection、完整词元端点、UTF16/cp/UTF8 范围;键盘与端点按钮扩缩,Esc/关闭取消且不自动保存。模拟释义与状态只在当前页面内存生效。重复短语按位置区分,重叠保留候选、显示时左侧优先同起点长范围优先;Intl.Segmenter 仅验证 UI,不替代 #3 NLP。

验证与修正:

  • node --test spikes/selection/range.test.mjs spikes/selection/ui.test.mjs:11/11 通过。DOM 测试复用 learner 锁定 jsdom;node --check spikes/selection/app.mjs 通过。
  • 关闭丢失键盘位置、纯标点选区残留旧面板两项问题已修正;旧行为回退时 2 项测试实际失败,修正后通过。独立规格/质量复审没有未解决代码发现。
  • Chrome 实际鼠标拖选 Mira opened the workshop,原生选区与高亮一致;终点按钮扩展至 before;Shift+方向键连续选择、关闭后续读下一词正常。
  • 模拟保存反馈与资源不可用仍可手填已实测。正文通过 textContent 构造,原文重建检查通过。
  • 章节中段直接坐标点击关闭,scrollY 前后同为 909.5999755859375。locator.click 在点击事件前自身会预滚动,已用直接点击和页面事件记录区分;没有把工具预滚动当作产品缺陷。
  • 桌面约390×844 CSS像素布局无横向溢出,键盘所选词底部464.4、面板顶部489.5,未被遮挡;已恢复视口。这不证明 iOS/Android 触摸可用。
  • 静态服务首页/脚本200,目录外路径及非白名单README404;默认loopback,无访问日志/写入接口/私人数据。没有创建supervisor实例或改防火墙。

参考和原型:

  • LinguaCafe 固定 commit c1ea298ce40c65b9dd33e9b26fd2e52fae66f2c8,仅源码核对,未运行上游 UI。四项行为/来源/差异表在架构 Wiki;GPLv3 源码未复制。
  • Quant-UX 原生模型已在线回读:桌面SHA256 7dd4be034c426da81881e2a33f5b04614069b62bf884d1c597682c3ad890033a,手机40f587274bdaec5f7e41d9b7832df6b6d777eafd54eff526721cced0cd5ec2b4,与 #1 验收v1一致。
  • 显式保存/关闭、词典与个人释义、复习显答/评分的已验收主流程保留;把预设短语按钮落实为原生选区和调整是本单明确范围,未修改Quant-UX或虚称新原型修订完成。若真机验证要求改变主要流程,先修订关键状态供用户确认。

未验证与交接:真实手机设备/系统/浏览器版本、长按/选择手柄、普通滚动、靠近面板的系统菜单与选区、虚拟键盘需按 spikes/selection/README.md 清单回填结果;必要时明确开启局域网监听供同网手机测试,当前仍只提供本机入口。生产Go调用、账户归属、持久保存、SRS、#21音频封面均未实施。

文档:架构、业务规则、本地验证与首页已更新并回读;20页 Wiki sync --verify 通过。核心镜像和入口说明包含于提交;需求范围、估算不变,#4 不关闭,#5/#21 未启动。沿用目标Gitea API回退,MCP指向其他站点。

  • Home @ 298bfb5187efa8610bca2b2e095d2aad577daa9a
  • Architecture-and-Code-Map @ 5bc7ccf33d1cc1cc28598c90e27a2ab6af4146bd
  • Business-Rules-and-Glossary @ 227c6cb92d30490f0f1f4b1b9f29cdbed8559ee4
  • Local-Development-and-Verification @ 200463a9caff5ed2ebb560b15c0aef4fb8b11b15
## #4 小样与桌面验证交付,待验收 **真机项未通过:未取得实际手机浏览器结果。不得据本次桌面或窄屏测试将该项勾选。** 提交:8d4a095590cb3dbd3f226d2a16dacdb1a902242c PR:https://git.ilapage.cn/OPC/lexgo/pulls/22 入口:http://127.0.0.1:5184/,命令 `python spikes/selection/serve.py`。 实现:spikes/selection 独立小样,两章虚构英文;原生 DOM Selection、完整词元端点、UTF16/cp/UTF8 范围;键盘与端点按钮扩缩,Esc/关闭取消且不自动保存。模拟释义与状态只在当前页面内存生效。重复短语按位置区分,重叠保留候选、显示时左侧优先同起点长范围优先;Intl.Segmenter 仅验证 UI,不替代 #3 NLP。 验证与修正: - `node --test spikes/selection/range.test.mjs spikes/selection/ui.test.mjs`:11/11 通过。DOM 测试复用 learner 锁定 jsdom;`node --check spikes/selection/app.mjs` 通过。 - 关闭丢失键盘位置、纯标点选区残留旧面板两项问题已修正;旧行为回退时 2 项测试实际失败,修正后通过。独立规格/质量复审没有未解决代码发现。 - Chrome 实际鼠标拖选 `Mira opened the workshop`,原生选区与高亮一致;终点按钮扩展至 before;Shift+方向键连续选择、关闭后续读下一词正常。 - 模拟保存反馈与资源不可用仍可手填已实测。正文通过 textContent 构造,原文重建检查通过。 - 章节中段直接坐标点击关闭,scrollY 前后同为 909.5999755859375。locator.click 在点击事件前自身会预滚动,已用直接点击和页面事件记录区分;没有把工具预滚动当作产品缺陷。 - 桌面约390×844 CSS像素布局无横向溢出,键盘所选词底部464.4、面板顶部489.5,未被遮挡;已恢复视口。这不证明 iOS/Android 触摸可用。 - 静态服务首页/脚本200,目录外路径及非白名单README404;默认loopback,无访问日志/写入接口/私人数据。没有创建supervisor实例或改防火墙。 参考和原型: - LinguaCafe 固定 commit c1ea298ce40c65b9dd33e9b26fd2e52fae66f2c8,仅源码核对,未运行上游 UI。四项行为/来源/差异表在架构 Wiki;GPLv3 源码未复制。 - Quant-UX 原生模型已在线回读:桌面SHA256 7dd4be034c426da81881e2a33f5b04614069b62bf884d1c597682c3ad890033a,手机40f587274bdaec5f7e41d9b7832df6b6d777eafd54eff526721cced0cd5ec2b4,与 #1 验收v1一致。 - 显式保存/关闭、词典与个人释义、复习显答/评分的已验收主流程保留;把预设短语按钮落实为原生选区和调整是本单明确范围,未修改Quant-UX或虚称新原型修订完成。若真机验证要求改变主要流程,先修订关键状态供用户确认。 未验证与交接:真实手机设备/系统/浏览器版本、长按/选择手柄、普通滚动、靠近面板的系统菜单与选区、虚拟键盘需按 spikes/selection/README.md 清单回填结果;必要时明确开启局域网监听供同网手机测试,当前仍只提供本机入口。生产Go调用、账户归属、持久保存、SRS、#21音频封面均未实施。 文档:架构、业务规则、本地验证与首页已更新并回读;20页 Wiki sync --verify 通过。核心镜像和入口说明包含于提交;需求范围、估算不变,#4 不关闭,#5/#21 未启动。沿用目标Gitea API回退,MCP指向其他站点。 - Home @ 298bfb5187efa8610bca2b2e095d2aad577daa9a - Architecture-and-Code-Map @ 5bc7ccf33d1cc1cc28598c90e27a2ab6af4146bd - Business-Rules-and-Glossary @ 227c6cb92d30490f0f1f4b1b9f29cdbed8559ee4 - Local-Development-and-Verification @ 200463a9caff5ed2ebb560b15c0aef4fb8b11b15
Author
Owner

2026-09-10T22:51:52+08:00 用户在当前会话明确确认“#4通过验收”。据此记录用户验收通过并关闭 #4,同步 #16。实现/验证证据见评论 7631,提交 8d4a095590cb3dbd3f226d2a16dacdb1a902242c。

事实边界:用户确认未提供具体手机设备、浏览器及操作记录;不据此编造真机测试结果,原真机证据缺口保留,相关验收子项不改记为测试通过。后续正式移动端集成仍须补真机回归。此次仅验收留痕,未重跑功能测试。PR #22 尚未合并;Gitea MCP 指向其他站点,沿用目标 API。

2026-09-10T22:51:52+08:00 用户在当前会话明确确认“#4通过验收”。据此记录用户验收通过并关闭 #4,同步 #16。实现/验证证据见评论 7631,提交 8d4a095590cb3dbd3f226d2a16dacdb1a902242c。 事实边界:用户确认未提供具体手机设备、浏览器及操作记录;不据此编造真机测试结果,原真机证据缺口保留,相关验收子项不改记为测试通过。后续正式移动端集成仍须补真机回归。此次仅验收留痕,未重跑功能测试。PR #22 尚未合并;Gitea MCP 指向其他站点,沿用目标 API。
ila closed this issue 2026-09-10 22:51:53 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/lexgo#4