dsh-pr-watch:DeepSeek Harness 插件

前言

DeepSeek Harness (DSH) 在處理多個 Pull Request 時,智能體沒有記憶功能,每次查詢都需要重新從 GitHub 獲取數據。這會導致重複的 API 調用和上下文冗餘。dsh-pr-watch 插件旨在解決這一問題,它通過存儲快照並報告增量變化,讓智能體只需關注“最近發生了什麼”。

功能概覽

該插件通過註冊一個名爲 pr_watch 的工具來工作。核心能力包括:

  1. 跨倉庫追蹤:追蹤你 authored(作者身份)的所有 Pull Request,無需本地克隆倉庫。
  2. 狀態報告:區分並報告 PR 的變化狀態,包括已合併、已關閉未合併、變得陳舊。
  3. 增量更新:基於上次檢查的快照,只報告新增或變化的狀態。
  4. 處理重新打開:能夠識別那些被關閉後又重新打開的 PR。
  5. 防重複:合併和陳舊狀態在後續檢查中不會重複報告,直到其狀態再次發生根本性變化。

安裝與啓用

當前插件處於 pre-release(預發佈) 狀態,尚未發佈到 npm,因此官方安裝命令暫時無法使用。

官方安裝命令(待發布):

dsh plugin --profile PROFILE add dsh-pr-watch

當前安裝方式:
從源碼檢出倉庫後,先構建,再通過本地鏈接安裝。

pnpm install && pnpm run build
dsh plugin --profile PROFILE add link:.

依賴與環境

安裝前需確保環境滿足以下要求:
* Node.js:版本需大於等於 18。
* GitHub CLI (gh):必須安裝在 PATH 中,並已通過 gh auth login 完成認證。
* 憑據處理:插件不存儲任何憑據,完全依賴 gh 的 keyring 認證機制。

使用方法

可以通過調用工具 pr_watch 來檢查 PR 狀態。調用時傳入參數配置。

調用示例:

{
  "staleDays": 14,
  "all": false
}

參數說明:
* staleDays:整數類型,PR 無活動多少天后會被標記爲陳舊,默認爲 14。範圍限制在 1 到 3650 之間,0 會被拒絕。
* all:布爾類型,設爲 true 時列出所有打開的 PR,而不是僅列出變化。默認爲 false。

輸出示例:
插件會輸出三類狀態的 PR:

✅ Merged (2):
  octo/repo#41 — Add Russian locale (last activity 1 day ago)
  octo/repo#38 — Fix broken link (last activity 3 days ago)

⏳ Became stale (1):
  octo/repo#29 — docs: clarify install steps (last activity 21 days ago)

🆕 Newly noticed (1):
  octo/repo#44 — Add MCP server entry (last activity today)

工作原理與注意事項

該插件採用了兩階段查詢策略:
1. 枚舉:獲取你 authored 的所有打開的 PR。
2. 解析:將當前打開的 PR 集合與上次快照進行比對,找出那些不在當前集合中(即已關閉或已合併)的 PR,並單獨查詢其最終狀態。

由於需要區分“已合併”和“關閉未合併”,簡單的 diff 無法滿足需求。插件通過這種機制確保了狀態的準確性。

注意事項:
* 插件僅依賴 gh CLI 進行認證,不保存 Token,安全性由 gh 的 keyring 保證。
* 對於未克隆的倉庫,插件通過 owner/repo#number 的形式進行追蹤,因此本地無需 checkout。

總結

dsh-pr-watch 爲 DSH 智能體提供了對 PR 變化的有效追蹤能力,減少了重複檢查的開銷。目前代碼實現已完成,測試通過,但尚未發佈,需通過源碼方式安裝使用。

羽毛球分组比赛记分
小程序二维码

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

小夜