发布集成:合并最新采购分支与 main 后更新线上 Server/Web #234

Open
opened 2026-09-07 11:51:38 +08:00 by ila · 2 comments
Owner

来源与目标

2026-09-07 用户要求将最新代码打包并使用指定本机凭据更新 185.216.248.75。目标为 Server + Web 发布,包含 #233;不安装手机 APK、不设为当前 Agent 版本、不创建任务或订单、不付款。凭据仅在内存中使用,不复制进工单或发布包。

发布前只读事实

  • 当前工作分支 fix/230-horizontal-spec-selection,HEAD 1900dab32e9c21af3b59c60448e69a7452a6cf03;未提交的服务配置和文档改动及未跟踪文件不纳入发布。
  • 已读取服务器 RELEASE:线上 /home/goauto/current 指向 /home/goauto/releases/20260903-2d6d244-r1,记录 commit=2d6d244,GoAuto 与 Nginx 当前 active。
  • 已 fetch origin/main,最新 81c1a7e;main 上 #194/#195/#197/#198/#199 的 7 个提交不在当前 HEAD 历史中,当前源码未发现 #195/#198/#199 相关任务实现及迁移。不能把单一工作分支当作所有已完成代码的集成版本。
  • 线上迁移表已有 1788290000000、1788354164329、1788357000000,说明这些历史迁移不能再当新迁移重复实施;当前源码遗漏它们与线上 schema 不一致。
  • 线上未执行当前分支新增的 1787983900000、1787984000000、1787984100000。#213/#216 既有记录只证明本地迁移授权与执行,不覆盖本次线上数据修复。
  • 本次只做只读预检;没有上传/覆盖发布目录、切换 current、执行迁移或重启服务。

