docs: 收口阶段 1 输入系统实现与验证记录

This commit is contained in:
Codex
2026-10-07 20:46:20 +08:00
parent c23b32bb40
commit 81341fab2c
3 changed files with 168 additions and 15 deletions
+26
View File
@@ -112,6 +112,32 @@ $msbuild = 'D:\vs2022\MSBuild\Current\Bin\MSBuild.exe'
- 自动复验:2026-09-30 使用 Windows PowerShell 5.1 执行 `NonUI`,四种配置均为 15/15 通过,KEY1 至 KEY6 编译链接成功。
- 说明:该结论代表本轮人工回归通过,不等同于对所有运行环境和未覆盖路径作无缺陷保证。
### 阶段 1 输入地基人工回归(2026-10-07,已完成)
本轮阶段 1 保留旧 `EX_KEY` 业务旁路,人工目标是确认“采集与观察队列接入后,现有交互和真实 IME 行为没有改变”。自动测试不能替代以下操作:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\run-input-probe-manual.ps1 -ImeName MicrosoftPinyin
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\run-input-probe-manual.ps1 -ImeName Sogou
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\run-key.ps1
```
- 微软拼音与搜狗分别完成固定非敏感测试串的候选、提交、重复字符、Escape 取消、数字选词和输入布局切换;候选 UI、输入响应和关闭流程不得卡顿或重复提交。
- 输入探测摘要必须 `sequenceStrict=True`、`textRawWParamLeaks=0`、结果/回声关系符合对应 IME 实际行为,并正常观察到关闭;探测器显式记账的诊断丢失不应被隐藏。
- KEY1–6 按上表执行;重点确认一次按键/点击只触发一次,阶段 1 兼容旁路没有造成双触发。
- 完成后,`Module-20261007-0005` 才可记为“自动与人工兼容性回归通过”。
#### 2026-10-07 执行结果
- 用户按固定清单分别完成微软拼音与搜狗真实输入,并完成 KEY1–6 人工交互;当前快照未发现卡顿、重复提交、双触发或既有控件行为退化。
- 微软拼音有效证据位于 `TestResults/InputProbe/manual-20261007-192828-293-MicrosoftPinyin`:`sequenceStrict=True`、`recordsLost=0`、`textRawWParamLeaks=0`,3 次正式结果均形成 `WM_IME_CHAR:matched`,关闭与 `session_end` 完整。
- 搜狗有效证据位于 `TestResults/InputProbe/manual-20261007-193100-289-Sogou`:`sequenceStrict=True`、`recordsLost=0`、`textRawWParamLeaks=0`,3 次正式结果均形成 `WM_IME_CHAR:matched`,关闭与 `session_end` 完整。搜狗本轮只出现 3 组标准生命周期,再次证明生命周期不能替代原始 `VK_PROCESSKEY` 的单键归属快照。
- 两轮均未观察到 `WM_INPUTLANGCHANGE`;这与当前系统同一 HKL 下切换 TSF 输入配置文件的既有证据一致,不把“用户执行过切换”和“窗口收到 HKL 变化消息”混写成同一结论。
- 微软拼音候选框在无文本焦点叶子、无 caret 锚点的输入探测夹具中落到系统回退位置。阶段 1 不实现 FocusManager、TextBox 或 `ImmSetCandidateWindow`,因此该现象作为后续集成边界保留,不把本轮采集通过误写成候选框定位通过;定位能力仍以阶段 0C 证据为准。
- 人工回归发现 KEY5/KEY6 曾把 Tooltip 延时覆盖为 `120 ms`,不是框架默认计时错误;现已移除覆盖,使人工用例使用 Button 默认 `1000 ms`。自动化 Tooltip fixture 继续使用独立的 `200 ms` 测试延时。
- KEY2 是 KEY1–6 中唯一启用文件日志的场景;轮转阈值由 `1024` 字节调整为 `10 * 1024 * 1024` 字节(10 MiB)。轮转在完整日志行写完后检查,单文件允许最多超出最后一行的长度。
- 调整后执行正式 `NonUI`:Debug x64、x64 ASan、Release x64、Debug Win32 均为 27/27,KEY1–6 全部重新编译链接成功。
### 失败留证
- 记录 KEY 编号、窗口尺寸、操作顺序和实际现象。