Introduction¶
DSH’s session lifecycle is independent: the work completed in one session is not automatically visible to another session by default. For cross-session collaboration, delegating tasks to sub-agents, or continuing unfinished items from a previous session in a new session, a shared task board is required.
Below is an introduction to dsh-task-relay: a DSH plugin that provides cross-session task relay based on a local persistent queue, as well as session handoff summaries.
What is it¶
dsh-task-relay is maintained by LeslieWylie, licensed under MIT, and the current version is 0.1.1. It targets DSH’s cross-session and sub-agent scenarios, with the core capability of writing tasks to a local queue, allowing subsequent sessions to view, claim, complete, or cancel tasks, and recording/reading handoff summaries.
Runtime environment requirements are:
Node: ^22.19.0 || >=24.0.0
PeerDependencies requirements are:
@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
Core Features¶
It registers 7 tools covering the task lifecycle and handoff summaries:
task_push: Push a new task to the shared queue, specifying title, description, priority, and tags.task_list: Filter by status, priority, or tags, returning a sorted list.task_claim: Claim an open task and mark it asclaimed.task_done: Mark a task as completed and record the result.task_cancel: Cancel a task; delete if status isopen, or revert fromclaimedtoopen.handoff_write: Record the current session’s progress and to-do items.handoff_read: Read handoff summaries by session ID or the most recent N entries.
Queue data is saved to a local JSON file using atomic writes (temp file + rename) to prevent data corruption.
Installation and Enabling¶
First, install it to the target profile. Taking the web profile as an example:
dsh plugin --profile web add github:LeslieWylie/dsh-task-relay
If you need to use it in a headless scenario, you can also install it to the headless profile:
dsh plugin --profile headless add github:LeslieWylie/dsh-task-relay
Or append the plugin configuration in cordis.yml:
- id: task-relay
name: 'dsh-task-relay'
Typical Usage: Task Relay¶
The following is a cross-session task workflow. Session A pushes a task first:
task_push title="Fix login page bug" priority="high" tags=["bug","frontend"]
Session B then views and claims it:
task_list status="open" priority="high"
task_claim id="T1723647600000-1"
After Session B completes it, it writes back the result:
task_done id="T1723647600000-1" result="Fixed, commit abc123"
Typical Usage: Handoff Summary¶
Before ending a session, you can write the current progress and to-dos:
handoff_write summary="Completed development of feature A, features B and C remain to be done. The frontend component for feature B has been scaffolded, the backend API needs to obtain interface documentation from the session-x handoff."
After starting a new session, read the summary:
handoff_read
Data Storage and Directory Configuration¶
The default queue file is located at:
$HOME/.dsh/task-relay/queue.json
If different profiles require independent queues, you can configure config.root in the bundle to point to a different directory. For example:
- id: task-relay
name: 'dsh-task-relay'
config:
root: '~/.dsh/task-relay-staging'
Security Boundaries and Engineering Details¶
This plugin is described as a pure tool plugin: no network access, no execution of external commands. Data is stored in ~/.dsh/task-relay/ under the user’s home directory with directory permissions set to 700.
Inputs have length and quantity limits:
- Title 200 characters
- Description 4000 characters
- Summary 2000 characters
- Tags 10
Claim and complete operations have session ownership validation.
The package entry point is lib/index.js. The README mentions that submitting build artifacts is to handle pnpm’s refusal to execute build scripts when installing from git; meanwhile, tests/boot.test.mjs and CI rebuild once each before comparing to prevent build artifacts from becoming desynchronized from the source code.
Applicable Scenarios and Notes¶
It is suitable for use in DSH multi-session, sub-agent, or long-task splitting scenarios, especially when tasks need to be passed between sessions, handoffs of context are required, or historical tasks need to be queried.
Before installation and enabling, first check the source code, license, and peerDependencies to ensure they match the current DSH environment. The plugin runs with the privileges of the current dsh process, so do not enable it directly in untrusted repositories or uncontrollable environments.
Links¶
GitHub repository:
https://github.com/LeslieWylie/dsh-task-relay
Directory page link (not confirmed in the source materials collected in this article):
https://www.skillhub.cn/plugins/LeslieWylie/dsh-task-relay