# 微信桥接方向对照与可行性方案

对照文章《在你微信里用爽 Claude Code，我的开源 Skill 又更新了》中提到的方向和本插件的现状。

## 已完成

| 方向 | 状态 | 说明 |
|---|---|---|
| 扫码即用 | ✅ | `node lib/bridge/main.js setup` 扫码绑定 |
| 消息不刷屏 | ✅ | 流式输出按阈值 + 定时批量发送，不再逐字刷屏 |
| 对方正在输入中 | ✅ | `startTyping` 已实现 |
| 文件发给 DSH | ✅ | 图片/文件下载到本地路径后作为上下文给 DSH |
| DSH 生成文件推回微信 | ✅ | 响应文本中识别可推送文件并自动 `sendFile` |
| 超时安抚 | ✅ | 5 分钟无输出时自动发送安抚消息 |
| 消息队列基础版 | ✅ | 串行处理 + 处理中消息重新排队，不再丢弃 |
| 跨重启续聊 | ✅ | 持久化 `accountId → dshSessionId` 映射，启动优先 `ctx.agents.resume`；失败再新建 |
| 选择项目对话（Web 面板 + 微信命令 + 自然语言） | ✅ | Web 面板可直接绑定；微信端支持 `/sessionlist`、`/session <序号或ID>`；模型可通过 `wechat_bridge_list_projects` / `wechat_bridge_select_project` 自然语言进入项目 |

## 未完成 / 待评估

### 1. 消息队列优化（进阶）

**现状**：消息按到达顺序串行处理；处理中的普通消息会重新排队，等当前轮结束再处理。基本不会“驴唇不对马嘴”。

**可行性方案**：
- 引入“每个微信账号一个 FIFO 队列” + “当前任务 ID”。
- 支持 `/stop` 清空队列并取消当前任务（已实现基础版）。
- 可选：同一用户连续发送时合并短消息（如 1 秒内的多条文本合并为一条 prompt）。
- 工作量：低；风险：低。

### 2. 电脑休眠不中断

**现状**：未实现。电脑锁屏/合盖后 DSH 进程可能挂起，微信消息无法响应。

**可行性方案**：
- macOS：守护进程启动时 spawn `caffeinate -dimsu`，停止时 kill。
- Windows：`powercfg /requestoverride` 或 `powercfg /setacvalueindex` 阻止睡眠；也可用 Node `exec` 调用。
- Linux：`systemd-inhibit --what=sleep --mode=block`，或 `xdg-screensaver suspend`。
- 由 DSH 插件 Host 统一管理“抑制器子进程”，随桥接 start/stop 启停。
- 工作量：中；风险：低，但需注意用户可能不希望强制阻止睡眠，应做成配置项 `preventSleep: true/false`。

### 3. 接续电脑会话 / 跨重启续聊

**现状**：已实现。桥接数据目录持久化 `accountId -> dshSessionId` 映射；DSH Host 重启后优先 `ctx.agents.resume` 恢复原会话，只有映射缺失、旧日志损坏或工作目录变化时才新建会话。Web 面板已支持选择项目会话并绑定；微信端支持 `/sessionlist`、`/session <序号或ID>`；DSH 模型也可在微信对话中通过 `wechat_bridge_list_projects` / `wechat_bridge_select_project` 自然语言进入项目。

**后续可选**：
- 桥接守护进程改为独立 DSH SDK runtime（`@deepseek-ai/dsh-sdk-client`），完全脱离 Web GUI 进程，天然可跨重启恢复。

### 4. 电脑端与手机端体验完全一致

**现状**：桥接直接调用 DSH 进程内 Agent，不是另起 Claude CLI，因此编排、工具、记忆都来自同一个 DSH 运行时，体验基本一致。

**待办**：
- 微信会话与当前 Web 会话默认仍是不同会话；可通过 Web 面板或微信 `/session` 命令绑定项目会话实现“接着电脑当前会话聊”（已支持）。
- 工作量：低（已基本达成）。

## 建议优先级

1. 先做**电脑休眠不中断**（配置项默认关闭，用户可选开启）。
2. **跨重启续聊**已完成（持久化映射 + resume）。
3. 消息队列进阶按需做（当前基础版已可用）。
4. 按需对齐 dsh-im：多 IM 渠道、会话列表/绑定、更完整的 Host/Client 测试。 
