dsh-doc-review — DeepSeek Harness Web 文檔審閱彈窗插件

DeepSeek Harness Web 內置的問題編輯器(QuestionComposer)設計爲通用提問,採用緊湊卡片佈局。當內容是完整的 Markdown 設計文檔(含標題、表格、代碼塊、公式)時,卡片內的 60vh / 520px 滾動區域顯得侷促,審閱體驗不佳。dsh-doc-review 將文檔類提問替換爲全屏彈窗,以渲染後的 Markdown 全幅展示,並保留完整的交互能力。

該插件由 yaodongH 維護,旨在解決設計文檔與方案審閱的展示問題,將原本侷促的卡片升級爲支持行內評論、自動彈出、關閉不取消的全幅渲染彈窗。

核心功能

文檔渲染

  • 支持 GFM Markdown 全量渲染:標題層級、列表、表格、代碼塊(含語法高亮)、KaTeX 數學公式。
  • 彈窗內寬表格支持橫向滾動,避免佈局錯亂。

交互能力

  • 選項按鈕:單選即提交,與內置流程答案編碼一致。
  • 自定義意見:單行輸入框,用於補充修改意見。
  • 取消操作:以 ASK_CANCELLED 拒絕請求,編輯器恢復爲普通聊天狀態。
  • 一次性鎖:點擊後禁用所有操作,直到宿主響應落定;失敗自動重試並顯示錯誤。

彈窗行爲

  • 自動彈出:文檔類提問到達時彈窗立即打開。
  • 關閉不取消:點擊 X / Esc / 遮罩層關閉彈窗,請求保持待審狀態。
  • 重新展開:控制條上的「展開完整文檔」按鈕可重新打開彈窗。
  • 重連恢復:頁面刷新或斷連重連後,待審彈窗隨組件重開。

行內評論

  • 評論管理:支持添加、編輯、刪除行內評論。評論持久化存儲於 localStorage(key 格式:dsh-doc-review:v1:comments:<wait.key>)。
  • 提交反饋:存在評論時,彈窗頁腳與收起控制條切換爲「提交評論 / 取消」,選項按鈕與自定義輸入隱藏。提交時按行號升序聚合,格式爲 對於第N行{原文內容},我認爲應{評論內容}。
  • 編輯與刪除:評論提供編輯(✎)和刪除(🗑)按鈕,編輯態預填原文。

國際化

  • 插件自身文案支持中英文雙語切換。
  • plan-review 意圖的選項按鈕標籤(如 Approve)根據語義本地化顯示(如「確認執行」),但發送的答案值保持原標籤。

安裝與部署

環境要求

  • DeepSeek Harness >= 0.0.1
  • pnpm >= 11
  • Node >= 22

構建

在插件源碼目錄下執行:

pnpm install
pnpm run typecheck
pnpm run test
pnpm run build        # 構建 ESM 與 Client Bundle
pnpm run pack         # 打包爲 tarball

部署到 profile

  1. 編輯 ~/.dsh/profiles/web/package.json,將打包產物(如 dsh-doc-review-0.1.0.tgz)添加到 bundles 列表。
  2. 在 dependencies 中添加該產物路徑。
  3. 進入 ~/.dsh/profiles/web 目錄執行 pnpm install。
  4. 重啓 DeepSeek Harness Web 服務。

快速迭代

開發期間可跳過打包步驟,直接同步構建產物:

pnpm run build
rsync -a lib/ cordis.patch.yml dsh.plugin.json \
  ~/.dsh/profiles/web/node_modules/dsh-doc-review/

使用示例

觸發方式

在自適應模式下跑一個任務進入設計階段,或在標準模式下輸入 /plan,彈窗會自動彈出並渲染設計文檔。

評論與反饋

  1. 在彈窗中選中文本或點擊行號槽,添加評論。
  2. 審閱完畢後,點擊「提交評論」。
  3. 若需拒絕,點擊「去聊天裏說」。

標準端到端驗證

提交評論(有評論時)按行號升序聚合爲一條意見,每條逐字 對於第N行{原文內容},我認爲應{評論內容},經 { selected: [], custom } 信封發送;成功後清空評論與持久化。

適用場景

本插件接管以下文檔審閱路徑:

  1. 標準 plan-mode:輸入 /plan 後 exit_plan_mode 提交方案審閱。
  2. 自適應流水線:任務進入設計階段。

未被認領的提問(短問題、無標題 detail、多選、>3 選項、未知意圖等)原樣落回內置問題編輯器。

認領條件

滿足以下全部條件時接管:
- 單個 question(非多題批量)。
- multiSelect 非真。
- intent 爲 undefined 或 { kind: 'plan-review' }。
- detail 爲含 Markdown ATX 標題行(/^#{1,6}\s+\S/m)的字符串。
- 選項數 ≤ 3。

已知限制

  • 彈窗內寬表格保持橫向滾動。
  • 依賴項包括 @deepseek-ai/cordis、react、@deepseek-ai/dsh-client-runtime 等。
羽毛球分组比赛记分
小程序二维码

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

小夜