# 企业微信多开助手 — AI / 开发交接（线上入口）

> 给后续 AI 或开发者：先读本文件，再按需打开同目录其他文档与源码包。  
> 线上目录：https://py99999.com/wecom-multi/dev/  
> 用户下载页：https://py99999.com/wecom-multi/  
> 本机源码默认路径：`D:\源码\企业微信`

## 一句话目标

Windows 桌面「企业微信多开助手」：关闭企微独占 Mutex 后启动多个 `WXWork.exe`；通过 Velopack 从官网目录在线更新。  
另含 **WeComMulti.Runtime** 全智能闭环（Mission / 插件 / wbexpo 聊天 / LLM / 日志巡检）。

## 全智能闭环

总方案：`FULL-PLAN.md` 或仓库 `docs/全智能平台总方案.md`。  
工程：`src/WeComMulti.Runtime` + `Runtime.Host`（Linux systemd）+ WPF `AiRuntimeHost`。

试跑：

```powershell
dotnet run --project src\WeComMulti.Runtime.Host -c Release -- --config docs\runtime-host.sample.json
```

Linux：`scripts\publish-runtime-linux.ps1` → 服务器上 `bash install-runtime-linux.sh <publish-dir>`。  
也可从下载页取 `WeComMulti-Runtime-linux-x64.zip`。

### 聊天 / Host 指令

`/plan` `/run` `/edit` `/sql` `/sqldry` `/shell` `/http` `/plugin` `/plugin-import` `/pause` `/resume` `/rollback` `/status` `/priv` `/help`

Host 控制台另有：`demo`（自检 Mission）| `anomaly`（发巡检事件）| `quit`

改文件 ≥P2；破坏性 SQL ≥P3；Shell 需 AllowShell + 白名单。Eval 未通过时禁止技能蒸馏。

示例插件：`plugins-samples/sample.hello.wcmp`、`sample.hello.actuator.wcmp`（先 `.\scripts\pack-plugin-samples.ps1`）。

## 线上目录结构（生产）

```
服务器: 42.193.144.48
站点根: /www/wwwroot/py99999/
产品目录: /www/wwwroot/py99999/wecom-multi/

https://py99999.com/wecom-multi/
  index.html / latest.json / Setup / Portable / Runtime-linux zip / stable/ / dev/
```

**只上传 `artifacts\web\wecom-multi\`，不要直接传仓库 `web\`。**

## 客户端默认地址

- 更新源：`https://py99999.com/wecom-multi/stable`
- 兼容规则：`https://py99999.com/wecom-multi/compat.json`
- 本机配置：`%AppData%\WeComMulti\config.json`
- Runtime 数据：`%LocalAppData%\WeComMulti\runtime\`

## 技术栈

- C# / .NET 8 / WPF + Velopack
- `WeComMulti.Core` / `App` / `Runtime` / `Runtime.Host`

## 多开原理（关键）

Mutex（两个都必须关）：

- `Tencent.WeWork.ExclusiveObject`
- `Tencent.WeWork.ExclusiveObjectInstance1`

核心：`WeComLauncher.cs`、`MutexReleaser.cs`。

## 如何发新版

```powershell
cd "D:\源码\企业微信"
.\scripts\release-all.ps1 -Version x.y.z -ReleaseNotes "一句话更新说明"
.\scripts\pack-dev-online.ps1
# 上传 artifacts\web\wecom-multi\ → /www/wwwroot/py99999/wecom-multi/
```

跳过 Linux：`-SkipLinuxRuntime`。单独 Linux：`.\scripts\publish-runtime-linux.ps1`

## 安装说明（用户）

1. https://py99999.com/wecom-multi/ 下安装包  
2. 建议管理员运行再多开  
3. Setup 版才支持「检查更新」；绿色 ZIP 需重下

## 常见故障

| 现象 | 处理 |
|------|------|
| 已有企微无法再开 | 管理员；≥1.0.7；看 Mutex 关闭数 |
| 检查更新不上 | 须 Setup 安装版 |
| SQL 失败 | 配置 DB ConnectionString 或 `WECOM_AI_DB_DSN` |
| Shell 被拒 | AI 设置开 AllowShell，且命令在白名单 |
| 导入示例空 | 跑 `pack-plugin-samples.ps1` 或用安装包内 `plugins-samples\` |

## 安全

- **禁止**把服务器密码写入仓库或 `dev/`  
- 上传用 `scripts\upload-updates.ps1` 交互输入，或 SSH 密钥

## 版本核对

`csproj` `<Version>` = `artifacts/.../latest.json` = 线上 `latest.json` 三者一致。
