DeepSeek Harness Hub
← 返回列表

lwklbb/DSH-SessionGraph

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

SessionGraph 是一个给 DSH…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/17 · 已提供中文文档

一个DSH Web插件,可将聊天会话转换为可编辑的思维导图,并支持Markdown、Mermaid、PlantUML、XMind文本和TODO导出。

综合分
28.9
GitHub 分
28.9
用户评分
★ Stars
3
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add lwklbb/DSH-SessionGraph
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-slots
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH SessionGraph

SessionGraph 是一个给 DSH 用的小插件,用来把当前会话整理成导图。长会话里经常有很多调试、报错、反复修改的过程,最后真正有用的其实是结论、做了什么、还剩什么。所以这个插件会尽量过滤过程噪声,把会话压成一个可编辑、可复制的结构化大纲与导图。

SessionGraph UI showcase

能做什么

- 在会话输入框上方右侧增加一个 SessionGraph ▾ 按钮。
- 读取当前会话内容,提取目标、结论、关键点、决策、待办和文件产出。
- 过滤一些明显没必要进导图的内容,比如 stack trace、终端日志、debug 输出、重复试错过程等。
- 支持在弹窗里手动改节点、加子节点、删掉不想要的节点。
- 支持一键复制导出结果。

三种模式

| 模式 | 内容 | 适合场景 |
| --- | --- | --- |
| 默认导图 | 会话目标、最终结论、关键要点、决策与取舍、待办、文件/产出 | 平时整理一段会话 |
| 精简导图 | 只保留最终结论和待办 | 快速复盘、交接、写 commit 前看一眼 |
| 详细导图 | 默认导图 + 压缩后的时间线 | 会话比较长,想回头看过程时使用 |

导出格式

目前支持这些格式:

- Markdown 大纲
- Mermaid mindmap
- PlantUML mindmap
- XMind 缩进文本
- 待办清单简介

Markdown 大纲

下面用一个常见的开发场景举例:一次会话里完成了“订单列表批量导出 CSV”功能,中间可能经历了接口参数调整、字段映射修正、空状态处理和测试失败重跑。SessionGraph 会尽量把这些过程整理成最终可读的大纲。

SessionGraph:订单列表批量导出 CSV

- 会话目标
- 在后台订单列表增加批量导出 CSV 功能
- 支持按当前筛选条件导出,而不是只导出当前页
- 导出字段需要包含订单号、用户、金额、状态、下单时间
- 最终结论
- 前端已增加“导出 CSV”按钮,并复用订单列表当前筛选条件
- 后端新增 GET /api/orders/export 接口,返回 text/csv 文件流
- CSV 字段顺序已固定,金额统一按元展示,时间统一格式化为本地时间
- 空结果会导出只有表头的 CSV,不再直接报错
- 关键要点
- 导出请求不走分页参数,只传筛选条件和排序字段
- 前端使用 Blob 下载,文件名格式为 orders-yyyyMMdd-HHmm.csv
- 后端复用订单查询 service,避免复制一套筛选逻辑
- 大批量导出先限制为 5000 条,超过时返回明确提示
- 决策与取舍
- 暂时不做异步导出任务,当前版本先使用同步 CSV 下载
- 不在前端拼 CSV,避免字段权限和金额格式与后端不一致
- 状态字段导出中文文案,方便运营直接查看
- 待办 / 下一步
- 补一条超过 5000 条时的接口测试
- 和产品确认是否需要导出收货地址、优惠券字段
- 后续如果数据量继续变大,再改成异步导出中心
- 文件 / 产出
- src/pages/orders/OrderList.tsx
- src/api/orders.ts
- server/routes/orders.ts
- server/services/orderExport.ts

Mermaid

mindmap
root((SessionGraph:订单列表批量导出 CSV))
会话目标
后台订单列表增加批量导出 CSV
按当前筛选条件导出全部结果
字段包含订单号、用户、金额、状态、下单时间
最终结论
前端增加导出 CSV 按钮
后端新增 /api/orders/export 文件流接口
金额和时间格式已统一
空结果导出表头不报错
关键要点
导出请求不带分页参数
使用 Blob 下载 CSV
后端复用订单查询 service
单次导出上限 5000 条
决策与取舍
当前版本使用同步下载
CSV 在后端生成
状态字段导出中文文案
待办 / 下一步
补充超过 5000 条的接口测试
确认是否增加收货地址和优惠券字段
数据量变大后再做异步导出中心
文件 / 产出
src/pages/orders/OrderList.tsx
src/api/orders.ts
server/routes/orders.ts
server/services/orderExport.ts

