dsh-task-board

DSH PLUGIN文档与办公

仓库 linsibin/dsh-task-board · npm @linsibin/dsh-task-board

文档与办公 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

为 DeepSeek Harness 会话头部注入「Tasks」标签页,提供三列看板,拖入进行中即真实创建 DSH 会话执行任务并回传进度。

一句话选型结论

按资料字段整理

dsh-task-board 是文档与办公类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类文档与办公 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-09-08 创建于 2026-09-07
README 8.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add @linsibin/dsh-task-board@0.1.0
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.1.3-alpha.2;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.1.3-alpha.2版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名@linsibin/dsh-task-board可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-task-board:DeepSeek Harness 里能真正执行任务的三列看板

  • 会话头部注入 Tasks 标签页
  • 三列看板按任务组折叠
  • 拖入进行中即真实执行
  • 助手输出实时回传卡片
  • 完成后自动流转并本地持久化

上游标签

dsh-plugin

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✕ 未通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 插件目录树加载失败
  • L5.3_HTTP_SERVED HTTP 服务响应

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.1.3-alpha.2),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在文档与办公场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-task-board当前 L4 · 沙盒安装通过 低风险 0 0.1.3-alpha.2 有
reactive-resume L3 · 安装规范通过 低风险 4.4 万 未标注 有
webnovel-writer L4 · 沙盒安装通过 低风险 7,742 未标注 有
answer-me-with-html L4 · 沙盒安装通过 低风险 4,782 未标注 有
univer-workspace L4 · 沙盒安装通过 低风险 2,258 未标注 有
last30days-skill-cn L4 · 沙盒安装通过 低风险 1,880 未标注 有

仓库档案

文档与办公
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方linsibin仓库 dsh-task-board · 默认分支 main
分类文档与办公office
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-07 · 2026-09-08最后推送 2026-09-08
本站收录2026-09-08首次进入本站目录的时间

README 全文

8.5 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-task-board

> A task-board client plugin for DeepSeek Harness Desktop. Adds a 「Tasks」 tab next to Chat / Trajectory in the conversation header, with a three-column kanban that can truly execute each task through the DSH agent engine.

English · 中文


Highlights

  • Tab injection — registers into the official conversation.view slot, sitting side by side with the built-in Chat (chat) and Trajectory (trajectory) tabs (same mechanism those tabs use).
  • Three-column kanban — Backlog / In Progress / Done columns, grouped by an arbitrary task group name; group headers collapse/expand all cards underneath.
  • Rich task cards — UUID id, title, group, Markdown description, workDir, files[] and status.
  • Drag-to-execute — dropping a card into In Progress creates a brand-new DSH session bound to the card's workDir, sends the card description as a queued prompt, and the agent really does the work.
  • Live progress — assistant output streams back onto the card in real time while the session runs.
  • Automatic lifecycle — when the turn ends and the session idles, the card auto-flows to Done with the final assistant message as its result; failures/timeouts return it to Backlog with a visible error.
  • Re-run — drag a Done card back into In Progress to execute it again.
  • Local persistence — cards survive reloads (browser localStorage, key dsh-task-board:v1).
  • Theme-aware — styled with DSH CSS variables (--dsw-*), auto light/dark.

How it works (the 5-second version)

A DSH "client plugin" is a single npm package with two halves:

Half File Role
Host half lib/index.js A Cordis plugin the Loader mounts in Node — a no-op for a pure-UI plugin
Browser half lib/client.js Registered into the Web GUI as { inject: [...], apply(ctx) }

package.json carries the two declarations the harness looks for:

"dsh": {
"client": {            // browser-side declaration (platform MUST be "web")
"platform": "web",
"inject": [ /* client packages this module depends on in the boot graph */ ]
},
"bundle": {            // profile-bundle declaration (provides a Loader patch)
"patch": "./cordis.patch.yml"
}
}

Inside apply(ctx), the plugin registers a conversation.view entry:

ctx.slots.inject('conversation.view', () =>
ctx.slots.register({
name: 'conversation.view',
id: 'taskboard',
order: 20, // chat = 0, trajectory = 10, taskboard = 20
locale: 'taskboard',
label: () => t('view.task'),
}, TaskBoardView),
)

When a card is dropped into In Progress, the browser half runs the real execution pipeline:

  1. ctx.sessions.create({ cwd: task.workDir }) — the host accepts any absolute cwd; a new session is created per run (its sessionId is stored on the card so you can reopen and inspect it later).
  2. binding = ctx.sessions.binding(sessionId) → binding.session.open().
  3. session.prompt([{ type: 'text', text: taskDescription }], 'queue').
  4. Subscribe to binding.eventSource and stream assistant/live-chunk text back onto the card.
  5. Poll the session snapshot: when the window shows user/message → turn/end, running === false, the queue and pending submissions are empty → mark completed with the last assistant/message text.
  6. Errors (promptError, lastAgentError) or an 8-hour timeout send the card back to Backlog with the error shown.

> Event-window note: session window entries are shaped { type: 'event' | 'transient', event: { type, seq, time, data } } — the event kind lives on the inner event object.


Install

The plugin targets the desktop profile that runs your GUI.

Option A — DSH CLI (recommended)

Run inside a DSH terminal:

dsh plugin --profile desktop add

