dsh-task-relay:DSH 跨會話任務接力板

前言

DSH 的會話生命週期是獨立的:一個會話完成的工作,另一個會話默認不會自動看到。跨會話協作、把任務交給子agent、在新會話繼續舊會話未完成事項時,需要一塊共享的任務板。

下面介紹 dsh-task-relay:它是一個 DSH 插件,提供基於本地持久隊列的跨會話任務接力,以及會話交接摘要。

這是什麼

dsh-task-relay 由 LeslieWylie 維護,許可爲 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
羽毛球分组比赛记分
小程序二维码

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

小夜