packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
DSH 会话右侧独立监控面板:git 状态、后台进程、技能与 MCP、产出与网页查阅,附提交/推送对话框与一键发布到 GitHub。
给 DeepSeek Harness(DSH)官方桌面版加的本地插件:在窗口右侧显示一个独立的任务监控面板(不是侧边栏标签页),按会话显示五块只读信息:
| 区块 | 内容 | 交互 |
|---|---|---|
| 环境信息 | 变更统计(+新增 -删除,绿红)、工作区路径、git 分支、未推送提交数 | 「提交或推送」按钮弹对话框 |
| 后台进程 | 本会话后台任务(官方 ctx.jobs 实时名单) | 运行中转圈 / 完成打勾 / 失败打叉 |
| 技能与 MCP | 本会话调用过的技能清单、MCP 服务清单(含调用次数) | 只读 |
| 产出 | 本会话新建/写入/修改过的文件 | 点击在右侧打开文件预览 |
| 网页查阅 | 本会话抓取过的 URL、搜索过的关键词 | 点 URL 用系统默认浏览器打开 |
显隐规则:会话已建立(新会话发出第一条消息后)且右侧边栏收起时显示;右侧边栏一展开就自动隐藏。面板显示时正文会像打开侧边栏一样整体左移,不会被遮住。
快速开关:会话头部右上角有一个任务清单图标按钮(悬停显示「隐藏/显示任务监控面板」);「设置 → 通用 → 任务监控面板」里也有同一个总开关(默认开)。
提交对话框:分支选择(可切换)/ 提交说明输入(留空自动生成)/ 包含未暂存变更勾选 + 「+X -Y」统计 / 同步状态行(本地与远端差几个提交;远端仓库已删除时如实红字提示)/ 推送 · 提交并推送 · 提交 三个动作;执行结果留在对话框里不自动关闭。
GitHub 一步到位:
git ls-remote 真问一次远端还在不在。仓库已在 GitHub 上被删除时,对话框不再谎报「本地与远端已同步」,而是红字说明远端已不存在,并给出「重新发布」区——仓库名默认填旧仓库名(想换名字直接改),重新发布会新建仓库并把本地远端改指向新地址再推送index.js — 宿主半边:/taskmonitor/data(五块数据)与 /taskmonitor/open-url(系统浏览器)等本机路由;git 只读。client.js — 界面半边:往官方根级槽位 shell.overlay 注册浮层 + 面板渲染 + 显隐/让位规则;数据经 fetch 拉本机路由。cordis.patch.yml — bundle patch(把插件行插入 profile roster)。skill / mcp__* / write / edit / str_replace_editor / web_fetch / web_search。一键安装(推荐):用 PowerShell 进入仓库根目录(含 install.ps1 的那一层,即本文件的上一级),运行:
.\install.ps1
脚本自动完成下面手动两步(建联接 + 登记 package.json),可重复运行、已装的部分自动跳过;在 Windows PowerShell 5.1 下若中文提示乱码只是显示问题,功能不受影响(推荐 PowerShell 7)。装完重启 DSH 桌面版生效。
手动安装(与脚本等价):
New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\@local\dsh-task-monitor" -Target "<本目录绝对路径>\dsh-task-monitor"
~/.dsh/profiles/desktop/package.json:
dependencies 增加 "@local/dsh-task-monitor": "link:<本目录绝对路径>/dsh-task-monitor"(斜杠用正斜杠)dsh.profile.bundles 追加 "@local/dsh-task-monitor"改代码后怎么生效:宿主半边(
index.js)改动必须重启 DSH(DSH 的 loader 不做模块缓存失效,重挂载仍拿到旧代码;插件管理器自己也会提示「需要重启」);界面半边(client.js)改动刷新页面(Ctrl+Shift+R)即可。开发期想少重启,可先把改动集中到client.js,宿主改动攒一批再重启。
把上面两步改回(删依赖、删 bundles 条目、删联接),重启 DSH。插件源码可保留。
MIT(见仓库根目录 LICENSE)。
/taskmonitor/* 只接受本机环回请求(socket + Host 头 + 同站校验)。open-url 只放行 http/https。