build: 独立封装发布依赖并用写入时复制控制空间 #3

Merged
WuYongJie merged 1 commits from codex/production-48-runtime-snapshot into main 2026-10-30 18:43:39 +08:00
Collaborator

服务器的 pnpm-lock.yaml 相同,但现有 node_modules 未应用其中声明的两个前端补丁,且一些 public 文本文件只有换行差异。仅复用服务器依赖会让构建与运行环境不一致。

发布制品改为携带冻结安装的完整依赖、public 和文件/链接校验清单。生产上使用 XFS 写入时复制为内容相同的文件创建独立 inode,改变的文件从制品写入,保留旧 checkout、依赖、public 未跟踪资源和回滚构建。拒绝不支持克隆的文件系统,传输前及解包时检查 1 GiB 空间保留;不通过放宽依赖或资源校验绕过差异。PM2 仅指向该发布目录自己的 Next.js,切换前测试 sharp 原生模块。

验证:20 项 Python 回滚/路径/容量/运行副本测试通过,秘密检查和 diff 检查通过;生产 XFS reflink=1 已只读确认。此前固定 main 的 Linux 构建、TypeScript 及四条候选路由烟测已通过。本提交合并后会重新执行实际构建、完整制品预发布与生产验活。原有全量 lint 历史诊断保持记录,没有改动应用业务代码、数据库或原生 Agent。

服务器的 pnpm-lock.yaml 相同,但现有 node_modules 未应用其中声明的两个前端补丁,且一些 public 文本文件只有换行差异。仅复用服务器依赖会让构建与运行环境不一致。 发布制品改为携带冻结安装的完整依赖、public 和文件/链接校验清单。生产上使用 XFS 写入时复制为内容相同的文件创建独立 inode,改变的文件从制品写入,保留旧 checkout、依赖、public 未跟踪资源和回滚构建。拒绝不支持克隆的文件系统,传输前及解包时检查 1 GiB 空间保留;不通过放宽依赖或资源校验绕过差异。PM2 仅指向该发布目录自己的 Next.js,切换前测试 sharp 原生模块。 验证:20 项 Python 回滚/路径/容量/运行副本测试通过,秘密检查和 diff 检查通过;生产 XFS reflink=1 已只读确认。此前固定 main 的 Linux 构建、TypeScript 及四条候选路由烟测已通过。本提交合并后会重新执行实际构建、完整制品预发布与生产验活。原有全量 lint 历史诊断保持记录,没有改动应用业务代码、数据库或原生 Agent。
WuYongJie added 1 commit 2026-10-30 18:43:27 +08:00
WuYongJie merged commit 10efb4c1e7 into main 2026-10-30 18:43:39 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lunanting/ai-chatbot#3
No description provided.