已确认方案(2026-09-07 已授权并完成发布)

  1. 将当前采购分支与 origin/main 集成,保留双方已实现功能;解决真实冲突并测试,不盲目选择一侧。先固定集成提交,再打包 Linux amd64 Server 和生产 Web。
  2. 使用既有发布目录/current 原子切换方式,保留服务器敏感配置、文件数据、APK 目录与旧版本;不使用本机 settings.yml 覆盖线上。既有定时任务启停状态保持原样,关闭的任务不启用。
  3. 线上安全备份后,仅执行确认的缺失迁移:1787983900000(#213 店铺标准化键回填)、1787984000000 与 1787984100000(#216 规格角色修复及补充修复)。后两项会清理已无可靠引用且无映射的错误 import 规格值,保留人工事实、原始 JSON 与历史任务/订单;不得无授权执行。
  4. 启动沿用已有采购员权限对账,不扩大权限范围。切换前复核无运行中任务/同步/匹配;如有活动执行则等待或向用户说明,不擅自重置。
  5. 重启 GoAuto 并按需要 reload Nginx,验证进程、外部入口、认证边界、静态资源版本与相关只读接口。失败时回到旧发布目录;迁移回退另行评估,不删除数据。

依赖、影响与风险

  • 交付单元:Server/Web 与发布证据;Android 本轮不变。依赖 #213/#216 数据修复、main 的历史功能与 #233。
  • 发布不能与相同线上实例其他发布并行。
  • 用户已于 2026-09-07 明确授权代码集成、线上备份、三项数据修复/清理迁移、既有启动权限对账及发布重启;已实施,详见发布证据评论。
  • 不改采购业务范围,不运行真机,不创建订单或执行支付。

验收与验证计划

  • 固定集成提交、构建产物 SHA-256、迁移前后版本与脱敏计数;Server 受影响及集成测试、Web 定向 lint/构建与相关模拟浏览器测试。
  • #233 已有 3 单测、4 模拟 E2E、定向 lint 和生产构建通过;全量 Web lint 有既有 purchase-tasks/index.vue 缩进错误,不能冒充全量通过,集成后按实际结果记录。
  • 验证 #195/#198/#199 能力未丢失、#233 设备记忆生效;不通过真实采购创建来验收。
  • 完成后回写发布目录、版本、验证及回滚点并保持待验收。

文档影响

复用当前 Deployment-and-Operations 发布拓扑,不因单次发布重复更新 Wiki;如果集成确认后改变长期运维命令或契约,再更新对应页面并按规则同步。

工具回退

当前无 Gitea MCP,按规则使用项目已忽略配置进行 Gitea API 交互。SSH 复用已有 known_hosts 校验,凭据不输出。

## 来源与目标 2026-09-07 用户要求将最新代码打包并使用指定本机凭据更新 185.216.248.75。目标为 Server + Web 发布,包含 #233;不安装手机 APK、不设为当前 Agent 版本、不创建任务或订单、不付款。凭据仅在内存中使用,不复制进工单或发布包。 ## 发布前只读事实 - 当前工作分支 fix/230-horizontal-spec-selection,HEAD 1900dab32e9c21af3b59c60448e69a7452a6cf03;未提交的服务配置和文档改动及未跟踪文件不纳入发布。 - 已读取服务器 RELEASE:线上 /home/goauto/current 指向 /home/goauto/releases/20260903-2d6d244-r1,记录 commit=2d6d244,GoAuto 与 Nginx 当前 active。 - 已 fetch origin/main,最新 81c1a7e;main 上 #194/#195/#197/#198/#199 的 7 个提交不在当前 HEAD 历史中,当前源码未发现 #195/#198/#199 相关任务实现及迁移。不能把单一工作分支当作所有已完成代码的集成版本。 - 线上迁移表已有 1788290000000、1788354164329、1788357000000,说明这些历史迁移不能再当新迁移重复实施;当前源码遗漏它们与线上 schema 不一致。 - 线上未执行当前分支新增的 1787983900000、1787984000000、1787984100000。#213/#216 既有记录只证明本地迁移授权与执行,不覆盖本次线上数据修复。 - 本次只做只读预检;没有上传/覆盖发布目录、切换 current、执行迁移或重启服务。 ## 已确认方案(2026-09-07 已授权并完成发布) 1. 将当前采购分支与 origin/main 集成,保留双方已实现功能;解决真实冲突并测试,不盲目选择一侧。先固定集成提交,再打包 Linux amd64 Server 和生产 Web。 2. 使用既有发布目录/current 原子切换方式,保留服务器敏感配置、文件数据、APK 目录与旧版本;不使用本机 settings.yml 覆盖线上。既有定时任务启停状态保持原样,关闭的任务不启用。 3. 线上安全备份后,仅执行确认的缺失迁移:1787983900000(#213 店铺标准化键回填)、1787984000000 与 1787984100000(#216 规格角色修复及补充修复)。后两项会清理已无可靠引用且无映射的错误 import 规格值,保留人工事实、原始 JSON 与历史任务/订单;不得无授权执行。 4. 启动沿用已有采购员权限对账,不扩大权限范围。切换前复核无运行中任务/同步/匹配;如有活动执行则等待或向用户说明,不擅自重置。 5. 重启 GoAuto 并按需要 reload Nginx,验证进程、外部入口、认证边界、静态资源版本与相关只读接口。失败时回到旧发布目录;迁移回退另行评估,不删除数据。 ## 依赖、影响与风险 - 交付单元:Server/Web 与发布证据;Android 本轮不变。依赖 #213/#216 数据修复、main 的历史功能与 #233。 - 发布不能与相同线上实例其他发布并行。 - 用户已于 2026-09-07 明确授权代码集成、线上备份、三项数据修复/清理迁移、既有启动权限对账及发布重启;已实施,详见发布证据评论。 - 不改采购业务范围,不运行真机,不创建订单或执行支付。 ## 验收与验证计划 - 固定集成提交、构建产物 SHA-256、迁移前后版本与脱敏计数;Server 受影响及集成测试、Web 定向 lint/构建与相关模拟浏览器测试。 - #233 已有 3 单测、4 模拟 E2E、定向 lint 和生产构建通过;全量 Web lint 有既有 purchase-tasks/index.vue 缩进错误,不能冒充全量通过,集成后按实际结果记录。 - 验证 #195/#198/#199 能力未丢失、#233 设备记忆生效;不通过真实采购创建来验收。 - 完成后回写发布目录、版本、验证及回滚点并保持待验收。 ## 文档影响 复用当前 Deployment-and-Operations 发布拓扑,不因单次发布重复更新 Wiki;如果集成确认后改变长期运维命令或契约,再更新对应页面并按规则同步。 ## 工具回退 当前无 Gitea MCP,按规则使用项目已忽略配置进行 Gitea API 交互。SSH 复用已有 known_hosts 校验,凭据不输出。
Author
Owner

2026-09-07 用户明确授权 #234:集成最新采购分支与 main、测试打包、线上备份、执行 1787983900000/1787984000000/1787984100000 三项迁移及既有启动权限对账,随后发布重启 GoAuto;定时任务开关保持原样。开始实施,使用隔离发布工作区保护主工作区未提交改动,不执行真实采购、订单或支付。Gitea MCP 不可用,继续按已记录的 API 回退方式操作。

2026-09-07 用户明确授权 #234:集成最新采购分支与 main、测试打包、线上备份、执行 1787983900000/1787984000000/1787984100000 三项迁移及既有启动权限对账,随后发布重启 GoAuto;定时任务开关保持原样。开始实施,使用隔离发布工作区保护主工作区未提交改动,不执行真实采购、订单或支付。Gitea MCP 不可用,继续按已记录的 API 回退方式操作。
Author
Owner

发布完成,待用户验收(2026-09-07)

集成与版本

  • 集成提交 bf58ad0005da9c05ffe3f1e46acb060bc8d6e727,父提交 1900dab 与 81c1a7e。已推送 release/234-integrated,并将 origin/main 快进到相同提交,避免再次从缺少另一分支能力的版本发布。
  • 真实冲突逐项处理:保留 #195 自动匹配入口、#197 共享 AI 调用超时和结构化错误、#198 AI 解析确认及候选失效校验、#199 执行日志、后续采购探测/重试行为和 #233 设备偏好。规格可信性合并同时保留 uncertain 已有目标放行、人工/AI 已确认结果放行和空目标阻断,补充相应测试。
  • 文档冲突保留当前采购分支中已从线上 Wiki 同步的较新镜像,不用 main 的旧镜像覆盖。没有新增长期产品/运行契约,不改 Wiki、不重复同步。
  • 主工作区未提交的配置、文档与未跟踪文件全部保留;没有修改本地运行服务或安装 APK。集成工作区为 D:/OPC/goauto-worktrees/issue-234。

验证

  • Server:go test ./... 全量通过(本机 CGO_ENABLED=1);Linux amd64、CGO_ENABLED=0 生产二进制构建通过。
  • Web:受影响文件定向 ESLint、6 项 Jest、6 项模拟 Playwright、生产构建全部通过。浏览器覆盖设备偏好、定时任务日志入口和手动自动匹配摘要;业务 API 全部模拟,未创建真实任务/订单或调用真实 AI。
  • DevHarness check --strict 和 git diff --check 通过。
  • 全量 Web lint 的既有 purchase-tasks/index.vue 缩进问题保持不变,沿用 #233 已记录的限制,不宣称全量 lint 通过。

线上备份和迁移

  • 停服前及停服后再次检查采集、采购、SYB 同步、规格匹配、AI 解析和执行日志,没有 running/order_submit_started 记录。
  • 备份目录:/home/goauto/backups/20260907-bf58ad0-234;目录权限 0700,数据库备份 0600。包含数据库和旧配置备份,没有下载到本机或写入 Git。
  • database.sql 大小 25,478,205 bytes,SHA-256 041a8c58be47d3174779851f8b25a74d609c171d24f819ab3c7f0d2863d1281b。
  • 只执行缺失的 1787983900000、1787984000000、1787984100000;已存在的 #195/#198/#199 迁移保持原样。
  • 实际修复 3 条店铺标准化键、22 条 SYB 规格角色、14 个关联虾皮规格档案;后置校验所有目标迁移版本存在。
  • 迁移前后比对确认:SYB 原始 JSON、人工确认行关键事实、采购/采集主任务和 attempt 校验和不变;sys_job 启停、Cron、调用目标与参数不变。仍只有 SYB 自动同步启用,其他原关闭任务保持关闭。
  • 清理仅限 #216 已授权的错误且无引用/无映射 import 规格值;可从上述数据库备份恢复,恢复须独立评估,不擅自回滚数据库。
  • 迁移进程 SQL 输出仅在内存捕获且不输出/落盘,工单只记录计数。

发布与线上核验

  • 新目录:/home/goauto/releases/20260907-bf58ad0-234。
  • 原回滚目录:/home/goauto/releases/20260903-2d6d244-r1,完整保留。
  • 保留服务器配置(writertimeout=620)与私有 var 数据;不拿本机配置覆盖线上。原子切换 current,启动 GoAuto,Nginx 配置检查通过后 reload。
  • goauto.service=active/running,Nginx=active;运行中 /proc/PID/exe 指向新目录且 SHA-256 与本地构建一致。
  • 外部入口 http://185.216.248.75:9527/ 已返回新版 index;SYB 商品、定时任务和虾皮商品 JS 逐项 SHA-256 与构建一致。
  • getinfo、执行日志和自动匹配最近运行接口返回既有未登录 JSON 拒绝(HTTP 200 / code 401),没有凭据泄露或匿名返回业务数据。不以 /health 的静态页面回退作为健康结论。
  • 未使用真实管理员会话验证业务数据界面,未触发真实同步、AI、采购或支付,等待用户登录验收。

构建校验值

  • 发布包 goauto-234.tar.gz:7fdfa3592b4db78a2f93794e3d516605df04a60d68a15ea935b2eb1127f84763。
  • Server:acecdef69f053f52b36f5ebf2cb23ed3c31c4de4da30d8960eecea7492fdc4a8。
  • Web index:155127c38310b938b5074d7102cc7afcbdc582e5d4eb8d28554ac513d28003af。

工单保持 open / 待验收。建议强制刷新线上 Admin,验证 #233 设备记忆和定时任务“日志”入口。

## 发布完成,待用户验收(2026-09-07) ### 集成与版本 - 集成提交 bf58ad0005da9c05ffe3f1e46acb060bc8d6e727,父提交 1900dab 与 81c1a7e。已推送 release/234-integrated,并将 origin/main 快进到相同提交,避免再次从缺少另一分支能力的版本发布。 - 真实冲突逐项处理:保留 #195 自动匹配入口、#197 共享 AI 调用超时和结构化错误、#198 AI 解析确认及候选失效校验、#199 执行日志、后续采购探测/重试行为和 #233 设备偏好。规格可信性合并同时保留 uncertain 已有目标放行、人工/AI 已确认结果放行和空目标阻断,补充相应测试。 - 文档冲突保留当前采购分支中已从线上 Wiki 同步的较新镜像,不用 main 的旧镜像覆盖。没有新增长期产品/运行契约,不改 Wiki、不重复同步。 - 主工作区未提交的配置、文档与未跟踪文件全部保留;没有修改本地运行服务或安装 APK。集成工作区为 D:/OPC/goauto-worktrees/issue-234。 ### 验证 - Server:go test ./... 全量通过(本机 CGO_ENABLED=1);Linux amd64、CGO_ENABLED=0 生产二进制构建通过。 - Web:受影响文件定向 ESLint、6 项 Jest、6 项模拟 Playwright、生产构建全部通过。浏览器覆盖设备偏好、定时任务日志入口和手动自动匹配摘要;业务 API 全部模拟,未创建真实任务/订单或调用真实 AI。 - DevHarness check --strict 和 git diff --check 通过。 - 全量 Web lint 的既有 purchase-tasks/index.vue 缩进问题保持不变,沿用 #233 已记录的限制,不宣称全量 lint 通过。 ### 线上备份和迁移 - 停服前及停服后再次检查采集、采购、SYB 同步、规格匹配、AI 解析和执行日志,没有 running/order_submit_started 记录。 - 备份目录:/home/goauto/backups/20260907-bf58ad0-234;目录权限 0700,数据库备份 0600。包含数据库和旧配置备份,没有下载到本机或写入 Git。 - database.sql 大小 25,478,205 bytes,SHA-256 041a8c58be47d3174779851f8b25a74d609c171d24f819ab3c7f0d2863d1281b。 - 只执行缺失的 1787983900000、1787984000000、1787984100000;已存在的 #195/#198/#199 迁移保持原样。 - 实际修复 3 条店铺标准化键、22 条 SYB 规格角色、14 个关联虾皮规格档案;后置校验所有目标迁移版本存在。 - 迁移前后比对确认:SYB 原始 JSON、人工确认行关键事实、采购/采集主任务和 attempt 校验和不变;sys_job 启停、Cron、调用目标与参数不变。仍只有 SYB 自动同步启用,其他原关闭任务保持关闭。 - 清理仅限 #216 已授权的错误且无引用/无映射 import 规格值;可从上述数据库备份恢复,恢复须独立评估,不擅自回滚数据库。 - 迁移进程 SQL 输出仅在内存捕获且不输出/落盘,工单只记录计数。 ### 发布与线上核验 - 新目录:/home/goauto/releases/20260907-bf58ad0-234。 - 原回滚目录:/home/goauto/releases/20260903-2d6d244-r1,完整保留。 - 保留服务器配置(writertimeout=620)与私有 var 数据;不拿本机配置覆盖线上。原子切换 current,启动 GoAuto,Nginx 配置检查通过后 reload。 - goauto.service=active/running,Nginx=active;运行中 /proc/PID/exe 指向新目录且 SHA-256 与本地构建一致。 - 外部入口 http://185.216.248.75:9527/ 已返回新版 index;SYB 商品、定时任务和虾皮商品 JS 逐项 SHA-256 与构建一致。 - getinfo、执行日志和自动匹配最近运行接口返回既有未登录 JSON 拒绝(HTTP 200 / code 401),没有凭据泄露或匿名返回业务数据。不以 /health 的静态页面回退作为健康结论。 - 未使用真实管理员会话验证业务数据界面,未触发真实同步、AI、采购或支付,等待用户登录验收。 ### 构建校验值 - 发布包 goauto-234.tar.gz:7fdfa3592b4db78a2f93794e3d516605df04a60d68a15ea935b2eb1127f84763。 - Server:acecdef69f053f52b36f5ebf2cb23ed3c31c4de4da30d8960eecea7492fdc4a8。 - Web index:155127c38310b938b5074d7102cc7afcbdc582e5d4eb8d28554ac513d28003af。 工单保持 open / 待验收。建议强制刷新线上 Admin,验证 #233 设备记忆和定时任务“日志”入口。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#234