Because the package declares dsh.bundle, the CLI appends it to dsh.profile.bundles in ~/.dsh/profiles/desktop/package.json and installs it as a direct dependency.

Option B — manual

  1. Edit ~/.dsh/profiles/desktop/package.json:
    - add the package under dependencies (a file: spec pointing at the absolute path);
    - add "@linsibin/dsh-task-board" to dsh.profile.bundles.
  2. Run pnpm install inside the profile directory.
  3. Restart DSH Desktop.

Option C — npm

npm install @linsibin/dsh-task-board

Then add "@linsibin/dsh-task-board" to dsh.profile.bundles in your desktop profile and restart DSH Desktop.

> Never hand-edit cordis.yml — it is rewritten on every launch. Use cordis.patch.yml or the flows above.

Enable

Restart DSH Desktop (bundle-list changes are never hot-applied). After restart, open or create a conversation: the header tab strip (which already shows Chat / Trajectory) will now also show Tasks.

> The tab only appears while a conversation is open — that is how the official conversation.view mechanism works, not a limitation of this plugin.


Verify

Acceptance item How to check
Tasks tab appears Open any conversation → tab strip shows Tasks after Chat / Trajectory
Create a card with group & files + New Task → fill title / group / description / workdir / files (one per line) → card appears in Backlog, grouped
Drag triggers a real run Drag card into In Progress → running indicator + streaming output; console logs [dsh-task-board]; a new session shows up in the session list
Auto-flow on completion Turn ends & session idles → card moves to Done with a result summary
Re-run Drag a Done card back into In Progress
Group collapse Click a group header to collapse/expand its cards
Persistence Reload the page — tasks are still there

Failure path: a rejected prompt, agent error, or 8 h timeout returns the card to Backlog with a ⚠ message; drag it in again to retry.


Development

node scripts/build.mjs          # rebuild lib/client.js from src/client.tsx
node scripts/build.mjs --watch  # rebuild on changes (for client HMR)
  • Offline build — the script uses the TypeScript that ships inside the DSH profile (~/.dsh/profiles/node_modules/typescript) via transpileModule (syntax transpilation only, no type-checking, no network). Override with the DSH_TS_LIB env var if needed.
  • Bundle purity — at runtime the browser bundle may only require() platform seed modules (React, @deepseek-ai/cordis, …). This plugin therefore ships zero third-party runtime dependencies; type annotations in the source are for readers only.
  • HMR — after the first install, editing src/client.tsx and rebuilding rewrites lib/client.js; the always-on client HMR reloads that plugin in place (plugin React state is lost, sessions/runtime survive). Manifest changes still need a restart.

Project layout

dsh-task-board/
├─ package.json          # dsh.client (web) + dsh.bundle (patch) declarations
├─ cordis.patch.yml      # bundle patch: inserts this plugin as a Loader row
├─ tsconfig.json         # editor/type-reading only; build does not use it
├─ lib/
│  ├─ index.js           # host half (no-op Cordis plugin for the Loader)
│  └─ client.js          # browser half (BUILT artifact — edit src/, then rebuild)
├─ src/
│  └─ client.tsx         # browser-half source: kanban UI, drag & drop, runner
└─ scripts/
└─ build.mjs          # TSX → CJS + ModuleLoader registration shell → lib/client.js

Notable details

  • Because the file: dependency install is a copy, after changing src/client.tsx + rebuilding you must refresh the profile copy (pnpm install may say “Already up to date” — copy lib/client.js over manually, or use pnpm link for a live dev loop).
  • Running against an arbitrary workDir: session.create({ cwd }) accepts any absolute path, but whether the host fs/sandbox permits an unregistered directory depends on host configuration — register the directory as a workspace first if it gets blocked.
  • Every execution creates a new session in the GUI session list; open it anytime to review exactly what the agent did.

Compatibility

Built against DSH Desktop 2.0.5 internals (@deepseek-ai/dsh-* 0.1.2-rc.1) and verified on a live desktop profile. Internal APIs may change across DSH versions.

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-task-board 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add @linsibin/dsh-task-board@0.1.0` 即可。对应的 npm 包名是 `@linsibin/dsh-task-board`。

dsh-task-board 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-task-board 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-task-board 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-task-board 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.1.3-alpha.2。

dsh-task-board 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-task-board 有哪些功能?

会话头部注入 Tasks 标签页、三列看板按任务组折叠、拖入进行中即真实执行、助手输出实时回传卡片、完成后自动流转并本地持久化。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
文档与办公
按星标排序,可作替代方案

webnovel-writer

webnovel-writer

基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200 万字量级 连载创作。

L4 · 沙盒安装通过 7,742 星

answer-me-with-html

answer-me-with-html

Answer me with HTML — an agent skill that answers hard questions with

L4 · 沙盒安装通过 4,782 星

last30days-skill-cn

last30days-skill-cn

last30days-cn 是一个 AI Agent 技能(Skill),能够自动搜索中国互联网 8 大主流平台最近 30 天的内容,综合分

L4 · 沙盒安装通过 1,880 星

dsh-bili-scroll

dsh-bili-scroll

DSH 插件:每天替你刷一轮 B站,读字幕挑出值得的、写一份日报,值得的 @ 你

L5 · 运行验证通过 1,025 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。