dsh-git-change: 在 DSH 輸入框顯示 Git 狀態角標

DSH(DeepSeek Harness)採用插件化架構,允許開發者根據需求擴展功能。在開發智能體或調試代碼時,開發者需要頻繁確認當前分支的變更情況。dsh-git-change 插件通過在界面右上角展示角標,解決了這一問題,無需離開輸入框即可獲取狀態。

插件由 melo7up 維護,當前獲得 4 顆星,基於 MIT 許可證開源。

核心功能

該插件主要在 DSH 的輸入框工具行右側、模型選擇器左側顯示一枚角標。

  • 顯示邏輯:
    • 如果當前工作區未在 git 倉庫中,整個圖標不渲染。
    • 默認顯示一枚 14px 的灰色分支圖標,無圓底。
    • 懸停時,向上彈出浮層,顯示分支名、變更文件數以及新增/刪除的行數(綠色/紅色)。
  • 統計口徑:
    • 統計本分支自己 commit 但未 push 的提交(按淨差異計)。
    • 統計工作區已暫存 + 未暫存文件。
    • 統計未跟蹤文件(按整文件行數計入新增)。
  • 排除規則:
    • 忽略 git pull 別人的提交。
    • 忽略 merge 帶進來的內容。
    • 無 upstream(如新 git init 或 detached HEAD)時,只統計工作區。
  • 刷新機制:
    • 掛載時、會話狀態變化時、懸停時自動刷新。
    • 請求失敗時自動重試。

安裝與啓用

安裝過程分爲兩步:配置本地依賴路徑並掛載到 profile。

  1. 編輯 profile/package.json,添加依賴與 bundle 配置:
    {
      "dependencies": {
        "dsh-git-change": "link:/absolute/path/to/dsh-git-change"
      },
      "dsh": {
        "profile": {
          "bundles": [ ..., "dsh-git-change" ]
        }
      }
    }
*注意:本地開發通常使用 `link:/...` 路徑。*
  1. 進入 profile 目錄並執行安裝命令,建立軟鏈並寫入 lockfile:
    cd ~/.dsh/profiles/desktop && pnpm install
  1. 重啓 DSH。配置僅在啓動時裝配,且運行中的 host 會緩存模塊,修改代碼後必須重啓才能生效。

典型用法

安裝並重啓後,插件會自動生效。若需驗證安裝或調試,可使用提供的驗證腳本:

  • 驗證客戶端:
    node tools/verify-client.mjs
  • 驗證主機:
    node tools/verify-host.mjs

注意事項與限制

  • 位置漂移:角標在 conversation.input.right,受模型名長度影響,會在模型選擇器左側左右漂移(模型名越長,角標越靠左)。
  • 統計上限:未跟蹤文件統計有上限(最多 200 個文件或單文件 1MB),超時顯示“統計已截斷”。
  • 非 Live 會話:在歷史會話或歸檔會話中,由於拿不到 header,角標不會顯示。
  • 權限模式:插件以只讀模式運行,設置了 GIT_OPTIONAL_LOCKS=0、GIT_TERMINAL_PROMPT=0 和 LC_ALL=C。
  • 無構建步驟:客戶端代碼需直接調用 window.__ModuleLoader__.load 加載,不經過打包工具。

結語

dsh-git-change 提供了輕量級的 Git 狀態反饋,幫助開發者更直觀地掌握當前分支的變更情況。如需查看源碼或提交 Issue,可訪問 GitHub 倉庫。

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

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

小夜