Files
aiops/docs/specs/repository/source-reconciliation.md
T
Logan.Li fd60361d93 chore: 统一本地服务器与远程仓库源码
- 合并 main 与 master 历史并以服务器结构为基线
- 保留迁移、数据保留、AWS 账单与部署安全能力
- 建立 SDD 规格和 CI 验证闭环
2026-08-05 20:03:25 +08:00

5.2 KiB
Raw Blame History

本地、生产服务器与远程仓库源码统一

字段 内容
状态 Accepted
级别 S3
负责人 Logan.Li
创建日期 2026-08-05
最后更新 2026-08-05
关联任务 以 /srv/aiops 为主统一本地、服务器和 Git 远程仓库

1. 背景与证据

本地工作区位于 main@7a16808,服务器工作区位于 master@f22e575,两端分别与对应远程分支一致,但都有大量未提交改动。内容审计发现服务器有 131 个本地不存在的源码文件,本地有 12 个服务器不存在的近期工程文件,另有 39 个同路径文件内容不同。当前生产二进制包含部分本地独有后端能力,因此直接单向覆盖任一工作区都会造成代码或可复现性丢失。

2. 目标与非目标

目标

  • 以服务器源码结构和行为为主形成唯一可构建源码。
  • 保留本地独有且已验证或已进入生产二进制的功能,不丢失近期账单、迁移、数据保留和 CI 工程能力。
  • 让远程 master 与 main、本地工作区和服务器源码指向同一提交。
  • 保留变更前完整备份,并验证构建、测试、迁移和生产健康状态。

非目标

  • 不提交生产 config.yaml、密钥、数据库、日志、备份、运行 PID 或历史二进制。
  • 不在本次整理业务数据或执行数据库清理。
  • 不改变生产运行参数和用户凭据。

3. 需求

功能需求

  • FR-01:统一提交必须包含服务器权威源码和本地独有的有效工程文件。
  • FR-02:远程 master 与 main 必须最终解析到同一提交。
  • FR-03:本地和服务器的受管源码必须与统一提交一致。
  • FR-04:生产配置和运行数据必须保留在 Git 管理范围之外或保持未被覆盖。

非功能需求

  • NFR-01:任何覆盖、删除或分支更新前必须生成可验证备份。
  • NFR-02:统一源码必须通过后端、前端和 Agent 的最低构建门禁。
  • NFR-03:生产服务切换后 /version、迁移状态、进程和错误日志必须正常。

4. 设计与边界

从 origin/master 创建独立 Git worktree。将服务器源码复制到该工作区,排除 .git、数据库、配置密钥、日志、缓存、备份、构建产物和历史二进制;再合并本地独有功能文件与本规格。测试通过后创建单一整合提交,并以普通快进或带租约保护的方式更新远程分支。

本地与服务器现有工作区在对齐前分别归档。对齐时仅重置受 Git 管理的源码;生产 config.yaml、数据库、日志、备份和运行文件保持不变。

5. 风险与可观测性

风险/失败模式 防护或降级 观测信号
服务器重构覆盖本地功能 隔离合并并保留本地独有文件,构建测试后才提交 Git diff、测试结果
误提交生产密钥或数据 明确排除运行配置、数据库、日志和备份,并审计提交文件 git status、提交清单
两个远程分支历史不同 先保存 bundle,再统一到经过验证的整合提交 git ls-remote
生产源码与二进制不一致 用统一源码重建 Linux 二进制并核对版本 /version、二进制 SHA-256

6. 验收标准

  • AC-01:给定统一提交,origin/master 与 origin/main 返回相同提交哈希。
  • AC-02:给定统一提交,本地和服务器受管源码执行内容校验时没有差异。
  • AC-03:统一源码通过 Go 后端、Agent、TypeScript、ESLint 和生产前端构建检查。
  • AC-04:生产服务使用统一源码构建的 Linux 二进制启动,/version、迁移状态和日志正常。
  • AC-05:生产配置、数据库、日志和备份未进入提交且未被覆盖。

7. 验证追踪

验收标准 测试或检查 结果
AC-01 git ls-remote origin refs/heads/main refs/heads/master Pending
AC-02 双向 rsync --dry-run --checksum --delete(排除运行文件) Pending
AC-03 go test/go vet/go build、tsc、ESLint、Vite build、Agent build Pass(2026-08-05)
AC-04 Linux 构建、/version、migrate status、进程和日志检查 Pending
AC-05 提交文件审计与生产文件哈希/存在性检查 Pending

8. 发布与回滚

发布前保存本地和服务器源码归档、Git bundle、生产二进制及数据库现有备份。若统一源码验证失败,不更新远程分支或现有工作区。若生产切换失败,恢复上一二进制并保留统一提交供离线修复。远程分支更新使用预期旧哈希或 --force-with-lease 防止覆盖并发提交。

9. 决策记录

日期 决策 原因与影响
2026-08-05 服务器源码为结构基线,本地独有有效能力采用合并而非删除 服务器包含较新的组件拆分,本地包含当前生产二进制所需的新能力
2026-08-05 生产配置与运行数据不纳入源码一致性 防止泄密和破坏运行环境

10. 遗留事项

  • 统一完成后应使用同一主分支开发,禁止继续在生产工作区直接形成长期未提交改动。