dsh-web
zhu1090093659
DeepSeek Harness (DSH) Web 插件聚合生态 · 万物皆插件,通过创意工坊分发||DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:cloader/dsh-taskboard
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 简体中文
DeepSeek Harness 的任务看板插件:人建卡、agent 认领执行、人验收。任务挂项目(workspace)、可指定模型与 preset、支持手动与定时执行,全流程双向协作。
零配置:安装即用——无需 Token、无需 API Key、无需额外服务或数据库。


| 依赖 | 要求 | 说明 |
|---|---|---|
| DeepSeek Harness | ≥ 0.1.1 | 需要 dsh plugin 子命令与 web profile |
| Node.js | ≥ 20 | 仅 GitHub 源安装构建时需要 |
| git | 可选 | Worktree 隔离需要;缺失时自动降级原目录执行 |
双轨挂载(0.8.0):dsh ≥ 0.1.7(带官方 slot 系统)时,看板作为一等侧边栏面板注册(
sidebar.panellist+main,宿主拥有侧栏行与面板切换,从根本上消除「看板打开后其他面板点不动」这类问题,#31);旧版 shell 自动回落到原有的 DOM 注入方式,行为与 0.7.x 完全一致。两条路径运行时自动互斥选择,无需配置。
# 一键安装(npm,预构建、免构建授权 —— 推荐)
dsh plugin --profile web add dsh-taskboard
# 或从 GitHub 源安装
dsh plugin --profile web add github:cloader/dsh-taskboard
安装后重启 dsh web 并刷新页面:侧边栏出现「任务看板」入口即成功。无需任何后续配置。
git 源插件安装时经 prepare 脚本构建,pnpm 会先阻止——按报错提示把精确 key 加进 profile 目录 pnpm-workspace.yaml 的 allowBuilds 后重跑即可。npm 源是预构建产物,无此步骤。
git clone https://github.com/cloader/dsh-taskboard.git
cd dsh-taskboard
npm install && npm run build
dsh plugin --profile web add "link:/path/to/dsh-taskboard"
link 安装后,仓库里 npm run build 重建、刷新页面即生效;改完宿主侧代码需重启 dsh web。
卸载:dsh plugin --profile web remove dsh-taskboard(台账数据保留在当前数据目录,见配置与数据)。
官方
@deepseek-ai/dsh-*包只写进 profile 的bundles列表,不要plugin add进 dependencies(避免 SDK 双实例遮蔽)。
第 1 步 · 建卡:看板右上「+ 新建任务」——选项目、紧急度、执行方式(认领/一次性定时/定期 cron)、模型与 preset、Git 隔离开关、验收清单;一次性定时任务可新建会话或选择当前项目的既有会话。定期任务则可独立选择「每次新建会话」「首次新建、后续复用」或既有会话,并选择完成后「移回待办」或「新建待办」;可勾「⚡ 立即执行」。
第 2 步 · agent 执行:三种触发方式任选——
taskboard_* 工具认领:按看板上的任务 t-xxxxx 执行第 3 步 · 人验收:待验收列「✓ 完成」一键验收;「✗ 退回」退回待办并附原因(agent 下轮开工前会读)。
一次完整的 agent 工作流(协议由插件在执行开场自动下达):
你:执行看板任务 t-ab12cd
agent:
taskboard_list # 查板:项目内 todo 任务
taskboard_get t-ab12cd # 读需求、评论、验收清单
taskboard_move → in_progress # 认领(代码闸:被持有/跨项目会被拒绝)
……编码 / 测试……
taskboard_checklist check # 逐项勾验收清单,附证据 note
taskboard_execution_report # 结构化报告:摘要/改动文件/自验/产物/风险
taskboard_comment_add # 交接说明
taskboard_move → in_review # 移待验收
你:看板待验收列 ✓ 完成 # done 永远只属于人——agent 调用会被代码闸拒绝
任何会话可用;项目边界:只有属于任务所在项目的会话才能认领或执行。
| 工具 | 作用 |
|---|---|
taskboard_list |
查板(按项目/状态/紧急度过滤,紧凑摘要) |
taskboard_get |
读单卡全文:描述、prompt、评论流、清单、执行记录 |
taskboard_comments |
列出任务评论(视为最新需求,先读后动) |
taskboard_create |
建卡(workspaceId、紧急度、清单、preset、隔离、定时) |
taskboard_update |
改标题/描述/prompt/紧急度/清单(model/execution 只读) |
taskboard_move |
移卡:todo→in_progress→in_review(到不了 done) |
taskboard_comment_add |
追加评论(交接、风险、进展) |
taskboard_delete |
软删除(可 purge;执行中不可删) |
taskboard_checklist |
验收清单 add / check(附证据)/ uncheck |
taskboard_execution_report |
提交结构化执行报告,自动挂到当前执行 |
看板协作
/ 即弹出命令与技能补全(↑↓/Enter/Tab/Esc 键盘导航,宿主动态发现与内置清单合并);描述与 Prompt 中的 Markdown 图片渲染为缩略图,点击灯箱放大taskboard_checklist 增补/勾选(附证据 note);用户在详情页直接勾选;待验收时未完成项红色高亮 + 卡片「☑ n/m」角标(未全勾显红);清单编辑在表单中整组管理(勾选状态与证据保留)taskboard_execution_report 提交(摘要 / 改动文件 / 自验 / 产物 / 剩余风险),自动挂到当前执行记录;待验收详情页分栏渲染;开场框架行明示提交时序(报告 → 评论 → 移待验收)git show / 文件 git diff,128KB·2000 行封顶标注截断);worktree 已删时回落主仓(仅限提交与带基线的范围 diff)Agent 工具(taskboard_*)
执行
<项目>/.dsh-worktrees/<任务ID> 独立 worktree 上进行,分支 task/<标题>+<任务ID>(首次创建后定死,改名不改);执行会话归属项目根目录(分组、工具与文件沙箱完整可用——DSH 要求会话 cwd 即工作区根,0.3.2 修正),worktree 路径与边界纪律在开场指令中明确下达;结算自动采集提交列表 / 未提交修改警告 / 改动统计;非 git 项目或 git 不可用时自动降级原目录执行(执行记录注明降级原因,台账与执行主流程永不因 git 失败而失败);验收时详情页一键 --no-ff 合并到主工作区(主区脏或冲突原样报告,不自动解决)、删除 worktree(有未提交修改时拒绝)、可选删分支;支持「↻ 续跑」在现有 worktree/分支上继续执行(保留上次改动与提交)<项目>/.dsh-worktrees/<任务ID>/ 形成结构同构镜像;执行引导逐仓库给出镜像路径与分支并声明边界纪律(未镜像仓库禁改);提交证据、diff 查看(?repo= 按仓库)与合并(逐仓库 --no-ff,一仓冲突不阻断他仓,按仓库汇总)均分仓库进行;镜像清理聚合全部仓库的未提交检查后「先子后根」删除;任务与执行记录新增 branches / repos 附加字段,单仓库行为与旧数据零变化;根仓库以 gitlink(embedded repo)形式跟踪子仓的容器工作区同样完全可用——嵌套子镜像在根镜像 status 中的结构性噪音(未跟踪目录 / gitlink 漂移)已在证据采集、合并检查与镜像清理中自动豁免;新建任务表单在多仓库工作区显示「将镜像 N 个仓库」提示,纯容器工作区(根非仓库、只有并列子仓)同样可选 Worktree 隔离taskboard_create 创建时将默认值存入新任务,后续改设置不影响已有任务。未配置看板模型时,GUI 保留原有的上次模型选择记忆;新建表单也可主动选择跟随部署默认。配置随台账持久化并支持 JSON 导入导出。Worktree 隔离是协作约定而非沙箱:执行会话拥有完整工具权限,隔离依赖分支约定,不适用于运行不可信代码的场景。
开箱即用,全部配置项如下(均为可选):
| 环境变量 | 默认 | 说明 |
|---|---|---|
DSH_TASKBOARD_MAX_CONCURRENT |
3 |
全局同时执行的会话数上限 |
DSH_HOME |
~/.dsh |
DSH 主目录,也是未自定义时的数据目录及位置引导文件所在目录 |
ATB_TRACE |
未设置 | =1 时 host 打印工具调用跟踪(调试用) |
数据目录默认是 DSH_HOME,可在「🛠 设置 → 数据存储位置」中检查并迁移到其他绝对路径。三个数据项始终一起迁移;卸载插件不删除数据。
| 文件 | 内容 |
|---|---|
dsh-taskboard.json |
任务台账(全部任务/执行/评论) |
dsh-taskboard-templates.json |
任务模板 |
dsh-taskboard-assets/ |
图片附件(按内容哈希去重) |
dsh-taskboard.json.backup-<时间戳> |
整册导入替换前的自动备份 |
DSH_HOME/dsh-taskboard-storage.json |
自定义数据目录的位置引导文件;固定留在 DSH 主目录 |
<项目>/.dsh-worktrees/<任务ID>/ |
任务执行 worktree(多仓库工作区:整区任务镜像,每仓库一个子 worktree) |
随时可顶栏「⬇ JSON」备份台账、「⬇ CSV」导出任务清单(带 BOM,Excel 直接打开)。图片附件不在 JSON 内;完整备份需复制设置页显示的数据目录中的 dsh-taskboard-assets/ 文件夹。
侧边栏没有「任务看板」入口?
刷新页面;仍没有则确认插件已装进当前 profile 并重启 dsh web(宿主半区在进程启动时加载)。三代 shell 均支持:data-pane(dev)、哈希类名(官方布局,0.4.2 起)、DSH Desktop 非兼容 extended frame(0.5.2 起)。
任务数据存在哪?怎么备份?
见配置与数据。GUI「⬇ JSON」可导出、恢复台账;图片附件还需备份 dsh-taskboard-assets/ 文件夹。
浏览器关了,定时任务还跑吗? 跑。调度在 host 进程侧,与浏览器无关;错过的时间窗口跳过不补跑。
定期任务完成后为什么停在「待验收」?如何自动继续? 默认会保留本轮供验收并由系统创建下一轮 todo 卡。若希望复用同一张卡,在任务表单的「定期任务完成后」选择「完成后移回待办」即可。两种策略不依赖 agent 的状态操作;未配置的既有 cron 任务也会采用默认的新建待办策略。
项目不是 git 仓库,能用吗? 能。Worktree 隔离自动降级为原目录执行,执行记录注明降级原因;其余功能不受影响。
多个项目怎么协作? 任务挂项目(= DSH workspace)。认领校验会话归属:只有任务所在项目内的会话能认领/执行,跨项目不可抢。
agent 会把任务直接标成「已完成」吗?
不会。这是代码级协议闸(不是提示词约定):taskboard_move 到 done 的调用被直接拒绝,验收永远由人在看板完成。
GitHub 源安装报 prepare 被阻止?
pnpm 的构建授权——按报错把 key 加进 profile 的 pnpm-workspace.yaml allowBuilds 后重跑;或改用 npm 源(预构建,无此步骤)。
和 dsh-better-sidebar 并存,看板顶栏右侧按钮被遮住? 0.6.5 起已自动避让:better-sidebar 收起时其右上角常驻按钮簇(展开底部面板 / 展开侧边栏)占据视口右上 10~70px,看板激活时会为工具条右侧预留这块区域(镜像 better-sidebar 对 DSH 原生会话头的避让契约),任何窗口宽度都不再重叠;未安装 better-sidebar 或其侧栏展开时无任何影响(#19)。
Windows 版 DSH Desktop 的窗口按钮与看板顶栏重叠? 0.6.6 的修复会根据看板距窗口顶部的实际位置,为原生窗口控制按钮预留顶部空间;已有独立标题栏时保持原间距,窗口缩放和布局变化时重新计算。该问题已通过 Windows 实机验收(#20 评论)。
编辑任务时 DoD 勾选框占位过多,把文本输入框挤出去? 0.6.6 已将 checkbox 排除在弹窗的整行输入框样式之外,恢复勾选框的 15px 宽度及文本输入区域(#20)。
git clone https://github.com/cloader/dsh-taskboard.git
cd dsh-taskboard
npm install && npm run build # host ESM + client CJS 双构建
npm test # vitest 全量(含真实 git 镜像集成测试)
node tests/manual-git-e2e.mjs # 真 git 端到端手测(worktree 全链路 + 续跑 + diff 查看器)
npm run build 在构建前清理 lib/ 的旧产物,再生成 host ESM 和客户端注册模块 lib/client.js。npm run build:host、npm run build:client 只重建对应部分并保留另一部分产物;发布前请运行完整构建。
source.kind: 'plugin'。看板现在以自身的 dsh-taskboard 消息来源写入执行上下文,避免手动和定时任务在启动首轮时因消息格式校验失败;后续的用户 follow-up 消息行为不变。感谢 @weibaohui 提交并合入此修复。@deepseek-ai/dsh-agent、dsh-home-paths、dsh-host-webserver、dsh-system-prompt、dsh-tools 和 dsh-workspace 统一升级至 0.1.7-rc.2,使开发与测试使用与该修复相同的 DSH API 版本。1000 ms,仍可显式设为 0 关闭节流。调度器以单飞与派发闸门避免重叠 tick 并行放行队列。sidebar.panellist + main 注册一等侧边栏面板),同时兼容 dsh < v0.1.7 版本使用 DOM 注入。修复:
新特性:
新特性:
修复:
taskboard_create 时会物化看板默认权限,并可通过创建/更新工具显式设置权限;done、canceled、archived 不再被 cron 重新拉起,循环任务仍可在 in_review 下按计划继续运行;支持用户将误标为 done 的任务重开到 todo。新特性:
修复:
修复:
新特性:
dsh-taskboard.json、dsh-taskboard-templates.json 和 dsh-taskboard-assets/ 始终一起迁移;先完整复制和校验,再切换位置,失败不覆盖原数据。@deepseek-ai/cordis 4.0.2、@deepseek-ai/schemastery 3.18.2),实测兼容 DSH 0.1.5-rc.1。修复:
taskboard_* 工具在插件挂载时同步注册并提高缓存命中率,后续工作区/agent 服务就绪或重载不会改变工具定义;依赖尚未就绪时返回 taskboard_not_ready。工具执行等待共享的台账首次加载;工具清理与运行服务生命周期分离。📜 更早版本的完整更新历史见 changelog.md。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: task-board。