前言¶
DeepSeek Harness 的插件生態旨在解決功能擴展與流程自動化的問題。在本地開發或調試 Harness 時,開發者常面臨代碼同步、依賴安裝及服務重啓的重複操作。dsh-selfup 插件通過封裝這些操作,提供了統一的維護入口,使開發者能夠在 DSH 會話中直接管理 Harness 倉庫的狀態與部署。
這是什麼¶
這是一個由 geokkjer 維護的插件包,用於管理 DeepSeek Harness 倉庫的自更新與部署。它將 Git 操作、依賴安裝、CLI 安裝及 systemd 服務管理整合爲四個工具命令,運行在 Harness 倉庫的檢出目錄中。
核心功能¶
插件提供四個主要工具:
-
dsh_update_status
查看倉庫和部署狀態的只讀快照。包括倉庫路徑、分支、HEAD 提交、與 origin/master 的領先/落後狀態、工作區髒文件數量、CLI 版本、構建二進制文件是否存在以及 systemd 單元狀態。 -
dsh_update
執行更新流程,步驟依次爲git fetch、git merge --ff-only、pnpm install和pnpm run build。每個步驟獨立運行並可跳過。若構建失敗,會自動嘗試清理後重試。更新成功後可自動重啓服務。 -
dsh_install
安裝 dsh CLI 工具。mode=local(默認)會將構建好的 CLI 寫入~/.local/bin/dsh,或回退到源碼啓動器;mode=arch則利用makepkg從 npm tarball 構建 Arch 包。 -
dsh_systemd
管理 dsh web 的 systemd 用戶服務。支持寫入服務文件、啓動、停止、重啓和狀態查詢。
安裝與啓用¶
安裝插件到 web 配置文件:
dsh plugin --profile web add dsh-selfup
插件安裝後,重啓 dsh web 服務器即可在會話中使用上述工具。
典型用法¶
- 檢查當前狀態:
dsh_update_status
- 更新代碼並重新構建:
dsh_update
- 在本地安裝 CLI 工具:
dsh_install mode=local
- 重啓 dsh web 服務:
dsh_systemd action=restart
適用場景與注意¶
- 環境要求:需要 DeepSeek Harness 的倉庫檢出(通過
git rev-parse --show-toplevel定位),以及git、node、pnpm命令。若使用 Arch 包構建模式,需額外安裝makepkg。 - 會話影響:
dsh_systemd的start或restart操作會終止當前調用會話,新代碼僅在會話終止後生效。 - 權限限制:插件遵循沙盒策略,Shell 調用的寫入操作(如安裝啓動器、寫入服務文件)受限於當前會話的沙盒策略,而非執行器的默認限制。
短結尾¶
dsh-selfup 通過將代碼更新、依賴管理和服務運維封裝進 DSH 插件,降低了 Harness 本地開發的手動成本。結合其 MIT 許可證,開發者可自由集成並擴展。