前言¶
智能体开发者在使用 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 流程,开发者可以放心地在不同机器间同步开发环境。