ai-chatbot/docs/source-and-release-policy.md
Codex 9155682238 chore(repo): make the recovered production baseline portable
Record source and release ownership, keep source line endings consistent,
and exclude local build/config backups from version control.

Restore default Next type paths, normalize CI checks across line endings,
and use portable Playwright and postbuild entry points on Windows/Linux.
Align the stale timeout fixture with the existing production timeout policy.

Application runtime files remain identical to production-snapshot-48-20261030.
Production build and focused regressions passed; pre-existing full-repository
lint findings remain documented instead of relaxing lint rules.
2026-10-30 16:19:08 +08:00

3.7 KiB
Raw Blame History

源码基线与发布约定

本次生产源码归档

2026 年 10 月 30 日完成只读核对:

  • 归档前的 main:e2a8f2dda3f190f78529b4419f295a356476c74b。
  • 原主线回退标签:main-before-production-sync-20261030。
  • 生产源码分支:codex/canvas-image-429-deploy-1001。
  • 生产源码提交:439fd56fe120fdb9f855b50fa4df9ce2e71bb72a。
  • 实际运行构建 ID:QhoygcZ4-x42PwCgCEj1d。
  • 生产目录另有 19 个已跟踪文件的修改和 6 个新增源码文件。

这些源码改动按原始内容归档在标签 production-snapshot-48-20261030, 25 个文件均经过 SHA256 校验。原始补丁和文件副本还保存在独立的本地备份中。 环境文件、模型配置备份和历史构建目录未加入源码归档。

源码归档标签表示核对时的服务器源码状态。实际运行的构建单独用构建 ID 标识, 不能仅凭服务器分支名或提交号认定某份构建已经部署。

接手分支 codex/production-48-20261030 在归档后只清理构建目录引用和仓库检查兼容性, 通过 PR 将已审查的生产源码同步回 main。本次源码同步不包含服务器部署或重启。

后续开发与合并

  1. 从最新 main 创建任务分支,使用 codex/<任务> 命名。
  2. 每次提交只暂存本次任务明确涉及的文件,检查暂存区差异和凭据。
  3. 通过 PR 合入 main,记录验证结果;未通过或未执行的检查须写明原因。
  4. 历史生产、试验和备份分支先保留。确认改动是否已收录后,再单独评审归档。
  5. 服务器上的临时修复应及时取回源码、审查、提交并合入主线,避免再次形成服务器独有状态。

源码换行由 .gitattributes 固定为 LF,Windows 批处理文件保留 CRLF。 这样源码断言和检查在 Windows、Linux 上读取到相同内容,避免仅因换行差异误报。

构建与发布

  • 从 main 的确定提交或对应发布标签构建,保留提交号与构建 ID 的对应关系。
  • 默认构建目录为 .next;独立发布可设置 NEXT_DIST_DIR。
  • next-env.d.ts 和 tsconfig.json 中不要提交某台服务器历史构建目录的引用。
  • .next-*、模型配置备份、临时目录和备份文件留在运行环境,不纳入版本控制。
  • 发布前保存可回滚版本,发布后核对实际运行构建、页面和必要业务流程。
  • 合并源码与部署是两个操作;部署需要单独明确目标和发布范围。

scripts/storage/ 下的迁移、审计脚本作为维护源码保存。 执行前须检查参数、目标存储和数据库配置;本次归档没有执行任何数据迁移。

验证入口

项目固定使用 pnpm 9.12.3,依赖按锁文件安装。 常规检查入口为 pnpm check:branch、pnpm check:quality 和 pnpm build, 运行环境与路由验收按 PR 模板记录。 pnpm lint 直接使用锁文件中的 Biome 版本执行现有检查,避免包装命令再次调用 npx。 历史 lint 或格式诊断应在 PR 中如实记录,不通过放宽规则或跳过检查掩盖。 Playwright 入口通过 Node 设置测试环境变量,辅助测试额外启用 react-server 模块条件, 可在 Windows 和 Linux 上使用同一条命令。 构建后的公共 source map 清理由 Node 完成,只处理工作区内当前构建目录的 static 文件。 原生 Agent 沙箱测试另外需要对应的运行时和隔离环境,应单独记录是否具备这些条件。

仓库工作流目前均为手动触发。若以后增加自动发布,须明确发布分支、目标环境、 审批和回滚方式,避免普通推送意外触发生产变更。

本次归档保留现有生产行为,历史质量问题和未执行的验收项目在合并 PR 中单独列明。