Skip to content

v0.1.0 首个可用版本

Choose a tag to compare

@SteelUnion SteelUnion released this 21 Oct 16:46
· 6 commits to main since this release

dsh-wechat-queue v0.1.0

把微信接入 DeepSeek Harness —— 带一个落盘的串行消息队列。

用微信和你的 DSH agent 对话:发文字、发图、发文件、发视频,它在微信里回你。
一条回完才处理下一条,进程死了重启接着干。

English

A WeChat (iLink) channel plugin for DeepSeek Harness. Messages are persisted to disk
and processed strictly one at a time. The agent replies once per turn (at turn/end),
shows a native "typing" indicator, and can receive images, files and videos.

Built to replace dsh-channel-wechat, which had three structural problems:
missed messages, mid-turn replies, and deadlocks.


它解决什么

问题 老插件 本插件
收不到 listAccounts()[0] 取最旧的僵尸账号 登录时清空旧记录,永远只有一个
中途发 每个 assistant/message 都发一段 攒到 turn/end,一次发完
卡死 runExclusive 无超时 + catch {} 静默 三层超时,任何终态都推进队列

功能

  • 严格串行 — 一条回完才取下一条
  • 落盘队列 — JSONL 存盘,进程死了重启接着处理
  • 对方正在输入 — 轮次开始上报,结束收掉;坏了不影响主流程
  • DSH 原生命令转发 — /compact、/goal 等进队列执行,与普通消息同序
  • 接收图片 / 文件 / 视频 — 失败不丢文字
  • 发送文件 — 回复里提到 deliverables/ 下的文件就会发过去
  • 附件声明 — 告诉 agent 附件的名字、大小、uid,它不用翻目录猜
  • 扫码登录面板 — 单账号

安装

dsh plugin --profile desktop add <解压后的目录>

装完完全退出 DSH 再启动。

配置要点

- id: wechat-queue
  config:
    enabled: true
    cwd: 'C:\path\to\your\workspace'
    permission: 'danger-full-access'   # 管「能不能碰文件」
    agentPreset: 'cordis'             # 管「有没有工具可用」

⚠️ permission 和 agentPreset 是两件事

只给 permission 不给 agentPreset,结果是权限全开、工具一个没有。
agent 会说「我没有工具,请你手动跑这条命令」—— 它说的是实话。

发文件给微信

把文件放进 <cwd>/deliverables/,然后在回复里提到它。

只有这个目录下的文件才会被自动发送 —— 否则模型说「我读了 SOUL.md」就会把人格文件发出去。
列举路径不等于要发文件。

测试

548 项,18 个套件,0 失败。覆盖串行与超时、状态机、JSONL 存储、
四种媒体、文件发送与上传、预设挂载契约、事件竞态、扫码登录。

零运行时依赖

peerDependencies 只声明 @deepseek-ai/cordis,DSH 本体版本要求写在 engines.dsh。

来源

协议层搬自 dsh-channel-wechat v0.2.5(MIT)。
lib/protocol/qrcode.js 是 vendored 的 qrcode-generator 2.0.4(MIT)。
详见 THIRD_PARTY_NOTICES.md。

许可

MIT。