Skip to content

Releases: SteelUnion/dsh-wechat-queue

v0.2.1 - 只补仓库元数据,插件行为没变

Choose a tag to compare

@SteelUnion SteelUnion released this 27 Oct 16:34

插件行为与 v0.2.0 完全一致。

  • SECURITY.md:漏洞上报渠道、支持哪些版本
  • .github/dependabot.yml:npm 依赖周检
  • package-lock.json:可复现安装

开源清单在收录前会扫这几个文件,这次补上是为了过收录检查。代码没动。

安装方式不变。

v0.2.0 — 暴露 wechatQueue 服务

Choose a tag to compare

@SteelUnion SteelUnion released this 26 Oct 09:38

v0.2.0

新功能:对外暴露会话归属服务

ctx.provide('wechatQueue', { owns(sessionId) { … } })

宿主侧的守卫(如 dsh-confirm-gate)据此判断「这个会话是不是微信通道的」,
从而在微信会话里拦掉中途弹出的交互选项 —— 回合制通道承载不了半路弹卡,会让整轮挂住。

为什么必须用 ctx.provide:

写法 结果
ctx.set('wechatQueue', …) ❌ 只能改已声明的属性,直接抛 without provide,整个 �pply() 失败,插件不启动
�xport const provide = [...] ❌ cordis 不读 ESM 导出,声明零效果
ctx.provide(...) ✅ 自行声明属性,注册在当前 fiber,卸载自动注销

其它

  • NOTES.md 移出发布包(维护者笔记,对外读者看 README)
  • 测试不再写死用户名,改由 homedir() 现算

安装

npx -p @deepseek-ai/dsh dsh plugin --profile web add github:SteelUnion/dsh-wechat-queue

v0.1.0 首个可用版本

Choose a tag to compare

@SteelUnion SteelUnion released this 21 Oct 16:46

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。