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

63 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 源码基线与发布约定
## 本次生产源码归档
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 中单独列明。