# 微信桥接方向对照与可行性方案 对照文章《在你微信里用爽 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 测试。