# 企业微信新账号扫码与多账号切换演示手册

## 1. 本次演示目标

在一个新克隆的项目目录中完成：

1. 安装通用版 `fmode-qiwei`；
2. 使用新设备 UID 生成企业微信二维码；
3. 扫码、必要时提交 6 位验证码；
4. 登录成功后保存新账号并切换到该账号；
5. 重启工作台后仍恢复正确账号；
6. 在两个已保存账号之间往返切换，客户 Workbench 与 Claude Session 不串号。

本流程不包含房源、看房、购房画像或房源推荐 Skill。

## 2. 演示前准备

- Node.js `22.5.0+`；
- 已登录 Fmode Studio，或当前项目能读取有效 Fmode 鉴权；
- 手机企业微信可扫码；
- 新项目目录可写；
- 端口 `4320` 未被其他项目占用。

克隆项目后，先备份项目根目录的 `.env.local`。若本次必须演示“全新账号首次绑定”，可删除克隆文件中的 `QIWEI_UID` 与 `QIWEI_GUID` 两行；保留现有 Fmode 鉴权配置。不要把 `.env.local` 发到聊天或提交到 Git。

## 3. 从本地迁移版安装

在 PowerShell 中执行：

```powershell
$Source = 'E:\workspace\openclaw-voc-skill\claude-code\claude-code-qiwe-assistant'
$Project = 'E:\你的新克隆项目'
node "$Source\install.js" workspace "$Project" --smoke
Set-Location $Project
node .claude\plugins\qiwei-assistant\install.js preview .
```

浏览器应打开：

```text
http://127.0.0.1:4320/
```

> `0.5.1` 发布后可直接使用 `npx --yes fmode-qiwei@latest workspace --smoke`；上述本地源码命令继续用于开发分支验证。

## 4. 页面操作步骤

1. 打开右上角账号菜单，点击 **添加账号**；或进入 **账号状态 → 添加账号**。
2. 页面会生成一个新的设备 UID，并请求新的登录二维码；旧账号仍保留在已保存账号列表中。
3. 用待演示的企业微信扫码，并在手机端确认。
4. 若页面出现验证码输入框，输入手机端显示的 6 位数字。
5. 等待页面显示“登录成功”和新账号名称。
6. 进入 **账号状态**，确认新账号为当前账号且状态为在线。
7. 在已保存账号中选择旧账号，点击 **切换**；再切回新账号。
8. 打开 **智能会话**，确认切换后显示的是对应账号的独立会话数据。
9. 选择测试联系人加入白名单，将全局模式保持为 **待审核**，再启动监听。

## 5. 必做验收

### 扫码链路

- 二维码能展示；
- 状态能从等待扫码进入已确认或验证码，再进入登录成功；
- 新 UID 的请求没有携带旧账号 GUID；
- 扫码取消后原账号仍可继续使用。

### 切换与重启

- 切换接口成功后页面才更新当前账号；
- 项目 `.env.local` 中的 UID/GUID 属于同一个当前账号；
- 关闭工作台并重新执行 preview，当前账号仍正确；
- A → B → A 往返切换后，会话、草稿和 Claude Session 不串号；
- 监听恢复不把原来的审核/自动/人工模式重置。

### 工作区隔离

- 同一浏览器打开另一个克隆项目时，账号列表使用新的 `workspaceId`；
- 不会因为同样使用 `127.0.0.1:4320` 而自动写入上一个项目的账号。

## 6. 快速自检命令

在技能包目录执行：

```powershell
npm run check
npm run account:switch-smoke
npm run runtime:smoke
npm run agent:smoke
npm run connection:smoke
npm run install:check
npm run package:smoke
```

专项测试不访问真实账号，也不输出任何凭据。

## 7. 刘总交给 Agent 的一键配置提示词

```text
请在当前克隆项目中完成 fmode-qiwei 通用版的安装、启动和新企业微信账号绑定，并把每一步结果简洁汇报给我。

执行要求：
1. 先确认 Node.js >= 22.5，并识别当前项目根目录；不要读取或输出任何 Token、GUID、sessionToken、Authorization 或 .env.local 全文。
2. 优先使用已经安装在当前项目的 .claude/plugins/qiwei-assistant；若未安装，使用我提供的本地 fmode-qiwei 源码目录执行 workspace --smoke 安装。不要安装或启用任何房源、看房、购房画像、房源推荐 Skill。
3. 检查 4320 端口；若被其他项目占用，先确认对应进程，停止旧项目服务后再启动当前项目，不要让两个项目共用同一个工作台进程。
4. 启动 preview，读取 /api/health，确认返回的 workspaceId 属于当前项目。
5. 本次目标是“添加新企微账号”：生成全新的 uid；调用登录开始、状态检查和验证码时始终使用该 uid，禁止复用旧账号 guid；扫码成功前 persistConfig=false。
6. 展示二维码并等待我扫码。状态为 10 时只向我询问手机端 6 位验证码；状态为 2 后保存该 uid 与本次返回的 guid，并切换为当前账号。
7. 若扫码取消或切换失败，恢复原当前账号并保留已保存账号列表，然后报告失败步骤和可重试动作。
8. 登录成功后验证账号在线；重启一次工作台验证账号能恢复；如已有两个账号，再执行 A→B→A 切换并确认 Workbench/Claude 客户 Session 隔离。
9. 打开智能会话，把测试联系人加入白名单；默认保持待审核模式，启动监听。不要自动向任何非白名单联系人发送消息。
10. 最终只汇报：安装状态、workspaceId 后 6 位、扫码状态、当前账号脱敏名称、重启恢复、账号切换、白名单、监听状态和未完成项。不要回显任何凭据或完整设备标识。
```

## 8. 回滚

1. 停止当前项目工作台与监听；
2. 恢复演示前备份的 `.env.local`；
3. 重新启动工作台；
4. 在账号状态页切回原账号；
5. 确认白名单与 Agent 模式符合演示前状态。
