2026-09-10 用户明确授权合并 main 并部署线上。main 已快进并推送至 2cb78ad;线上基线核对为 ca997f6,差异仅本工单两个 Server 文件。开始 Linux Server 构建及独立 release 发布,保留现有 Web/配置/持久化目录,重启 goauto.service;不执行数据库迁移、不调整任务开关、不触发真实采集或采购。发布前已确认各业务运行计数为 0,切换前再次核对;旧 release 保留用于异常回退。
2026-09-10 用户明确授权合并 main 并部署线上。main 已快进并推送至 2cb78ad;线上基线核对为 ca997f6,差异仅本工单两个 Server 文件。开始 Linux Server 构建及独立 release 发布,保留现有 Web/配置/持久化目录,重启 goauto.service;不执行数据库迁移、不调整任务开关、不触发真实采集或采购。发布前已确认各业务运行计数为 0,切换前再次核对;旧 release 保留用于异常回退。
ila
changed title from fix(collection): 当前页采集同任务重试再次识别商品触发空状态校验失败(已实现,待部署验收) to fix(collection): 当前页采集同任务重试再次识别商品触发空状态校验失败(已上线,待验收)2026-09-10 14:32:37 +08:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
来源与目标
2026-09-10 用户反馈当前页采集失败后重试报服务端处理失败;确认最小修复方案后要求“create task and do it”。恢复同一个采集任务重新识别同一商品并继续执行,不创建替代任务或删除商品。
基线与根因
核验基线 main ca997f61087875802f8b57e074ced0af79c4b0ac。范围仅 Server current-page IdentifyCurrentPage 的已绑定商品分支。重置保留商品绑定而清空本次识别信息;分支对空 CollectionTask 调用 Updates,BeforeSave 接收空 status,报 unsupported collection task status。内存 SQLite DryRun 已复现;同请求直接幂等回放不经过此分支。
依赖、范围与方案
关联 #155 同任务重新采集。现有重试机制已实现,无新增依赖;可与 Android 面板诊断独立进行,但不并行修改同一文件。
仅 server/app/goauto/task/current_page.go 与相关 Go 测试。使用事务中已锁定的真实 record 作为更新模型,仅更新 identify_request_id / identity_resolved_at(保留既有更新时间行为);不改变任务状态、设备、租约、商品绑定、规则或并发槽,不跳过模型校验。维持商品不一致、错误设备、终态拒绝和请求幂等行为。
不改 Android/Web、接口结构、数据库结构、权限或状态机;不处理首次规格面板强证据不足,需另行现场诊断。
设计证据
恢复既有行为的非 UI 缺陷,不需原型。用户已确认上述最小流程;代码证据 current_page.go IdentifyCurrentPage、models/schema.go BeforeSave、lifecycle_service.go resetTask。实现前先加入回归并验证旧代码确实失败。
验收与验证
风险与授权
本次只修复受限字段更新,不调整锁序、并发算法、安全权限或迁移,不触发真实任务、下单、付款或删除。发布、重启、生产数据修改不在本次授权内;完成代码与测试后待授权部署。
文档影响
无长期文档影响:恢复已批准的同任务重试契约,不变更入口、API、配置、数据结构、状态或验证方式;跳过 Wiki 更新与同步,不导出任务快照。
工作流
当前环境无 Gitea MCP 工具,回退项目 Gitea API,凭据仅从忽略的安全配置读取,未输出。状态:开始实施;完成后提交、推送、回写证据,保持待验收。
实现完成,待部署与验收(2026-09-10)
2cb78ad8cd5ff95438fd27dd0b554908159c8363,分支fix/255-current-page-reidentify,基线ca997f6。独立 worktree 干净,未改用户原工作区、main 或线上服务。record作为 GORM 更新模型,保留 BeforeSave 校验,仅更新识别元数据和常规 UpdatedAt。不改变状态、商品/设备绑定、规则快照、租约、并发槽或锁序。不新增任务、商品、接口字段、迁移或权限。unsupported collection task status "";应用最小修复后通过。go test -p 1 ./app/goauto/task ./app/goauto/models(models 无测试文件);go test -p 1 ./...;go build -p 1 ./...;gofmt、git diff --check。沿用已知 Windows 编译资源限制采用串行 -p 1,未跳过测试包。fix(collection): 当前页采集同任务重试再次识别商品触发空状态校验失败to fix(collection): 当前页采集同任务重试再次识别商品触发空状态校验失败(已实现,待部署验收)2026-09-10 用户明确授权合并 main 并部署线上。main 已快进并推送至 2cb78ad;线上基线核对为 ca997f6,差异仅本工单两个 Server 文件。开始 Linux Server 构建及独立 release 发布,保留现有 Web/配置/持久化目录,重启 goauto.service;不执行数据库迁移、不调整任务开关、不触发真实采集或采购。发布前已确认各业务运行计数为 0,切换前再次核对;旧 release 保留用于异常回退。
2026-09-10 已授权合并 main 与线上部署,待验收
2cb78ad8cd5ff95438fd27dd0b554908159c8363,远端回读一致;运行工作区干净。相对原线上ca997f6仅本工单两个 Server 文件,无 Android/Web/迁移差异。605100afdd96ae594031bbec4f84d82ec1b5247902c5d516d227aa7f2d4c6281;上传与运行进程 /proc/PID/exe 摘要一致。/home/goauto/releases/20260910-2cb78ad-255;沿用原配置、Web/dist、template 和 var/static 持久化目标。原子切换 current 后重启goauto.service,验证 PID 27437、active,内部 API 健康 200,Nginx 首页与发布文件一致。http://185.216.248.75:9527/与/api/v1/health均 HTTP 200。未改 Nginx 配置、不需重启 Nginx。未重启本地 Supervisor 服务。/home/goauto/releases/20260910-ca997f6-253保留,可按既有运维流程回退;本次无回退发生、无数据删除。fix(collection): 当前页采集同任务重试再次识别商品触发空状态校验失败(已实现,待部署验收)to fix(collection): 当前页采集同任务重试再次识别商品触发空状态校验失败(已上线,待验收)