PlantUML

@startmindmap
* SessionGraph:订单列表批量导出 CSV
** 会话目标
*** 后台订单列表增加批量导出 CSV
*** 按当前筛选条件导出全部结果
*** 字段包含订单号、用户、金额、状态、下单时间
** 最终结论
*** 前端增加导出 CSV 按钮
*** 后端新增 /api/orders/export 文件流接口
*** 空结果导出表头不报错
** 关键要点
*** 导出请求不带分页参数
*** 使用 Blob 下载 CSV
*** 后端复用订单查询 service
** 待办 / 下一步
*** 补充超过 5000 条的接口测试
*** 确认是否增加收货地址和优惠券字段
@endmindmap

XMind 文本

XMind 文本是 tab 缩进的大纲,复制后可以粘到支持缩进导入的工具里:

SessionGraph:订单列表批量导出 CSV
会话目标
后台订单列表增加批量导出 CSV
按当前筛选条件导出全部结果
字段包含订单号、用户、金额、状态、下单时间
最终结论
前端增加导出 CSV 按钮
后端新增 /api/orders/export 文件流接口
空结果导出表头不报错
关键要点
导出请求不带分页参数
使用 Blob 下载 CSV
后端复用订单查询 service
决策与取舍
当前版本使用同步下载
CSV 在后端生成
待办 / 下一步
补充超过 5000 条的接口测试
确认是否增加收货地址和优惠券字段

待办清单简介

待办清单简介

结论摘要
- 前端已增加“导出 CSV”按钮,并复用订单列表当前筛选条件。
- 后端已新增 GET /api/orders/export 接口,返回 CSV 文件流。
- 空结果会导出只有表头的 CSV,不再直接报错。

待办
- [ ] 补一条超过 5000 条时的接口测试。
- [ ] 和产品确认是否需要导出收货地址、优惠券字段。
- [ ] 后续如果数据量继续变大,再改成异步导出中心。
提取规则

lib/extractor.js 里是主要的解析逻辑。现在是本地规则,不依赖额外模型。大致会做这些事:

1. 从当前 ConversationSnapshot 里读取用户消息和助手消息。
2. 默认跳过 reasoning/thinking 内容。
3. 对每一行做清理,过滤:
- stack trace / traceback;
- stdout、stderr、exit code;
- npm err、pnpm err、warning/debug/verbose 日志;
- 终端提示符和大段命令输出;
- 明显重复的内容。
4. 优先保留最后几条助手回复里的结论。
5. 额外识别 结论、总结、完成、结果、决定、待办、下一步、TODO、Decision、Summary 这些关键词。
6. 从文本里抓取疑似文件路径,放到“文件 / 产出”节点里。

这个规则不是为了完整记录所有过程,而是为了快速得到一份“现在还能用的信息”。

安装

在插件目录里执行:

dsh plugin --profile web add .

如果是在本地 DSH 源码树里安装:

dsh -- plugin --profile web add D:\desktop\plugins-test\DSH-SessionGraph

安装后重启或刷新 DSH,打开一个已有内容的会话,就能看到 SessionGraph ▾ 按钮。

项目结构:

DSH-SessionGraph/
├─ cordis.patch.yml
├─ lib/
│  ├─ index.js        # host 侧入口,目前保持 no-op
│  ├─ client.js       # 浏览器 UI 和 slot 注册
│  └─ extractor.js    # 会话解析、导图生成、格式导出
├─ test/
│  └─ extractor.test.mjs
├─ docs/
│  └─ sessiongraph-showcase.png
├─ package.json
├─ LICENSE
└─ README.md

DSH 接入方式

插件通过 conversation.input.dock slot 加入一个按钮,不接管原来的输入框,也不修改会话持久化文件。

lib/index.js 是 host 侧入口,目前只是空实现;真正的功能都在浏览器侧完成。这样做的好处是安装风险比较低,SessionGraph 只读当前页面已经有的会话快照。

核心函数在 lib/extractor.js:

- extractMessages(snapshot):从会话快照提取可用消息。
- summarizeSession(snapshot, mode):按模式生成导图树。
- exportGraph(tree, format):把导图树导出为 Markdown / Mermaid / PlantUML / XMind / TODO brief。

License

MIT © 2026 lwklbb

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(lwklbb)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群