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
羽毛球分组比赛记分
小程序二维码

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

小夜