feat: Esc 关闭当前任务浮窗 接入 DSH shortcuts 仲裁,Esc 收回当前浮窗 运行中的会话保留双击 Esc 中止,菜单/对话框优先 README 增补键盘操作、更新日志,版本升至 0.2.0
feat: Esc 关闭当前任务浮窗
钉在 DeepSeek Harness 侧边栏上的一张任务看板。把不同工作区的会话排成卡片停在板上——进度写在卡面上,点开是独立浮动窗口,多开互不打扰。
实拍:看板按工作区分区,右侧同时开着多张浮动窗口;卡片上直接显示运行状态与最近输出。
用 DSH 同时跑多个任务时,侧边栏会变得很难用。任务看板针对四个具体痛点给出了对应解法。
左栏把不同工作区的会话混在一起,想知道某个会话属于哪个目录,得一个个点开看。
侧边栏只告诉你「在跑」或「没在跑」,看不出跑到哪了。
Bash · npm test
−
Esc
同一分区内的卡片自动按「需要你处理的程度」排序:
故障停止 → 需决策 → 运行中 → 已停止 → 已完成 → 空闲 → 草稿
扫一眼就知道该先管谁,而不是在十几个会话里翻找。
和 DSH 本体的运行环境磨合后补上的几处:
/rewind
board.json.bak
zh
en
前置:已安装 DSH(DeepSeek Harness)并至少有一个 profile(如 web、desktop)。
web
desktop
# 从 GitHub 安装(推荐) dsh plugin --profile web add git+https://github.com/MWGE22629/dsh-task-board.git # 或从 GitLink 安装 dsh plugin --profile web add git+https://www.gitlink.org.cn/GeDaamn/dsh-task-board.git # 或从本地目录安装(开发时) dsh plugin --profile web add link:D:/path/to/dsh-task-board
然后把包名加入该 profile 的 package.json 中 dsh.profile.bundles 数组:
package.json
dsh.profile.bundles
{ "dsh": { "profile": { "bundles": ["…", "@local/dsh-task-board"] } } }
重启 DSH,侧边栏出现「任务看板」图标即安装完成。
注:本插件包名为 @local/dsh-task-board(历史原因),安装命令与 bundles 都按此名引用。
@local/dsh-task-board
Enter
Shift+Enter
Tab
Space
Esc 只收回一个窗口;焦点在侧边栏、看板或主会话上时不会误关浮窗。菜单/对话框打开时,Esc 先归它们。
~/.dsh/storages/dsh-task-board/board.json
~/.dsh/storages/dsh-task-board/board.json.bak
会话内容本身不存在这里——它始终留在 DSH 自己的会话日志中。看板只保存「哪张卡对应哪个会话」这类无法推导的事实。
插件由两半组成,通过一条专用 RPC 路由通信:
flowchart LR subgraph Client["client.js(React UI)"] Board["看板面板"] Win["浮动窗口"] Card["侧栏加入按钮"] end subgraph Host["index.js(Node)"] RPC["POST /api/dsh-task-board"] Store["board.json 存储"] Fold["会话事件折叠outcome / digest"] end Card --> RPC Board --> RPC Win --> RPC RPC --> Store RPC --> Fold
index.js
session/event
client.js
sidebar.panellist
main
shell.overlay
taskboard.window
sidebar.workspaces.session.row.action
(Esc)
看板显示「存储不可用」怎么办? Host 的 RPC 路由尚未就绪(刚启动或插件加载失败)。稍等几秒会自动重试;若一直如此,检查 DSH 日志中是否有 [dsh-task-board] 开头的报错。
[dsh-task-board]
卡片显示「该会话已不存在」? 会话日志被删除或迁移出了当前 DSH_HOME。卡片仍会保留,你可以移除它,或重新给该工作区建新任务。
窗口打开是空白 / 报错? 先确认 DSH 客户端版本支持 shell.overlay 与 taskboard.window 槽位(本插件依赖会话级子槽渲染完整对话)。收起再打开一次通常即可恢复。
按 Esc 没关掉浮窗? Esc 只关「当前」浮窗:先点一下目标窗口,或把键盘焦点移进去。焦点在主会话/看板上时不会误关;窗口里的任务正在跑时,Esc 优先用于 DSH 的双击中止,停下后再按一次即可收回。
会把会话内容传到哪里吗? 不会。所有数据都在这台机器的 DSH 存储内,插件不发起任何外部网络请求。
MIT
DSH 任务看板插件:卡片停靠、浮动任务窗口、实时进度、峰谷时钟
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
任务看板 · DSH Task Board
实拍:看板按工作区分区,右侧同时开着多张浮动窗口;卡片上直接显示运行状态与最近输出。
它解决的四个问题
用 DSH 同时跑多个任务时,侧边栏会变得很难用。任务看板针对四个具体痛点给出了对应解法。
1️⃣ 左侧栏里「工作区和会话对不上号」→ 关注工作区 + 分区展示
左栏把不同工作区的会话混在一起,想知道某个会话属于哪个目录,得一个个点开看。
2️⃣ 左侧会话「进度不直观」→ 卡片实时预览 + 一键继续
侧边栏只告诉你「在跑」或「没在跑」,看不出跑到哪了。
Bash · npm test)、✎ 正在写、思考中并计时;3️⃣ 「一次只能看一个会话」→ 浮窗式多会话查看
−或按Esc收回当前浮窗(以最后点选或刚打开的窗口为准),会话引用立即释放,卡片回到原来分区的位置;Esc仍归 DSH 的「双击中止」所有——先停下,再按Esc收回窗口;4️⃣ 「状态不明确、重点不突出」→ 按关注度排序
同一分区内的卡片自动按「需要你处理的程度」排序:
故障停止 → 需决策 → 运行中 → 已停止 → 已完成 → 空闲 → 草稿
扫一眼就知道该先管谁,而不是在十几个会话里翻找。
细节适配
和 DSH 本体的运行环境磨合后补上的几处:
/rewind(回退对话与文件)在窗口里照常可用,回退后卡片照常跟踪状态。性能与数据存储优化
board.json.bak——看板被意外清空还能找回。还有两件小事
zh/en文案;卡片支持键盘操作(Tab 聚焦,Enter / 空格打开);尊重系统「减少动态效果」设置。安装
前置:已安装 DSH(DeepSeek Harness)并至少有一个 profile(如
web、desktop)。然后把包名加入该 profile 的
package.json中dsh.profile.bundles数组:重启 DSH,侧边栏出现「任务看板」图标即安装完成。
快速上手
Enter发送(Shift+Enter换行)——DSH 会在该工作区创建会话并开始执行。键盘操作
Tab/Enter/SpaceEscEscEscEsc收回Enter/Shift+Enter数据存储
~/.dsh/storages/dsh-task-board/board.json~/.dsh/storages/dsh-task-board/board.json.bak会话内容本身不存在这里——它始终留在 DSH 自己的会话日志中。看板只保存「哪张卡对应哪个会话」这类无法推导的事实。
实现概览(给想改的人)
插件由两半组成,通过一条专用 RPC 路由通信:
flowchart LR subgraph Client["client.js(React UI)"] Board["看板面板"] Win["浮动窗口"] Card["侧栏加入按钮"] end subgraph Host["index.js(Node)"] RPC["POST /api/dsh-task-board"] Store["board.json 存储"] Fold["会话事件折叠outcome / digest"] end Card --> RPC Board --> RPC Win --> RPC RPC --> Store RPC --> Fold
index.js):持有唯一一份 JSON 文档,串行化读写、原子落盘;从全局session/event折叠出每个会话的 Turn 结局与实时摘要(正在调什么工具、流式输出到了哪),并对停在看板上的卡片提供日志回溯兜底。client.js):纯 React 界面。缝合点:sidebar.panellist(侧栏图标)、main(看板本体)、shell.overlay(浮动层)、会话级子槽taskboard.window(窗口内的会话内容)、sidebar.workspaces.session.row.action(会话行「加入」按钮)。更新日志
0.2.0 — 2026-11-06
Esc收回当前浮窗;一次只收回一个,焦点在主界面时不会误关。Esc中止,停下后再按一次即可收窗。−按钮的悬浮提示补充(Esc),README 增补键盘操作表。0.1.0 — 2026-11-06
常见问题
看板显示「存储不可用」怎么办? Host 的 RPC 路由尚未就绪(刚启动或插件加载失败)。稍等几秒会自动重试;若一直如此,检查 DSH 日志中是否有
[dsh-task-board]开头的报错。卡片显示「该会话已不存在」? 会话日志被删除或迁移出了当前 DSH_HOME。卡片仍会保留,你可以移除它,或重新给该工作区建新任务。
窗口打开是空白 / 报错? 先确认 DSH 客户端版本支持
shell.overlay与taskboard.window槽位(本插件依赖会话级子槽渲染完整对话)。收起再打开一次通常即可恢复。按
Esc没关掉浮窗?Esc只关「当前」浮窗:先点一下目标窗口,或把键盘焦点移进去。焦点在主会话/看板上时不会误关;窗口里的任务正在跑时,Esc优先用于 DSH 的双击中止,停下后再按一次即可收回。会把会话内容传到哪里吗? 不会。所有数据都在这台机器的 DSH 存储内,插件不发起任何外部网络请求。
📄 License
MIT