dsh-task-relay:DSH 跨会话任务接力板

前言

DSH 的会话生命周期是独立的:一个会话完成的工作,另一个会话默认不会自动看到。跨会话协作、把任务交给子agent、在新会话继续旧会话未完成事项时,需要一块共享的任务板。

下面介绍 dsh-task-relay:它是一个 DSH 插件,提供基于本地持久队列的跨会话任务接力,以及会话交接摘要。

这是什么

dsh-task-relayLeslieWylie 维护,许可为 MIT,当前版本为 0.1.1。它面向 DSH 的跨会话和子agent场景,核心能力是把任务写入本地队列,让后续会话可以查看、认领、完成或取消任务,并记录、读取交接摘要。

运行环境要求为:

Node: ^22.19.0 || >=24.0.0

peerDependencies 要求为:

@deepseek-ai/cordis: >=4.0.1-rc.1 <5.0.0-0
@deepseek-ai/dsh-tools: >=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.2.0-0

核心功能

它注册 7 个工具,覆盖任务生命周期和交接摘要:

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

队列数据保存到本地 JSON 文件,并使用原子写入(temp file + rename)防止数据损坏。

安装与启用

先安装到目标 profile。以 web profile 为例:

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

如果要用于 headless 场景,也可以安装到 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"]

会话 B 再查看并认领:

task_list status="open" priority="high"
task_claim id="T1723647600000-1"

会话 B 完成后写回结果:

task_done id="T1723647600000-1" result="已修复,commit abc123"

典型用法:交接摘要

会话结束前,可以写入当前进展和待办:

handoff_write summary="完成了功能 A 的开发,剩余功能 B 和 C 待做。功能 B 的前端组件已搭好框架,后端 API 需要从 session-x 的交接中获取接口文档。"

新会话启动后读取摘要:

handoff_read

数据存储与目录配置

默认队列文件位于:

$HOME/.dsh/task-relay/queue.json

如果不同 profile 需要独立队列,可以在 bundle 行配置 config.root 指向不同目录。例如:

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

安全边界与工程细节

该插件被描述为纯工具插件:不联网、不执行外部命令。数据存储在用户主目录下的 ~/.dsh/task-relay/,目录权限为 700

输入有长度和数量限制:

  • 标题 200 字符
  • 描述 4000 字符
  • 摘要 2000 字符
  • 标签 10 个

认领和完成操作有会话归属校验。

包的入口为 lib/index.js。README 提到,提交构建产物是为了处理 pnpm 从 git 安装时拒绝执行构建脚本的问题;同时 tests/boot.test.mjs 和 CI 会各自重新构建一次再比对,用于防止构建产物与源码脱节。

适用场景与注意

它适合在 DSH 多会话、子agent或长任务拆分场景中使用,尤其是需要在会话之间传递任务、交接上下文和查询历史任务的情况。

安装和启用前,先检查源码、许可证和 peerDependencies 是否匹配当前 DSH 环境。插件会以当前 dsh 进程权限运行,因此不要在不信任的仓库或不可控环境中直接启用。

链接

GitHub 仓库:

https://github.com/LeslieWylie/dsh-task-relay

目录页线索(未在本文抓取资料中确认):

https://www.skillhub.cn/plugins/LeslieWylie/dsh-task-relay
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