zhu1090093659/dsh-web-ui--packages-dsh-task-board ↗★ 514
@linxin666/dsh-client-ui-task-board
Task board for the dsh web GUI: a sidebar entry plus a multi-column kanban view with local persistence, task details, and real execution through dsh sessions (session.prompt). Hot-pluggable — mounted via ~/.dsh/cordis.patch.yml + a profile node_modules symlink, no dsh source changes.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhu1090093659/dsh-web-ui#ef3ef0dbcb057135c41bcd2b9b5cf85cfb3716e8&path:packages/dsh-task-board说明文档
阅读完整 README ↗dsh-task-board — DSH web GUI 任务看板插件
一个可热插拔的 DeepSeek Harness (DSH) 客户端 GUI 插件:在侧边栏「新会话」下方增加
任务看板入口,点击后中间列整体切换为多列看板视图;任务以 DSH 自身的会话机制
真实执行(session.prompt),执行状态实时回写卡片。
- 不修改 DSH 源码:以 cordis 插件 + 浏览器 DOM 扩展挂载(外挂形态与
dsh-web-ui/packages/skins/skin-center一致)。 - 卸载即恢复原状,其它 managed 段(dsh-skin / skin-center / 个人配置)互不干扰。
- 任务数据本地持久化,刷新页面、重启 DSH 均不丢失。
功能
- 侧边栏入口:
[data-pane="sidebar"]列内、新会话按钮下方注入「任务看板」入口行 (宽栏显示图标+文字,折叠 rail 显示纯图标,随 DSH 皮肤 token 自适应)。 - 多列看板:待规划 / 待办 / 进行中 / 已完成 / 已失败 五列;卡片显示标题、描述、 状态、更新时间、执行次数;顶部支持搜索过滤、新建任务、返回对话。
- 任务详情:点卡片打开详情(标题/描述/执行 Prompt/执行记录),不会一点就执行; 详情内提供「执行 / 重新执行」「删除(带确认)」「查看会话(跳转到执行 transcript)」 以及手动移到待规划/待办。
- 真实执行:点「执行」后,插件通过客户端 runtime 连接工作区会话
(
workspaces.connectWorkspace,空白会话复用或 host 新建),把任务标题设为会话名, 以任务 Prompt 调用session.prompt([{ type: 'text', text }], 'queue')驱动真实 agent; 随后订阅该会话快照,轮次真实结束后把卡片置为 已完成/已失败 并记录执行结果。 执行会话会出现在会话列表,可点进对话查看真实 transcript。 - 状态回写:卡片状态(进行中 → 完成/失败)由真实会话状态驱动;刷新页面/重启后, 遗留的 running 任务会按会话现状自动对账(reconcile)。
- 定时任务:详情面板可为任务配置定时执行——启用开关 + 5 段 cron 表达式
(分 时 日 月 周,支持
*/*/n/a-b/ 逗号列表)+ 常用预设(每天 09:00、 每小时、每 10 分钟、每周一 09:00);启用即计算并持久化「下次运行时间」,卡片显示 定时 标识;到点自动走真实执行链路(同手动执行),执行会话照常可跳转。 - 系统提示词注入:host 半边(
src/index.ts)通过SystemPrompt.section注册plugin:task-board段(order 200),向每个 agent 声明本插件存在、能力与限制—— 插件在组合中(mount 后重启 DSH)即注入,移出组合(unmount 后重启)即消失, agent 无需任何外部文档就能知道如何与本看板协作。
目录结构
package.json / tsconfig.json / tsdown.config.ts # 独立仓库构建
build/tsdown.client.ts + build/web/src/platform.ts # 从 DSH checkout 复制的 client bundle 预设(与运行版本保持同步)
src/index.ts / src/invariant.ts # host 半边:仅注入 SystemPrompt section(其余无行为)
src/client/index.ts # apply(ctx):接线 runtime 服务 + 挂载 DOM
src/client/sidebar-entry.ts # 侧边栏入口注入(自愈式 MutationObserver)
src/client/board-mount.tsx # 中间列看板挂载 + 显隐切换
src/client/board/*.tsx # React 看板视图(列/卡片/详情/新建/确认)
src/client/board.module.css # 样式(--dsw-* token,随主题/皮肤自适应)
src/core/tasks.ts # 任务模型 + 状态机(纯函数)
src/core/schedule.ts # cron 解析 + 下次运行时刻(纯函数)
src/core/scheduler.ts # 浏览器调度器(每分钟 tick 触发到期任务)
src/core/store.ts # 持久化(TaskStore 接口 + localStorage 实现)
src/core/execution.ts # 真实执行服务(会话连接/prompt/结算观察)
src/core/controller.ts # 控制器(台账状态、视图状态、导航感知)
tests/*.spec.ts # 存储/状态流转/执行触发/cron/调度 自动化测试
scripts/dsh-task-board.js # 一键挂载/卸载/状态 CLI