Skip to content

feat(windows): 增加确认式手改学习与隐私门控 - #1047

Closed
chenleshu wants to merge 1 commit into
Open-Less:mainfrom
chenleshu:feat/windows-confirmed-edit-learning
Closed

feat(windows): 增加确认式手改学习与隐私门控#1047
chenleshu wants to merge 1 commit into
Open-Less:mainfrom
chenleshu:feat/windows-confirmed-edit-learning

Conversation

@chenleshu

Copy link
Copy Markdown

摘要

为 Windows 增加实验性的“听写后发现手改 → 用户确认 → 保存纠正规则”流程,复用现有建议卡片和规则存储。没有关联 issue。

当前补丁基于 v1.3.18-tauri,目标为稳定主线 main;提交前已确认 main 相对该基线仅有 Cask 更新。默认开发分支 beta 已重构 coordinator/core,尚未将本补丁移植到 beta。如果维护者要求功能先进入 beta,可据此评审并讨论移植,不将稳定版验证冒充 beta 验证。

修复 / 新增 / 改进

  • Windows UI Automation 观察器:专属 COM MTA 线程,250 ms 轮询、1.2 秒稳定窗口、最长 60 秒,仅观察原窗口和原焦点控件。
  • 有界、唯一定位的听写区域差异检测;拒绝不明确匹配、超长字段、纯追加和整句重写。
  • 复用默认关闭的隐私开关;确认后才持久化,拒绝不保存。保存错误显示在卡片,成功后刷新词汇表。
  • 明确确认的规则适用于已有 raw 听写纠正链路,支持停用/删除;拒绝单字来源、通配符、冲突和已知连锁替换。
  • 每次读取前检查 UIA 密码标记、焦点、进程和控件状态,排除已知密码管理器、终端及内嵌终端编辑器。
  • 不上传 UIA 字段内容、不记录源/目标文本日志;补充五种界面语言文案。
  • 新增 docs/windows-edit-learning.md,记录实现、限制、验证证据和人工验收清单。

兼容

  • 不包含:ASR 模型切换/训练、原生热词功能、模型权重、用户录音、个人词库、凭据、本机启动脚本、二进制程序。
  • macOS 保持原词汇表学习行为。Windows 保存的是用户明确确认的固定替换,不宣称可覆盖同一词的所有识别错误。
  • 不改变现有用户开关值,不引入新的运行时服务或第三方依赖包;仅启用现有 windows crate 的 UI Accessibility feature。
  • 不支持 TextPattern、不同进程内嵌控件等情况保守跳过;UIA 属性和排除列表并非对所有敏感控件的绝对安全保证。

测试计划

  • 提交前 git diff --cached --check 通过。
  • 提交前 npm run build 通过。
  • 本地先前完成 cargo check --locked --lib 和 Windows release 构建,修改后的应用启动成功。
  • 提交前复跑上述代码已经编译的 release 测试二进制:host_document 77 项、persistence::correction 4 项、edit_watch 4 项、raw 纠正规则 1 项,合计 86 项通过。此次是复跑,不是重新编译 Rust 测试。
  • 实际输入框“听写 → 手改 → 卡片确认 → 下次听写自动应用”完整端到端人工验收(尚未完成)。
  • macOS/Linux 构建验证(本次为 Windows 环境,未执行)。
  • 证据与复现命令:仓库 docs/windows-edit-learning.md。未上传用户录音或私人日志。

请重点评审 Windows UIA 安全边界、固定替换的产品语义,以及是否需要先移植到 beta。请求维护者评审决定是否合并,不自动执行合并。

@H-Chris233

Copy link
Copy Markdown
Collaborator

所有功能必须先合入beta,Beta是默认分支

@H-Chris233 H-Chris233 closed this Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants