DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

msongw-design /

msongw-design/dsh-plugin-projects

Verified

A DSH plugin: a shared project discussion where defects become issue cards an Agent reproduces and fixes

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@8b3f2c37

项目(Projects)插件

DSH 侧边栏的「项目」面板:邀请成员进来共同讨论,讨论里提到的缺陷与体验点自动变成问题卡,由本机 Agent 复现并修复,结果回帖到讨论。

这是 Super-agent 设计探索 里「事件驱动 + 两级过滤 + Worker 执行」那条链路在 DSH 内的一个轻量实现:事件源不是 GitHub / 飞书,而是插件自带的项目讨论。

能做什么

  • 邀请成员:新建项目(绑定本机一个仓库目录)→ 生成邀请码 → 对方装同一插件、粘贴邀请码即加入。讨论经 ntfy 公共中继实时同步,不需要服务器、不需要公网 IP。
  • 改项目名:项目名旁悬停浮现铅笔图标可重命名,只改展示名;其他成员收到 project.renamed 后同步显示新名字。
  • 自由讨论:消息流按人分侧、支持引用回复;输入框可直接粘贴截图(截图按图片消息发出,字节走中继附件,本机同时留一份);系统提示(识别、开始修复、失败)以居中细线显示;Agent 的修复结果以「项目助手」气泡回帖。
  • 自动识别:每条人类消息先过程序规则(Fast Path),命中「缺陷 / 体验点」才建卡;低置信度停在「待确认」,高置信度且开了自动修复时直接进「待修复」。
  • 走到修复:Worker 在项目绑定的仓库里开一个独立 DSH 会话,先复现、再最小修复、跑测试,完成后把结论(结论 / 根因 / 改动 / 验证)回帖,卡片进「待验收」。
  • 看板:待处理 / 修复中 / 待验收 / 已完成·已忽略 四组;待处理可「修复」「忽略」,待验收可「标记完成」「重新打开」。重新打开时可以附一句说明(比如「功能已经能用,这次只想把按钮间距再调一下」),说明会发给项目助手,下一轮修复按它继续优化。

安装

在左侧栏 Plugins → Add plugin 填 https://github.com/msongw-design/dsh-plugin-projects(或本地目录绝对路径),安装后在 Installed 里启用,然后刷新页面。Host 半边只在启动时加载,首次安装后需要重启 DSH。

使用

  1. 确认「项目」已启用(本插件由 dsh-plugin-projects bundle 提供),侧边栏出现「项目」入口。
  2. 打开「项目」→「新建项目」:填项目名 + 仓库绝对路径。
  3. 右上「邀请」复制邀请码,发给对方;对方「加入项目」粘贴。
  4. 在讨论里正常说话。例如:

    登录页点登录没反应,一直报错,能稳定复现 几秒后出现「缺陷」卡和「开始复现并修复」提示;修复完成后「项目助手」回帖结论。

  5. 看板里验收:「标记完成」;如果只差些细节,点「重新打开」并写一句还要优化什么,项目助手下一轮会照着改,不用先点完成再另提一张体验点卡。

自动修复怎么跑

  • 触发:高置信度命中(分数 ≥ 3.5)且设置里开着自动修复;或人工点「修复」。
  • 过程:ctx.agents.create() 在项目仓库目录建会话 → 权限设为 danger-full-access → 注入修复提示词 → 等它跑完 → 从会话事件里读最后一条 assistant 回复作为摘要。
  • 同一项目同时只跑一个 Worker,其余卡片停在待处理;Worker 失败时卡片回到「待处理」并写清错误原因(例如模型凭据缺失)。
  • 修复只改本机工作区,不自动提交、不推远端——验收后由你决定是否提交。

边界

  • 共享同一工作区:成员各自在自己的机器上修复,没有 worktree 隔离;多个成员同时点修复时,各自改自己那台机器。
  • 中继限制:ntfy 公共中继单条文字消息 4KB、每天约 250 条 / 出口 IP、缓存 12 小时。图片不走 4KB 文字上限,而是作为 ntfy 附件上传(本插件上限 4 MB),对方收到后立即落盘,附件过期也能继续看。想摆脱限制可自建 ntfy,并在项目数据里替换 relay。
  • 识别是规则不是模型:Fast Path 用关键词与复现词判定,误报靠「忽略」,漏报直接点「修复」补建。Slow Path 由 Worker 复现来兜底。
  • 数据在本机:$DSH_HOME/plugin-data/projects/(状态 + 每个项目的事件日志 + images/ 图片副本)。换机器/清缓存后历史不会从对端补拉。

兼容性

开发与验证环境:DSH 0.2.1-rc.5(macOS desktop profile)。插件由一个 bundle 行组成,Host 半边(index.js)负责中继订阅、事件日志、识别与 Worker,浏览器半边(client.js)注册侧边栏入口与主面板;两侧通过 protocol.js 的纯函数共享信封与状态机定义。

跨机器协作依赖公共 ntfy 中继(https://ntfy.sh),不需要服务器或公网 IP,但受其配额限制(见「边界」)。

开发

  • 结构:protocol.js(纯函数:信封、邀请码、折叠、识别规则、状态机)、index.js(Host:中继订阅、日志、识别、Worker、HTTP/SSE)、client.js(浏览器面板)、test/。

  • 测试:需要 Node ≥ 22;本机 Node 不在 PATH 时用 DSH 自带或官方 Node:

    node --test test/*.test.mjs
    

    当前 37 个用例覆盖:识别规则、邀请码往返、信封与越权字段过滤、折叠、状态流转、重新打开说明的存放与清空、项目重命名、双实例中继同步(含图片附件落盘)、能力位、失败回退、输入边界。Host 测试用进程内假中继,不访问公网。

  • 生效范围:改 client.js 刷新页面即可;改 index.js/protocol.js 必须重启 DSH(Host 半只在启动时加载)。两者版本错开时,Client 通过 State 的 capabilities 判断 Host 是否已支持图片,不支持就提示重启,而不是上传失败。

  • 安装到 profile:dsh plugin --profile <name> add "link:<本目录>",并把 dsh-plugin-projects 加进 profile 的 dsh.profile.bundles,重启 DSH。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 8b3f2c375a85

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout