dsh-doc-panel:按会话浏览 Harness 产出的文档

前言

在 DeepSeek Harness(DSH)里跟智能体多轮对话,往往会落下一批真实交付物:Markdown 报告、单文件 HTML 仪表盘、PDF、表格和 Office 文档。它们通常堆在同一个工作区里,Harness 侧栏并没有按「哪次对话写了什么」来归档的入口,要找回上周某次会话的报告,只能自己在磁盘里翻路径。

社区插件 dsh-doc-panel(维护者 leobasic)在侧栏增加 Documents 面板:按会话索引产出文件,支持浏览、即时搜索和收藏,并在应用内预览,无需另开文件管理器。分类为客户端插件;当前 GitHub 星标为 0,许可证 MIT,package 版本 0.1.1(以仓库 package.json 为准)。

这是什么

一句话:面向单次对话的文档浏览器——把各会话产生的文档归到对应对话下,可搜索、可预览。

实现上拆成 Host(index.js,Node 内置模块)与 Client(client.js,Harness Web 内 React),由 cordis.patch.yml 接线;无构建步骤、无运行时 npm 依赖。要求 Node.js ≥22(package.json engines 写明 ≥22.19.0),在 DSH Desktop 0.2.2-rc.1 与 Node 24 上做过测试;需已安装带 plugin_manager 工具的 DSH(dsh 引擎约束见 package.json)。

核心功能

下面能力均来自项目 README,未列出即视为资料未承诺。

按会话分组与总览

  • Conversation folders:每个会话一张卡片,卡外展示摘要:文档数量、总大小、相对更新时间、类型构成。
  • Dashboard:会话数、文档数、收藏数、近 7 天指标(含柱状 sparkline)、文档类型环形图、最近更新列表。

搜索与收藏

  • Instant search:输入时过滤会话标题、文档名与路径;纯客户端,不索引或搜索文件正文。
  • Favorites:在列表或预览头标星;持久化到磁盘,重启保留;源文件已删除的项仍显示为不可用且无法打开。

预览与归属

  • Inline previews:Markdown 渲染;HTML 沙箱 iframe;PDF 嵌入;纯文本/源码;Office 提供打开/下载卡片;Markdown 与 HTML 可在预览/源码间切换(中文界面为「预览 / 源码」)。
  • Accurate grouping:从 session log 中的 write、edit、present 等写能力工具参数提取路径,并对工作区做过滤扫描;子 agent 会话折叠进根会话。
  • Native look:仅用 Harness 主题 token;图表为 SVG/CSS,无图表库。
  • Quiet by design:无出站网络、无遥测、Host 仅 Node 内置;UI 支持英文与简体中文,跟随 Harness locale。

安装与启用

前提:DSH 已具备 plugin_manager。部分操作可能需要 Full access 或审批提示。

若当前 DSH 构建支持从 git 规格安装 bundle,可直接指向 GitHub 仓库:

plugin_manager({ action: 'install_bundle', target: 'https://github.com/leobasic/dsh-doc-panel' })

若不支持,需将 target 指向本机上的插件目录绝对路径(README 推荐的 local checkout 流程;具体路径以你的环境为准),例如:

plugin_manager({ action: 'install_bundle', target: '/absolute/path/to/dsh-doc-panel' })

包发布到 npm 后,也可按包名安装(资料注明 npm 包仅含 Harness bundle 文件,运行仍依赖 DSH):

plugin_manager({ action: 'install_bundle', target: 'dsh-doc-panel' })

无构建步骤,文件按仓库原样加载。卸载:

plugin_manager({ action: 'remove_bundle', target: 'dsh-doc-panel' })

典型用法

  1. 点击左侧边栏的 documents 图标。
  2. 仪表盘展示产生过文档的会话;点会话卡片进入该会话文件夹。
  3. 点文档进入预览:Markdown/HTML/PDF/Office 等按类型处理;可用预览/源码切换。
  4. 在文档或预览头标星;通过收藏分段控件与收藏夹卡片查看;搜索过滤全面板;刷新按钮触发重新索引。

首次全量扫描会读取 session 语料,可能稍慢;之后走缓存会快许多。

可选配置

插件行可附带可选 config 对象,键均可省略。默认扩展名含 .md、.html、.pdf、Office 常见后缀等;.csv/.txt 需自行加入 extensions 才会扫描与预览。

Key 默认 用途
extensions 见 README 默认列表 扫描与预览的类型
maxFiles 5000 单次扫描收集文件上限
maxDepth 6 每个会话工作区向下遍历的最大深度
cacheTtlMs 60000 内存/持久化索引视为新鲜的时长
cachePath null 索引缓存路径;null 时为 <defaultDirectory>/.dsh-doc-panel/index.json
favoritesPath null 收藏存储;null 时为 <defaultDirectory>/.dsh-doc-panel/favorites.json
timeoutMs 180000 单次扫描硬超时;超时返回部分索引且 diag.complete: false
warmOnStartup true 激活后后台预热索引

<defaultDirectory> 为 Harness 默认工作目录(常规安装为 profile 目录;回退为 ~/.dsh)。完整说明见仓库 docs/configuration.md。

示例片段:

- id: dsh-doc-panel
  name: dsh-doc-panel
  config:
    extensions: ['.md', '.markdown', '.html', '.htm', '.pdf', '.docx', '.doc', '.xlsx', '.xls', '.pptx', '.ppt']
    maxFiles: 5000
    maxDepth: 6
    cacheTtlMs: 60000
    cachePath: null
    favoritesPath: null
    timeoutMs: 180000
    warmOnStartup: true

工作原理(简要)

Host 通过 sessionQuery 读取 session 语料,从日志提取标题、时间与文档路径信号;再按配置的 extensions 扫描各会话工作区(跳过 node_modules、.git、.asar、点目录等)。文件按四级规则归属到会话;无法归属的不展示。索引缓存在内存并原子写入 JSON;POST api/dsh-doc-panel/list 提供列表,read/file 在允许列表内提供预览。Client 注册侧栏入口与主面板;HTML 预览使用 sandbox="allow-scripts allow-downloads" 的 iframe。

更细的流程与数据流图见仓库 docs/architecture.md。

适用场景与注意

适合谁:长期在 DSH 里产出报告、仪表盘、PDF 等文件、需要按对话回溯交付物的开发者。

隐私与安全(README 摘要):插件不做外网请求与遥测;预览路径来自索引白名单。

运行权限:插件与当前 DSH 进程权限一致。安装前请自行查看源码与 MIT 许可证,确认 plugin_manager 安装源可信。DSH 生态强调「一切皆插件」;社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-doc-panel 把「这次对话生成了哪些文件」收进 Harness 侧栏:总览、按会话文件夹、即时搜索、收藏与内联预览,索引逻辑绑定 session 与工作区扫描,并刻意保持无额外依赖与无出站流量。

  • 目录页:https://www.skillhub.cn/plugins/leobasic/dsh-doc-panel
  • 源码与 README:https://github.com/leobasic/dsh-doc-panel
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye