🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

跨会话任务接力板 LeslieWylie/dsh-task-relay

DeepSeek Harness
LeslieWylie77 天前有提交已提供中文文档扫描:含敏感能力

在会话间投递认领任务并交接工作摘要

28.6/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add LeslieWylie/dsh-task-relay
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 77 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 10 处,展示前 10 条)
  • 写入本地文件
    lib/store.js:47
    await mkdir(this.dirPath, { recursive: true, mode: 0o700 });
  • 读取本地文件
    lib/store.js:48
    if (existsSync(this.filePath)) {
  • 读取本地文件
    lib/store.js:49
    const raw = await readFile(this.filePath, 'utf-8');
  • 写入本地文件
    lib/store.js:67
    await writeFile(tmp, JSON.stringify(this.data, null, 2), 'utf-8');
  • 写入本地文件
    lib/store.js:68
    await rename(tmp, this.filePath);
  • 写入本地文件
    src/store.ts:53
    await mkdir(this.dirPath, { recursive: true, mode: 0o700 })
  • 读取本地文件
    src/store.ts:54
    if (existsSync(this.filePath)) {
  • 读取本地文件
    src/store.ts:55
    const raw = await readFile(this.filePath, 'utf-8')
  • 写入本地文件
    src/store.ts:73
    await writeFile(tmp, JSON.stringify(this.data, null, 2), 'utf-8')
  • 写入本地文件
    src/store.ts:74
    await rename(tmp, this.filePath)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 投递与认领任务
  • 交接工作摘要
展开完整介绍(59 字)↓

DSH 跨会话任务接力板:task_push/list/claim/done + handoff_write/read

README

由 DeepSeek 最新模型翻译生成
📋 dsh-task-relay DSH 跨会话任务接力板插件 —— 基于持久队列的跨会话/子agent 任务接力 + 交接摘要。 License 为什么 DSH 的会话生命周期是独立的:会话 A 做完的工作,会话 B 默认不知道。dsh-task-relay 填补了这个空白——它提供一个跨会话共享任务队列,任何会话(包括子 agent)都可以: - 投递任务给未来的自己 / 其他会话 / 子 agent - 认领和完成开放任务 - 记录会话交接摘要,供后续会话查看 工具一览 | 工具 | 能力 | 描述 | | task_push | 推送任务 | 投递新任务到共享队列,指定标题/描述/优先级/标签 | | task_list | 查询任务 | 按状态/优先级/标签筛选,返回降序列表 | | task_claim | 认领任务 | 认领一个开放任务,标记为 claimed | | task_done | 完成任务 | 标记任务为已完成,记录结果 | | task_cancel | 取消任务 | open 则删除,claimed 则退回 open | | handoff_write | 写交接摘要 | 记录当前会话的工作进展和待办事项 | | handoff_read | 读交接摘要 | 按会话 ID 或最近 N 条读取 | 安装
展开完整文档(README 剩余 1 节)
📋 dsh-task-relay

DSH 跨会话任务接力板插件 —— 基于持久队列的跨会话/子agent 任务接力 + 交接摘要。

License

为什么

DSH 的会话生命周期是独立的:会话 A 做完的工作,会话 B 默认不知道。dsh-task-relay 填补了这个空白——它提供一个跨会话共享任务队列,任何会话(包括子 agent)都可以:

- 投递任务给未来的自己 / 其他会话 / 子 agent
- 认领和完成开放任务
- 记录会话交接摘要,供后续会话查看

工具一览

| 工具 | 能力 | 描述 |
| task_push | 推送任务 | 投递新任务到共享队列,指定标题/描述/优先级/标签 |
| task_list | 查询任务 | 按状态/优先级/标签筛选,返回降序列表 |
| task_claim | 认领任务 | 认领一个开放任务,标记为 claimed |
| task_done | 完成任务 | 标记任务为已完成,记录结果 |
| task_cancel | 取消任务 | open 则删除,claimed 则退回 open |
| handoff_write | 写交接摘要 | 记录当前会话的工作进展和待办事项 |
| handoff_read | 读交接摘要 | 按会话 ID 或最近 N 条读取 |

安装

安装到 web profile
dsh plugin --profile web add github:LeslieWylie/dsh-task-relay

安装到 headless profile
dsh plugin --profile headless add github:LeslieWylie/dsh-task-relay

或者在 cordis.yml 中追加:

- id: task-relay
name: 'dsh-task-relay'

使用示例

跨会话任务接力

会话 A:推送一条任务 task_push title="修复登录页 Bug" priority="high" tags=["bug","frontend"]
→ { "id": "T1723647600000-1", "title": "修复登录页 Bug", "status": "open", ... }

会话 B:查看并认领 task_list status="open" priority="high" → 共 1 条任务,显示 1 条 task_claim id="T1723647600000-1"
→ { "id": "T1723647600000-1", "status": "claimed", "claimedBy": "session-b", ... }

会话 B:完成后通知 task_done id="T1723647600000-1" result="已修复,commit abc123"
→ { "id": "T1723647600000-1", "status": "done", "result": "已修复,commit abc123", ... }

会话交接

会话结束时: handoff_write summary="完成了功能 A 的开发,剩余功能 B 和 C 待做。功能 B 的前端组件已搭好框架,后端 API 需要从 session-x 的交接中获取接口文档。"
→ { "sessionId": "session-a", "summary": "...", "openTasks": 2, ... }

新会话启动时: handoff_read → 共 3 条交接摘要,显示最近 5 条

数据存储

所有数据存储在 $HOME/.dsh/task-relay/queue.json,使用原子写入(temp file + rename)防止数据损坏。

改用别的目录,在 bundle 行加 config.root:

- id: task-relay
name: 'dsh-task-relay'
config:
root: '~/.dsh/task-relay-staging'

| 配置项 | 默认值 | 说明 |
| root | $HOME/.dsh/task-relay | 队列文件所在目录。不同 profile 指向不同目录即可各自独立。 |

架构

dsh-task-relay/
├── src/
│ ├── index.ts # 插件入口:注册 7 个工具 │ ├── store.ts # 持久化存储层(JSON 文件 + 原子写入) │ ├── tools.ts # 工具定义(defineTool) │ ├── types.ts # 类型定义 │ └── invariant.ts # 输入验证 ├── tests/ │ ├── store.spec.ts # 存储层单元测试(18 个) │ └── tools.spec.ts # 工具注册与执行测试(8 个) ├── cordis.patch.yml # DSH bundle patch ├── LICENSE # MIT ├── README.md # 中文文档 ├── README.en.md # English docs └── package.json

开发

npm install
npm run typecheck # tsc --noEmit
npm test # vitest run (26 tests)
npm run test:boot # 通过真实 cordis registry 执行已构建产物
npm run build # tsc
npm run check # typecheck + test + build

为什么 lib/ 提交进了仓库

因为不提交就没人装得上。

包的入口是 lib/index.js,由 tsc 生成。而 pnpm 出于安全考虑,默认拒绝为 git 依赖执行构建脚本,所以从 GitHub 安装会直接失败:

ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 这个由 git 托管的包 "dsh-task-relay@0.0.1" 需要执行构建脚本,但不在 "onlyBuiltDependencies" 允许列表中。

包甚至没能进入 node_modules。而 v0.0.1 期间 26 个单测始终全绿——因为它们 import 的是 src/*.ts,从不碰包对外承诺的那个入口。作者本机一直正常,只是因为 profile 用 link: 指向了一份本地已构建的目录。

提交构建产物换来了可安装性,代价是可能与源码脱节。tests/boot.test.mjs 和 CI 各自重新构建一次再比对,脱节就报错——这是为那个代价买的单。

为什么 peer 范围写得这么别扭

@deepseek-ai/dsh-tools 的 peer 范围是:

=0.0.1-rc.1 =0.1.0-rc.1 =0.0.1-rc.1 =0.0.0-0 <0.2.0-0 这种"通配预发布"的写法同样无效——实测它一个 0.1.0 的预发布都匹配不到。只有显式 || 把两条预发布线分别列出来才行。

安全边界

- 纯工具插件,不联网、不执行外部命令
- 数据存储在用户主目录下的 ~/.dsh/task-relay/,目录权限 700
- 输入验证:标题 200 字符、描述 4000 字符、摘要 2000 字符、标签 10 个
- 认领/完成操作有会话归属校验

许可

MIT
预览分享卡片长什么样 ↓LeslieWylie/dsh-task-relay
分享 · DeepSeek Harness Hub
LeslieWylie/dsh-task-relay

在会话间投递认领任务并交接工作摘要

这是你的仓库?认领条目

回到顶部