前言¶
智能體開發者在使用 DeepSeek Harness (DSH) 進行開發時,經常需要在不同的機器之間遷移 Codex 環境。手動複製代碼倉庫、配置文件和數據庫快照容易導致文件遺漏,甚至可能將敏感憑證(如 .git/config、SSH 密鑰)意外帶出或泄露。
dsh-migrate-codex 是一個 DSH 插件,它提供了一套標準化的流程,用於安全地打包、驗證和恢復 Codex 環境。它確保只遷移被授權的倉庫,並在傳輸過程中嚴格排除敏感信息。
插件概覽¶
- 名稱:dsh-migrate-codex
- 維護者:ChengxiuCDP
- 分類:工作流
- 許可證:MIT
安裝與啓用¶
在 DSH 的某個 Profile 下安裝該插件:
dsh plugin --profile <name> add <repo URL or npm package>
安裝後需要重啓該 Profile 以使功能生效。
核心能力¶
該插件提供以下命令行能力,以及一個配套的 Skill 用於指導代理理解工作流:
-
打包環境:
/migrate-codex prepare <dir>
將白名單中的倉庫和髒快照打包到一個目錄中。 -
驗證完整性:
/migrate-codex verify <dir>
檢查 SHA256SUMS 校驗和、Bundle 完整性以及憑證排除項是否符合安全規範。 -
恢復環境:
/migrate-codex restore <dir>
將打包的環境恢復到新機器上。如果目標路徑已存在,該命令會中止執行,避免覆蓋。 -
恢復單個工作樹:
/migrate-codex restore-worktree <dir> <slug>
按需重建某一個髒工作樹。 -
技能指導:Skill
codex-migration
代理可以通過該 Skill 學習完整的遷移工作流、安全紅線以及如何對齊 Codex 配置與 DeepSeek Harness。
使用示例¶
在 DSH 會話中,可以通過自然語言指令觸發流程,或直接調用命令:
# 1. 先進行驗證
/migrate-codex verify ~/Desktop/codex-migration
# 2. 驗證通過後執行恢復
/migrate-codex restore ~/Desktop/codex-migration
配置與自定義白名單¶
插件的發佈版本僅包含佔位符示例(如 example-primary)。開發者需要配置實際的白名單。
環境變量¶
CODEX_MIGRATE_TABLE:指定白名單文件的路徑。CODEX_MIGRATE_MAIN_SLUG:指定包含工作樹的倉庫 Slug(默認爲example-primary)。
白名單文件¶
在 bin/whitelist.local.tsv 文件中定義實際的白名單,該文件通常應被加入 .gitignore 以防止提交。
文件格式爲 TSV,每行包含四列:slug、role、source-path、required。
示例內容:
my-main-repo primary ~/my-main-repo yes
安全設計¶
該插件在設計上遵循以下安全原則:
- 白名單機制:僅遷移被明確列入白名單的倉庫。
- 零憑證泄露:Git bundles 僅傳輸提交歷史,絕不包含
.git/config,因此不會將遠程憑證帶出源機器。 - 完整性校驗:所有文件傳輸後都會進行 SHA256SUMS 校驗。
- 憑證排除:自動排除
auth.json、.env*、私鑰、證書和 SQLite 文件。 - 冪等性與原子性:恢復操作如果目標存在則中止,且在失敗時不會留下半恢復狀態的文件系統。
注意事項¶
- 該插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼。
- 恢復操作不會覆蓋已存在的目標目錄,確保操作的安全性。
總結¶
dsh-migrate-codex 解決了 Codex 環境跨機器遷移中的文件管理混亂和安全隱患問題。通過標準的 prepare-verify-restore 流程,開發者可以放心地在不同機器間同步開發環境。