前言¶
在 DSH Desktop 里同时开多条对话、多个分支时,会话列表只能按时间或标题浏览,很难一眼看出「哪条在跑、哪条在等你、哪条卡住、哪条该收尾」。切换会话时,个人待办、检查项和下一步动作往往散落在笔记或脑子里,和真实 session 对不上号。
Task Deck 是面向上述场景的客户端插件:它读取 DSH 实时会话目录,把每条对话呈现为任务卡片,并在侧边栏提供仪表盘、详情与统计,便于继续、分叉或交接,而不复制对话正文。
这是什么¶
Task Deck(astephengoo-arch/dsh-task-deck)由维护者 astephengoo-arch 发布,分类为客户端插件。定位是 personal multi-session mission control for DSH Desktop:基于 live DSH session catalog,把会话组织成可管理的任务视图,个人标注层与对话内容分离,不改写 transcript。
核心功能¶
下面按 README 已说明的能力归纳,均可在安装后于 Web/Desktop 客户端使用。
入口与总览¶
- 在
sidebar.panellist增加 Task Deck 入口;Blocked 与 Review 状态会在徽章上汇总计数。 - Live Dashboard:按状态分组展示真实 DSH 对话,支持搜索与状态筛选。
任务详情与线程¶
- Task Detail:展示 session 标题、ID、workspace、运行状态、fork lineage;可编辑个人 Next Action、个人 checklist、相关对话与 review gate。
- Task Thread:右侧栏 Tab 与会话头启动器绑定当前
sessionId,便于在同一会话上下文中跟进。
继续、分叉与交接¶
- Continue:打开当前对话(
ctx.uiWorkspace.openSession(sessionId))。 - Fork / Handoff:通过
ctx.sessions.fork({ sessionId, increaseTitle: true })创建真实子会话;支持 fork 并标记为 waiting,用于并行工作流。
个人标注与状态¶
- 状态覆盖、Next Action、检查项、优先级、分支标签、别名等保存在浏览器
localStorage(键名dsh.taskDeck.annotations.v1),不会写回对话内容。 - Active 由运行时决定:agent 运行中为 Active,停止后回到 Waiting 或你手动设置的 Blocked / Review / Done。
- Idle auto-complete:非运行且未手动设状态的会话,在可配置的空闲窗口(1 小时至 30 天,默认 14 天)后自动变为 Done;手动设为 Waiting 可保持打开,选 Auto 则恢复自动规则。
统计页¶
- 按会话统计工作时间、墙钟跨度、轮次与 token(input / cache read / cache write / output)。
- 使用手绘 SVG 图表(无第三方 chart 库、无外链):日 token 堆叠趋势、日工作时间折线、7×24 活动热力图、token donut、会话时间线与 KPI sparklines。
- 费用维度:对 cache-hit input、cache-miss input、cache-write、output 分别计价;按北京时间区分峰谷(工作日 09:00–12:00、14:00–18:00 为峰时;夜间、周末与法定假日对 DeepSeek 模型按半价);提供可编辑价目表。数据由 Host 侧从 durable log 聚合,经
GET /task-deck/stats(仅 loopback、纯数字)提供给客户端。
数据如何流动¶
| 层级 | 来源 |
|---|---|
| Session 身份、标题、workspace、运行/空闲、最近活动、fork 父级 | ctx.sessions.list |
| 状态覆盖、Next Action、checklist、优先级、分支标签、别名 | localStorage 个人标注 |
| Continue | ctx.uiWorkspace.openSession(sessionId) |
| Fork / Handoff | ctx.sessions.fork({ sessionId, increaseTitle: true }) |
Task Deck 不复制 transcript。Done 可手动设置,也可由最后活动时间推导的空闲规则自动完成。
安装与启用¶
环境要求(来自官方说明):
- DSH
>= 0.2.1-rc.5 - Web/Desktop Client 需具备
sidebarRightTabs与sidebarRight
插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证,确认符合你的安全与合规预期。
从 Release 压缩包安装¶
在 GitHub Releases 下载 dsh-task-deck-1.5.0.tgz(版本以 Release 页为准),让 DSH agent 执行:
plugin_manager install_bundle /absolute/path/to/dsh-task-deck-1.5.0.tgz
刷新 DSH Web GUI 后,入口出现在侧边栏靠下位置,与 Plugins、Schedules 相邻。
从源码目录安装 bundle¶
若已有插件源码目录(官方 README 给出 clone 地址供获取源码),可对目录本身执行 bundle 安装:
plugin_manager install_bundle /absolute/path/to/dsh-task-deck
同样刷新 Web GUI 后使用侧边栏 Task Deck。
典型用法¶
- 打开侧边栏 Task Deck,在 Dashboard 用搜索和状态筛选定位会话。
- 点进 Task Detail,填写 Next Action 与 checklist,按需改优先级、别名或分支标签。
- 会话仍在跑时状态为 Active;agent 停走后按你的标注或自动规则进入 Waiting / Done 等。
- 需要并行尝试时选 Fork 或 Handoff;要回到原对话用 Continue。
- 在统计页查看 token 与工作时间;若关心成本,在价目表中调整各 token 类型与峰谷规则后查看 money 维度。
在同一会话中,可用 Task Thread 右侧 Tab 或会话头入口,始终绑定当前 sessionId。
适用场景与注意¶
适合:同时维护多条 DSH 对话与 fork 分支的开发者或重度用户;需要个人任务层(下一步、检查项、Review/Blocked)且希望与 session 元数据同源、标注仅存本地的场景。
隐私(README 声明):仅读取 DSH session 元数据;个人标注存浏览器 localStorage;不上传 transcript、无分析、无对外网络请求。
注意:统计接口仅本机 loopback;自动 Done 依赖空闲窗口配置,长期「挂着但不跑 agent」的会话可能被自动归档,需 Waiting 时可手动锁定状态。
结尾¶
Task Deck 把 DSH 实时会话目录当成任务板,在不动对话正文的前提下补上个人 mission control 与可选的费用向统计。目录与文档:
- 社区目录页:https://www.skillhub.cn/plugins/astephengoo-arch/dsh-task-deck
- 源码与 README:https://github.com/astephengoo-arch/dsh-task-deck
DSH 生态遵循「一切皆插件」;社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。