Files
wx-win-agent/docs/validation/WebUI-MCP-2026-09-07.md
T

58 lines
4.5 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.
# WebUI/MCP 验收记录(2026-09-07)
## 环境
- Windows:`DESKTOP-EGI7QCK` / Windows 用户 `rogee`
- 微信版本:`4.1.13.63`
- 发布方式:Linux .NET 8 self-contained `win-x64` single-file,部署目录 `C:\Users\Rogee\wx-agent`
- 服务进程:曾在交互式用户会话启动(非 Session 0);最终验证配置恢复默认回环 `127.0.0.1:5088`,发布完成后保持停止
- MCP SDK:`ModelContextProtocol.AspNetCore 2.2.0`
## 已验证
| 能力 | 入口 | 结果 |
| --- | --- | --- |
| 服务/微信诊断 | `GET /api/v1/status` | HTTP 200;`serviceOnline=true`、`wechatAvailable=true`、`sessionAvailable=true`、`windowFound=true`,错误为空 |
| 会话列表 | `GET /api/v1/sessions?accountId=...` | HTTP 200;返回可见会话,含 automationId;未携带 accountId 拒绝执行 |
| 会话当前/精确搜索 | `/api/v1/sessions/current?accountId=...`、`/search?accountId=...&exactOnly=true` | 需要显式绑定账号;当前锁屏环境不作为真机成功证据 |
| 账号发现/窗口目标 | `GET /api/v1/accounts`、`GET /api/v1/ui-targets` | HTTP 200;返回数据库指纹、绑定状态和当前窗口目标 |
| 显式账号绑定 | `POST /api/v1/accounts/bind` | 已实现身份匹配、PID+HWND 持久化和冲突拒绝;锁屏环境未执行成功绑定 |
| 联系人只读 | `GET /api/v1/contacts?accountId=...` | 需要显式账号;返回稳定联系人 ID;未输出密钥 |
| 群成员只读 | `GET /api/v1/groups/{accountId}/{group}/members` | HTTP 200;显式账号范围与测试群 `消息测试专用群组`,返回稳定成员 ID |
| SSE 单帧 | `GET /api/v1/events` | HTTP 200;真实 `id/event/data` 帧,正文不进入事件;默认仍需显式 opt-in |
| 可见消息摘要 | `GET /api/v1/messages?accountId=...` | 需要显式绑定账号;返回 fingerprint/type/summary,正文为 null |
| MCP | `/mcp` initialize、`tools/list` | HTTP 200;同一 Bearer Token;工具 schema 可加载 |
| Web 静态入口 | `/` | HTTP 200;静态资源随发布包部署 |
## 安全/失败路径
- 回环本机无 Bearer Token:允许直接访问;远程无 Bearer Token:401。
- Host/Origin 不再作为认证条件;远程仍必须通过 Bearer Token,URL 查询中的 token 仍拒绝。
- URL 查询中出现 token 参数:400,拒绝凭据泄漏路径。
- 旧 Token 轮换后:旧 Bearer 与浏览器 Cookie 均 401;身份与幂等记录保留。
- 写能力:保持 disabled;当前服务不模拟成功、不执行微信写入。
- SSH 端口转发初次测试需要显式覆盖 Host 头;未将转发场景误判为外部网络验收。
- `0.0.0.0` 外部监听配置已验证可加载并明确要求 `AllowExternal=true`;当前 Windows 防火墙未开放入站端口,因此未声称外部网络连通验收通过。
## 自动化证据
- `dotnet test tests/node-agent/WxAgent.Core.Tests -c Release`:153 passed。
- `dotnet test tests/node-agent/WxAgent.Service.Tests -c Release`:12 passed。
- `dotnet build WxAgent.sln -c Release -p:EnableWindowsTargeting=true`:成功,0 warning/0 error。
- self-contained `win-x64` publish:成功,包含 `wwwroot` 与 MCP 依赖。
## 本轮多账号绑定验证
- 使用 `tscon 1 /dest:console` 将 Rogee 会话重新接入 console 后,WeChat/UIA 可用;未发送消息。
- `/api/v1/ui-targets` 成功读取 `i-Rogee` / `Rogee`,并通过临时 manage 权限完成 PID 8912、HWND 590928 绑定;随后已恢复原始只读凭据。
- `/api/v1/accounts` 返回 `Bound`,带 accountId 的 sessions 返回 HTTP 200;缺少 accountId 的 sessions/contacts/messages 仍返回 HTTP 400 `AccountIdRequired`。
- 已配置 AC/DC 不息屏、不睡眠、不休眠、屏保关闭,并设置 `NoLockScreen=1`;配置仅禁止自动锁屏,不阻止用户手动锁定。
## 未完成/不宣称
- 未执行发送、联系人/群管理、朋友圈、语音等写操作;`send-text`、`group-at-all` 和 deferred 项保持禁用。
- 未完成第二个账号/第二个窗口隔离、60 分钟/20 条消息监听、断线补齐和多客户端慢消费者真机验收;SSE 与服务端监听源已实现,内部监听事件开关默认关闭,不作为用户配置项。自动化高频探针已中止,不作为验收证据;后续真机消息验证上限 3 条。
- 未完成外部主机直接访问验收(防火墙未开放);不将 HTTP 鉴权描述为网络加密。
- 远程验证任务已停止并清理;不再自动发送测试消息,后续真机消息验证上限为 3 条。