dsh-git-rescue:DSH 救援恢復插件

前言

在 DSH 裏改配置、裝插件、跑長任務時,風險不只是“當前頁面崩了”。settings.yamlprofiles/skills/ 被改壞,sessions/ 會話留檔丟失,崩潰後不知道回退到哪個提交,單機故障後本地狀態無法找回,都會讓排障變成憑記憶重做。

dsh-git-rescue 是針對 DSH 的救援恢復插件,核心思路是把 .dsh 納入 git 版本管理,用 commit 歷史做回退,並用獨立守護進程、遠端備份、救援環境和專項恢復工具做兜底。

這是什麼

dsh-git-rescue 是 EIGHTfs 維護的 DSH 插件,定位爲一行:

DSH 救援恢復插件——守護進程 + .dsh git 倉庫管理 + 遠端備份 + 救援環境 + 專項恢復工具。

倉庫地址:

https://github.com/EIGHTfs/dsh-git-rescue

已覈實資料中:

  • 許可證:MIT
  • package.json 版本:2.5.0
  • engines 要求:dsh >=0.0.1node >=20.0.0

需要注意,資料中功能說明同時出現 2.0.0v2.5.0 等口徑,例如 README 功能總覽標註“當前 2.0.0 合併版”,而 package.json 版本爲 2.5.0。使用時建議以倉庫當前文件爲準。

核心能力

.dsh 本地版本管理

插件將 .dsh 作爲本地 git 倉庫管理,支持自動 commit、心跳、崩潰檢測。

commit 規範爲:

chore(guard): <觸發原因> | <自檢摘要>

這樣每次提交都能帶上觸發原因和自檢摘要,便於回看當時發生了什麼。

入庫邊界

已覈實資料給出以下邊界:

  • 憑據永不入庫:.credentials.yaml.env.anonymous-user-idgit-rescue/(token/heartbeat/events)
  • 大文件不入庫:node_modules/profiles/*/node_modules/
  • sessions/storages 爲 zstd 壓縮二進制,默認每天一次全量基線 + 常規增量排除

遠端備份

遠端備份支持 GitHub token / SSH key 雙方案。

遠端倉庫名默認爲:

.dsh@<dsh版本>.<設備ID>

如果 GitHub 不允許 . 開頭,自動降級爲:

dsh-at-...

token 只存本地,權限爲 600,絕不寫入任何 commit,僅用於 push 認證。

初始化時會檢測系統 git 是否可用;如果本機 git 缺少 git-remote-https,會自動降級爲 GitHub REST API 直連。

守護進程與開機自啓

插件使用開機自啓守護進程,啓動命令在 .dsh 目錄這一層,並寫入系統自啓。

guardian 作爲獨立進程,用於探活、git 回退、拉起、自檢、OOM 防護、OOM 故障識別、peak-resume。

拉起 DSH 時帶:

NODE_OPTIONS=--max-old-space-size=4096

崩潰恢復路徑

崩潰恢復按以下路徑處理:

故障分類 → 保留現場 → 壞點標記 → reset 到好提交 → 拉起 → 自檢

如果無法通過 git 回退恢復,資料中給出的進一步路徑是喚起救援環境協助。

救援環境

救援環境包括:

<dsh版本>@Save-clean
<dsh版本>@Save-test

當無法恢復時,可喚起 Save-clean,由純淨 dsh 加載插件 skills 目錄協助。

專項恢復工具

專項恢復工具包括:

plugin_config
boot_symlink
ro_volume
plugin_load
permission
session_repair

plugin-health 做聲明/產物一致性檢查,拉起前自動修復。

另有接管式重啓能力,路徑爲:

TERM → 輪詢恢復 → 驗證

會話恢復與自動續跑

崩潰後自動調 session-manager 續跑中斷會話,並受自動續跑全局閘門約束。

自動續跑全局閘門規則爲:

DSH 剛啓動默認關閉續跑;用戶手動開啓,或第一次手動對話後自動放行。

profile 還原點

profile 還原點會在 profile/配置變化提交 git 時自動打包 zip

恢復時手動執行:

unzip -o

覆蓋恢復,不依賴 git。

內置 LLM 自治診斷

guardian 可直連 LLM 分析故障並建議動作,校驗後執行。

資料中說明其使用 .credentials.yamlDEEPSEEK_API_KEY 調 deepseek API。

自動更新

自動更新支持強制跟隨 GitHub 最新穩定版,並支持大版本換代升級。

目錄結構查看

tools/dir-tree.mjs 是獨立工具,零依賴、全平臺兼容 Node.js。

可 CLI 運行或 import 調用,默認只列目錄 2 層:

tools/dir-tree.mjs

插件安裝門禁

package.json 描述提及“插件安裝門禁”。

已覈實資料未展開該門禁的具體規則。

Agent 工具

資料列出以下 Agent 工具:

git_rescue_status
git_rescue_init
git_rescue_backup
git_rescue_log
git_rescue_rollback
git_rescue_push
git_rescue_restart
git_rescue_repair
git_rescue_rescue_env
git_rescue_boot_autostart
git_rescue_link_recovery
git_rescue_restorepoints
git_rescue_restorepoint_build
git_rescue_restorepoint_restore

安裝與啓用

當前已覈實資料未提供安裝命令,因此不在此拼接安裝命令。

啓用前需要先確認環境:

dsh >=0.0.1
node >=20.0.0

插件會以當前 dsh 進程權限運行。安裝前應檢查源碼與許可證:

https://github.com/EIGHTfs/dsh-git-rescue
MIT

涉及 tokenSSH key.credentials.yaml 和系統自啓時,按自身安全要求審查。

適用場景與注意

適合以下場景:

  • 需要把 .dsh 配置、會話、skills 等狀態納入版本管理
  • 需要崩潰後自動探活、回退、拉起和自檢
  • 需要 GitHub 遠端備份
  • 需要純淨救援環境和專項恢復工具協助
  • 需要 profile 還原點作爲 git 之外的覆蓋恢復手段

注意:

  • 已覈實資料未包含安裝命令、星標數、分類、目錄頁 URL。
  • 版本號口徑不一致:README 功能總覽出現 2.0.0package.json2.5.0,profile 還原點相關說明出現 v2.5.0
  • git 還原package.json 描述中表述爲“只還原 profile”,在 README 中表述爲回退到好提交併提交現場;範圍表述不完全一致。
  • 名稱前綴大小寫在資料中存在差異:GitHub 鏈接爲 EIGHTfs/dsh-git-rescuepackage.json name 爲 dsh-git-rescue
  • DSH 插件目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係;本插件不是官方應用商店。

結尾

dsh-git-rescue 的價值在於把 DSH 的“配置狀態”和“崩潰恢復”拆成可執行路徑:版本管理交給 git,本機兜底交給 guardian,遠端備份交給 GitHub,極端故障再交給救援環境和純淨 dsh 協助。

GitHub:

https://github.com/EIGHTfs/dsh-git-rescue

已覈實資料未提供目錄頁 URL。

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

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

小夜