Files
wx-win-agent/docs/validation/evidence/WebUI-MCP-single-client-2026-09-19/README.md
T
rogee c7c0ab273f
Build web service image / build (push) Successful in 1m9s
feat: validate single-client broadcast operations
2026-09-19 14:33:26 +08:00

41 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 单 Client 真实验证原始证据
本目录保存 2026-09-19 在已登录、未锁定的 Windows Session 1 上采集的原始 HTTP API 响应、请求 fixture、MCP UIA 证据摘录和校验清单。它补充 `../WebUI-MCP-single-client-2026-09-19.md`,不是用文档自述替代接口响应。
## 采集边界
- Windows UI MCP:`.mcp.json` 中的 `windows-ui`,`http://10.1.1.101:8765/mcp`。
- UI MCP 用于确认真实微信窗口、`MainView`、`session_list`、两个白名单 automation ID、`chat_message_list` 和验收标记;对应的可审计摘录见 `mcp-ui-evidence.json`。
- Agent HTTP API 在 Windows 测试服务的本地转发端口访问:`http://127.0.0.1:15088`,请求 Host 为 `localhost:5088`。这不是把 `/api/v1/*` 当作 MCP endpoint,而是记录 `.mcp.json` 连接的真实 Client 所运行服务的认证 API 响应。
- 每个 `*.http.txt` 是原始响应头,每个 `*.response.json` 是原始响应体;文件中没有 Bearer token。测试 token 只从本地/远端验证配置读取,未复制到仓库。
- 消息只读证据使用 `includeContent=false`,保留条数、fingerprint 和 summary 中的唯一测试标记,不保存完整聊天正文。
## 证据对应关系
| 文件 | 证明内容 |
| --- | --- |
| `status.*` | 服务在线、微信可用、Session 未锁定、账号绑定、微信版本 `4.1.13.65`、默认只读 |
| `capabilities.*` | `send-text`/`broadcast-text` 为 implemented、validated、enabled;群发要求确认;`group-at-all` disabled |
| `sessions-1..3.*` | 连续 3 次只读会话枚举均 HTTP 200,均含 `session_item_文件传输助手` 和 `session_item_吉祥三宝` |
| `broadcast.request.json` | 最终真实群发请求:两个 automation ID、显式确认、幂等键、`stopOnError=true` |
| `broadcast-submit.*` | 原始 POST 受理响应:HTTP 200、operation `463b37b2e0944525af4ded822dddaf8c`、`Queued`、冻结目标详情 |
| `broadcast-get.*` | 原始最终操作响应:operation `463b37b2e0944525af4ded822dddaf8c`、`Succeeded/complete`、两个逐项 `Succeeded` |
| `broadcast-replay.*` | 相同幂等请求的原始重放响应,返回相同 operation ID 和结果 |
| `confirmation-gate.*` | `confirmed=false` 的真实 `broadcast-text` 请求返回 HTTP 409 `ConfirmationRequired`,`retry=false` |
| `send-confirmation-gate.*` | `confirmed=false` 的真实 `send-text` 请求返回 HTTP 409 `ConfirmationRequired`,`retry=false` |
| `messages-filehelper.*`, `messages-jixiang.*` | 两个目标的原始只读消息响应;summary 含本次唯一标记、content 为 null |
| `readback-summary.json` | 从上述 raw 只读响应计算的脱敏回读结论 |
| `mcp-ui-evidence.json` | UI MCP 实时窗口/UIA 树中真实微信、白名单会话、消息列表和标记的证据摘录 |
## 关键断言
- 最终 operation:`463b37b2e0944525af4ded822dddaf8c`,Correlation ID:`33d6e14673834c64b5d470a07687c760`。
- 最终详情的冻结顺序为文件传输助手、吉祥三宝;两项均 `Succeeded`,`stopped=false`,无错误码。
- 相同幂等键 `wxagent-single-20260919-broadcast-final-001` 的重放仍返回该 operation ID,不创建第二次操作。
- 失败停止流程的早期原始记录仍在主验收文档中,避免只保留成功路径;最终验收使用了新的显式幂等键。
- `group-at-all`、添加好友、多 Client/跨 Client 恢复不属于本轮证据。
## 复核方式
在已授权的验证机上设置临时 shell 变量 `TOKEN` 后,可按 `*.http.txt` 中的 Host 和路径重放 GET;不得把 token 写入文件或日志。POST 请求只能使用目录中的 confirmation-gate fixture(应返回 409)或最终 broadcast fixture(相同幂等键应返回相同操作),不得绕过确认门禁或使用真实非白名单对象。