dsh-migrate-codex: 安全迁移 Codex 环境的 DSH 插件

前言

智能体开发者在使用 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 用于指导代理理解工作流:

  1. 打包环境:/migrate-codex prepare <dir>
    将白名单中的仓库和脏快照打包到一个目录中。

  2. 验证完整性:/migrate-codex verify <dir>
    检查 SHA256SUMS 校验和、Bundle 完整性以及凭证排除项是否符合安全规范。

  3. 恢复环境:/migrate-codex restore <dir>
    将打包的环境恢复到新机器上。如果目标路径已存在,该命令会中止执行,避免覆盖。

  4. 恢复单个工作树:/migrate-codex restore-worktree <dir> <slug>
    按需重建某一个脏工作树。

  5. 技能指导: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 流程,开发者可以放心地在不同机器间同步开发环境。

插件目录 | GitHub 仓库

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

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

小夜