### 现象 - 触发条件:Windows 上选中文字后,触发划词追问或划词编辑(以及依赖模拟 Ctrl+C 的选区润色)。尤其容易出现在 Chrome / Chromium 内核应用,且系统开启了剪贴板历史。 - 当前表现:即使用户已经选中文本,OpenLess 仍判定为无选区(`selectionVoiceNoSelection` / `selectionPolishNoSelection`)。划词提问面板与划词编辑无法进入正常流程。 - 证据:选区抓取会先往系统剪贴板写入 sentinel,再模拟 Ctrl+C 读取选区,随后恢复原剪贴板。Windows 剪贴板历史的异步监听会在 sentinel 写入后仍占用剪贴板,目标应用的 Ctrl+C 因此静默失败,sentinel 校验把这次抓取当成「剪贴板未变化 / 无选区」。 ### 影响 - 划词追问、划词编辑在 Windows 上不可用或极不稳定。 - 用户只能看到无选区提示,无法从导出日志区分「真的没选区」和「模拟复制被剪贴板恢复/历史抢锁」。 - 无选区失败时胶囊会停在 Error,不会按听写口径自动收回。 ### 建议接受标准 - [ ] Windows:在记事本 / Chrome 中选中一段文字,划词追问能抓到选区并打开提问面板。 - [ ] Windows:选中文字后划词编辑能进入语音编辑 / QA 预览,而不是立刻报无选区。 - [ ] 开启系统剪贴板历史时,上述两条仍然成立。 - [ ] 导出的 `openless.log` 能看到选区捕获原因(例如 `clipboard_unchanged_sentinel` / 成功 capturereason),而不是只有笼统的 no-selection。 - [ ] 无选区 begin 失败时,胶囊约 2 秒后自动收回。 - [ ] 不改动上游版本号和 release workflow。 ### TODO / 不确定项 - 尚未在每一种启用剪贴板历史的 Windows 版本上完整回归;优先验证 Chrome 与普通 Win32 文本框。 - macOS AX 直读路径不走这条 sentinel;本次修复范围是 Windows 模拟复制 fallback。
现象
selectionVoiceNoSelection/selectionPolishNoSelection)。划词提问面板与划词编辑无法进入正常流程。影响
建议接受标准
openless.log能看到选区捕获原因(例如clipboard_unchanged_sentinel/ 成功 capturereason),而不是只有笼统的 no-selection。TODO / 不确定项