fix(shopee): 一键规格匹配永久转圈与超时预算收敛(先建单,待验收) #254

Open
opened 2026-09-09 18:12:52 +08:00 by ila · 2 comments
Owner

来源与目标

2026-09-09 用户反馈:线上蝦皮商品详情“一键匹配颜色尺码,有时会卡住不停转圈圈”,随后询问前端改为 60 秒能否解决。讨论结论:单改前端超时不能修复遗留加载状态,需一并修正请求生命周期、协调前后端预算并在超时后回读已保存结果。
用户最终指令:“建工单,先别做”。本单仅登记,未授权实施、改线上设置、重启或发布。

目标:匹配操作有界结束;关闭再打开同一商品不会永久转圈;超时不误报确定保存失败、不自动重复匹配。
非目标:不改变颜色尺码匹配算法、置信度、人工映射保护、保存事务与采购资格;不新增后台任务系统,不改 Android,不自动采购或支付。

已核验事实与复现证据

  • 核验日期 2026-09-09;本地 main fdd26afaf00626b0b9289147a64018bf46b438b8;线上 release /home/goauto/releases/20260908-d403f3b-239,GoAuto active。
  • 在线静态包 ShopeeProductDetailDrawer.C_avoTdg.js 包含与下述源码一致的生命周期缺陷,不只是本地旧代码推断。
  • web/src/views/goauto/shopee-products/ShopeeProductDetailDrawer.vue:119 isCurrent 同时比较 modelValue、requestGeneration、productId;requestSwitch 在同商品已有数据时直接复用;closeInternals/beforeCloseDetail 增加 requestGeneration,却不结束 aiMatching;autoMatchMappings 的 finally 仅在 isCurrent 为真时清理 aiMatching。
  • 复现:开始匹配 → 未结束时关闭抽屉 → 重新打开同一商品 → 原请求返回。读取原组件方法、使用合成 Promise 的 Node 复现输出:aiMatching=true, requestGeneration=2,请求已结束仍保留转圈状态。未调用真实匹配接口、未写业务数据。
  • web/src/api/goauto/shopee-products.js:59 匹配请求 timeout=610000(610 秒);线上包中同样为 61e4。
  • 线上只读查询 AI 配置:enabled=1,timeout_seconds=180。shopeeproduct/auto_match.go 整次同步匹配上限 600 秒;颜色/尺码串行调用,单次 Provider 受配置限制。正常长等待与永久残留转圈是两种不同问题。
  • 匹配成功后还会等待详情/PDD 回读;这些普通请求现有默认超时为 10 秒,需纳入交互结束边界,不能只修改一次 POST。
  • 未拿到能关联用户具体卡住事件的商品 ID/时间/请求日志,不把已复现路径当作所有偶发现象的唯一根因;也未证明上游当次超时或代理异常。

方案(实施前按本单核对)

1. 修复加载生命周期

  • 将加载状态与具体商品/操作实例绑定;关闭/切换应释放该页面的等待状态,使重开同一商品不会复用失效的 busy 标记。
  • 保留旧响应不能覆盖新商品/新操作的保护;不能无条件让旧 finally 清理新请求的 loading。
  • 同商品重开时回读实际关联/映射,既避免显示陈旧结果,也不自动再次调用匹配。保留未保存人工修改的既有确认流程。
  • 正常、业务错误、网络失败、超时、刷新失败、关闭重开均可结束等待;执行中防止重复点击。

2. 协调时间预算

  • 本单建议落点:仅详情“一键匹配颜色尺码”后端整次预算为 AI 设置秒数 × 2+10 秒,前端该 POST 再多 10 秒。
  • 后端动态总预算覆盖颜色、尺码、保存和必要回读;Provider 子请求受剩余总预算限制,颜色与尺码共用整次剩余时间。
  • 不修改全局 MaxProviderTimeout 或全局 aiSuggestTimeoutMs 来波及 suggest-colors/suggest-sizes、SYB 定时匹配/解析、其他 AI 接口;需要接口专属预算。
  • 不直接修改线上 AI 配置的 180 秒。本接口以总预算收敛;较慢 Provider 会更容易超时,需在验收明确这一取舍。
  • 动态后端预算是服务端有界执行目标,动态前端预算是匹配 POST 上限,不承诺数据库提交结果在边界时必然可知;中间代理超时应只读核对,不能未经授权修改。

3. 超时与结果回读

  • 超时/断连提示“匹配请求超时,正在核对保存结果”,不能直接声称未保存。
  • 使用既有详情查询回读实际映射;有已保存结果展示实际结果,未完成则提供用户手动重试,禁止自动重发匹配 POST。
  • 回读本身有独立有限超时;回读失败显示“结果暂未确认,请刷新查看”,停止转圈,保留人工刷新入口。不因用户关闭 UI 就声称服务端已取消或回滚。
  • 页面显示已等待时间或简洁阶段反馈,避免只有无说明的转圈。无需新弹窗/独立页面/复杂状态机。

影响范围、依赖与并行

  • Web:蝦皮详情抽屉的加载状态、匹配专属请求超时与有限回读;可能补充现有测试。
  • Server:仅详情自动匹配入口总时间预算与测试;不改匹配/保存判定。
  • 数据库/Android:预计无修改、无迁移、无权限新增。
  • 与 #253 关联:#253 拟复用此匹配能力;其原型审核可并行,本单实施与 #253 的相关 API/抽屉集成应串行或明确提交依赖,避免共享文件冲突。不得混入 #253 的一键关联业务。

设计证据

恢复既有加载行为的 Bug 不强制完整原型。等待时间、超时回读与失败提示属于小范围状态反馈,实施前提供现有抽屉的标注截图/低保真状态说明,覆盖正常、加载、成功、超时、回读失败、关闭重开及权限边界;当前尚未制作或通过审核,不冒用 #253 原型确认。

验收与测试计划(均未实施)

  • 同商品:请求中关闭,返回前/返回后重开,不残留永久 loading。
  • 切换商品、快速关闭重开、新旧请求交错:旧响应不覆盖新数据,旧 finally 不结束新操作。
  • 成功、业务失败、网络错误、超时、刷新失败后均停止转圈,能继续人工操作。
  • 后端整次 AI 秒数 × 2+10 秒、前端再加 10 秒;串行颜色尺码共用剩余预算,其他 AI 接口超时不变。
  • 请求已保存但响应丢失可回读展示;结果未知/回读失败不误报确定失败,也不自动重复匹配。
  • 已保存映射与未保存人工草稿保护、现有手动匹配和保存回归通过。
  • 使用可控时间与合成 Provider/HTTP 响应测试,不为验证超时修改真实商品。
  • 发布前另行授权;线上验证只在明确对象/范围下执行,不创建采购或支付。

风险、授权与文档影响

缩短预算可能降低慢 Provider 的完成率;浏览器取消/超时不等于后端未提交;状态修复不能弱化防旧请求覆盖保护。本轮仅建单,代码/测试/迁移/配置/部署均未执行。
预计实施后的长期文档影响:Architecture-and-Code-Map、Business-Rules-and-Glossary,以及现有契约中详情匹配超时/错误/回读说明;如涉及运维设置再更新 Deployment-and-Operations。当前无长期事实变化,不更新 Wiki、不同步镜像、不导出任务归档。
Gitea MCP 当前未暴露,回退项目安全配置中的 Gitea API 建单;不输出凭据。

状态:待实施,用户明确要求先别做。

2026-09-10 方案更新与实施授权

用户原话:“按照你的建议来更新#254,授权做工单”。已授权按本单修改请求生命周期/并发隔离、动态预算、有限回读并测试;取代旧“只建单”状态。不包含线上配置修改、重启、部署、数据库迁移、真实商品匹配或采购。

  • 单次 AI 配置仍是唯一配置入口,不新增三个设置框。T=60 时后端130秒/前端140秒;本次不把线上现有180秒擅自改为60秒,T=180 时应为370/380秒。
  • 后端详情响应仅增加匹配总预算数字(不暴露 AI Key 或管理员配置),前端点击前刷新详情取得预算,再给匹配 POST 设置对应超时。查询失败不猜配置、不发送匹配;GET 使用既有10秒超时。
  • 设置在准备与提交之间变化时仍可能提前前端超时,按结果未知回读处理,不宣称前端超时意味着后端已回滚。
  • API/反向代理超时可能提前截断,实施时只读核对并记录发布要求。T最大600时预算1210/1220秒,不能忽略现有API最小写超时620秒;本单不擅自更新线上运维配置。

轻量设计证据 v2(复用现有抽屉状态布局)

无新页面或弹窗,复用规格标题行下方提示与已有刷新按钮;依据此次用户方案确认实施小范围反馈:

状态 原按钮与提示 后续
正常/空数据/无规格 保留原按钮及既有禁用条件 不增加权限
准备 按钮loading;正在读取最新规格与等待时间 失败停止,不POST
匹配 按钮loading;正在匹配并保存,最多等待N秒 重复点击无效
成功 清loading;展示已保存结果及原成功统计 保持原手动流程
超时/断连/服务异常 正在核对保存结果 一次有限GET回读,不重发POST
回读成功 已刷新保存结果,请检查未匹配项后再操作 不声称全匹配成功
回读失败 结果暂未确认,请刷新查看;清loading 手动刷新入口
关闭/切换/重开 清当前页面等待标记;旧响应不得写新页面 重开同商品重新读取,不自动匹配
人工草稿 保留既有放弃修改确认;回读过程中禁用改映射 防自动刷新覆盖新草稿
设计类型:恢复既有行为+明确复用现有规范的轻量状态说明,不要求独立QuantUX完整原型;不借用#253原型验收。实施基线 main fdd26af,分支 fix/254-match-loading。#253仍待原型确认,无生产代码依赖阻塞。
状态:实施中。Gitea MCP未暴露,继续使用项目安全配置API。

当前交付状态(2026-09-10)

实施完成、测试通过并已推送;待用户验收,未关闭。以上最初“只建单/待实施”文字为历史记录,以本节和最终交付评论为准。未合并 main、未发布、未修改线上配置或重启服务。

## 来源与目标 2026-09-09 用户反馈:线上蝦皮商品详情“一键匹配颜色尺码,有时会卡住不停转圈圈”,随后询问前端改为 60 秒能否解决。讨论结论:单改前端超时不能修复遗留加载状态,需一并修正请求生命周期、协调前后端预算并在超时后回读已保存结果。 用户最终指令:“建工单,先别做”。本单仅登记,未授权实施、改线上设置、重启或发布。 目标:匹配操作有界结束;关闭再打开同一商品不会永久转圈;超时不误报确定保存失败、不自动重复匹配。 非目标:不改变颜色尺码匹配算法、置信度、人工映射保护、保存事务与采购资格;不新增后台任务系统,不改 Android,不自动采购或支付。 ## 已核验事实与复现证据 - 核验日期 2026-09-09;本地 main `fdd26afaf00626b0b9289147a64018bf46b438b8`;线上 release `/home/goauto/releases/20260908-d403f3b-239`,GoAuto active。 - 在线静态包 `ShopeeProductDetailDrawer.C_avoTdg.js` 包含与下述源码一致的生命周期缺陷,不只是本地旧代码推断。 - `web/src/views/goauto/shopee-products/ShopeeProductDetailDrawer.vue:119` isCurrent 同时比较 modelValue、requestGeneration、productId;requestSwitch 在同商品已有数据时直接复用;closeInternals/beforeCloseDetail 增加 requestGeneration,却不结束 aiMatching;autoMatchMappings 的 finally 仅在 isCurrent 为真时清理 aiMatching。 - 复现:开始匹配 → 未结束时关闭抽屉 → 重新打开同一商品 → 原请求返回。读取原组件方法、使用合成 Promise 的 Node 复现输出:`aiMatching=true, requestGeneration=2`,请求已结束仍保留转圈状态。未调用真实匹配接口、未写业务数据。 - `web/src/api/goauto/shopee-products.js:59` 匹配请求 timeout=610000(610 秒);线上包中同样为 61e4。 - 线上只读查询 AI 配置:enabled=1,timeout_seconds=180。`shopeeproduct/auto_match.go` 整次同步匹配上限 600 秒;颜色/尺码串行调用,单次 Provider 受配置限制。正常长等待与永久残留转圈是两种不同问题。 - 匹配成功后还会等待详情/PDD 回读;这些普通请求现有默认超时为 10 秒,需纳入交互结束边界,不能只修改一次 POST。 - 未拿到能关联用户具体卡住事件的商品 ID/时间/请求日志,不把已复现路径当作所有偶发现象的唯一根因;也未证明上游当次超时或代理异常。 ## 方案(实施前按本单核对) ### 1. 修复加载生命周期 - 将加载状态与具体商品/操作实例绑定;关闭/切换应释放该页面的等待状态,使重开同一商品不会复用失效的 busy 标记。 - 保留旧响应不能覆盖新商品/新操作的保护;不能无条件让旧 finally 清理新请求的 loading。 - 同商品重开时回读实际关联/映射,既避免显示陈旧结果,也不自动再次调用匹配。保留未保存人工修改的既有确认流程。 - 正常、业务错误、网络失败、超时、刷新失败、关闭重开均可结束等待;执行中防止重复点击。 ### 2. 协调时间预算 - 本单建议落点:仅详情“一键匹配颜色尺码”后端整次预算为 AI 设置秒数 × 2+10 秒,前端该 POST 再多 10 秒。 - 后端动态总预算覆盖颜色、尺码、保存和必要回读;Provider 子请求受剩余总预算限制,颜色与尺码共用整次剩余时间。 - 不修改全局 MaxProviderTimeout 或全局 aiSuggestTimeoutMs 来波及 suggest-colors/suggest-sizes、SYB 定时匹配/解析、其他 AI 接口;需要接口专属预算。 - 不直接修改线上 AI 配置的 180 秒。本接口以总预算收敛;较慢 Provider 会更容易超时,需在验收明确这一取舍。 - 动态后端预算是服务端有界执行目标,动态前端预算是匹配 POST 上限,不承诺数据库提交结果在边界时必然可知;中间代理超时应只读核对,不能未经授权修改。 ### 3. 超时与结果回读 - 超时/断连提示“匹配请求超时,正在核对保存结果”,不能直接声称未保存。 - 使用既有详情查询回读实际映射;有已保存结果展示实际结果,未完成则提供用户手动重试,禁止自动重发匹配 POST。 - 回读本身有独立有限超时;回读失败显示“结果暂未确认,请刷新查看”,停止转圈,保留人工刷新入口。不因用户关闭 UI 就声称服务端已取消或回滚。 - 页面显示已等待时间或简洁阶段反馈,避免只有无说明的转圈。无需新弹窗/独立页面/复杂状态机。 ## 影响范围、依赖与并行 - Web:蝦皮详情抽屉的加载状态、匹配专属请求超时与有限回读;可能补充现有测试。 - Server:仅详情自动匹配入口总时间预算与测试;不改匹配/保存判定。 - 数据库/Android:预计无修改、无迁移、无权限新增。 - 与 #253 关联:#253 拟复用此匹配能力;其原型审核可并行,本单实施与 #253 的相关 API/抽屉集成应串行或明确提交依赖,避免共享文件冲突。不得混入 #253 的一键关联业务。 ## 设计证据 恢复既有加载行为的 Bug 不强制完整原型。等待时间、超时回读与失败提示属于小范围状态反馈,实施前提供现有抽屉的标注截图/低保真状态说明,覆盖正常、加载、成功、超时、回读失败、关闭重开及权限边界;当前尚未制作或通过审核,不冒用 #253 原型确认。 ## 验收与测试计划(均未实施) - [x] 同商品:请求中关闭,返回前/返回后重开,不残留永久 loading。 - [x] 切换商品、快速关闭重开、新旧请求交错:旧响应不覆盖新数据,旧 finally 不结束新操作。 - [x] 成功、业务失败、网络错误、超时、刷新失败后均停止转圈,能继续人工操作。 - [x] 后端整次 AI 秒数 × 2+10 秒、前端再加 10 秒;串行颜色尺码共用剩余预算,其他 AI 接口超时不变。 - [x] 请求已保存但响应丢失可回读展示;结果未知/回读失败不误报确定失败,也不自动重复匹配。 - [x] 已保存映射与未保存人工草稿保护、现有手动匹配和保存回归通过。 - [x] 使用可控时间与合成 Provider/HTTP 响应测试,不为验证超时修改真实商品。 - [x] 发布前另行授权;线上验证只在明确对象/范围下执行,不创建采购或支付。 ## 风险、授权与文档影响 缩短预算可能降低慢 Provider 的完成率;浏览器取消/超时不等于后端未提交;状态修复不能弱化防旧请求覆盖保护。本轮仅建单,代码/测试/迁移/配置/部署均未执行。 预计实施后的长期文档影响:Architecture-and-Code-Map、Business-Rules-and-Glossary,以及现有契约中详情匹配超时/错误/回读说明;如涉及运维设置再更新 Deployment-and-Operations。当前无长期事实变化,不更新 Wiki、不同步镜像、不导出任务归档。 Gitea MCP 当前未暴露,回退项目安全配置中的 Gitea API 建单;不输出凭据。 状态:待实施,用户明确要求先别做。 ## 2026-09-10 方案更新与实施授权 用户原话:“按照你的建议来更新#254,授权做工单”。已授权按本单修改请求生命周期/并发隔离、动态预算、有限回读并测试;取代旧“只建单”状态。不包含线上配置修改、重启、部署、数据库迁移、真实商品匹配或采购。 - 单次 AI 配置仍是唯一配置入口,不新增三个设置框。T=60 时后端130秒/前端140秒;本次不把线上现有180秒擅自改为60秒,T=180 时应为370/380秒。 - 后端详情响应仅增加匹配总预算数字(不暴露 AI Key 或管理员配置),前端点击前刷新详情取得预算,再给匹配 POST 设置对应超时。查询失败不猜配置、不发送匹配;GET 使用既有10秒超时。 - 设置在准备与提交之间变化时仍可能提前前端超时,按结果未知回读处理,不宣称前端超时意味着后端已回滚。 - API/反向代理超时可能提前截断,实施时只读核对并记录发布要求。T最大600时预算1210/1220秒,不能忽略现有API最小写超时620秒;本单不擅自更新线上运维配置。 ### 轻量设计证据 v2(复用现有抽屉状态布局) 无新页面或弹窗,复用规格标题行下方提示与已有刷新按钮;依据此次用户方案确认实施小范围反馈: | 状态 | 原按钮与提示 | 后续 | |---|---|---| | 正常/空数据/无规格 | 保留原按钮及既有禁用条件 | 不增加权限 | | 准备 | 按钮loading;正在读取最新规格与等待时间 | 失败停止,不POST | | 匹配 | 按钮loading;正在匹配并保存,最多等待N秒 | 重复点击无效 | | 成功 | 清loading;展示已保存结果及原成功统计 | 保持原手动流程 | | 超时/断连/服务异常 | 正在核对保存结果 | 一次有限GET回读,不重发POST | | 回读成功 | 已刷新保存结果,请检查未匹配项后再操作 | 不声称全匹配成功 | | 回读失败 | 结果暂未确认,请刷新查看;清loading | 手动刷新入口 | | 关闭/切换/重开 | 清当前页面等待标记;旧响应不得写新页面 | 重开同商品重新读取,不自动匹配 | | 人工草稿 | 保留既有放弃修改确认;回读过程中禁用改映射 | 防自动刷新覆盖新草稿 | 设计类型:恢复既有行为+明确复用现有规范的轻量状态说明,不要求独立QuantUX完整原型;不借用#253原型验收。实施基线 main fdd26af,分支 fix/254-match-loading。#253仍待原型确认,无生产代码依赖阻塞。 状态:实施中。Gitea MCP未暴露,继续使用项目安全配置API。 ## 当前交付状态(2026-09-10) 实施完成、测试通过并已推送;待用户验收,未关闭。以上最初“只建单/待实施”文字为历史记录,以本节和最终交付评论为准。未合并 main、未发布、未修改线上配置或重启服务。
ila changed title from fix(shopee): 一键规格匹配永久转圈与超时预算收敛(先建单,待实施) to fix(shopee): 一键规格匹配永久转圈与超时预算收敛(先建单,待验收) 2026-09-10 09:44:03 +08:00
Author
Owner

#254 实施完成,待验收(2026-09-10)

  • 分支 fix/254-match-loading;代码提交 9088e6b;Wiki 镜像提交 08d939a9b86c2798370de1d3bfe0bf20081ae48e,均已推送。未合并 main,未更新线上 Server/Web,未修改 AI 设置、代理或常驻服务。
  • AI 单次设置 T 不变;详情匹配后端共享 2T+10 秒预算,前端 POST 为 2T+20 秒。详情 GET 返回非敏感派生预算,提交前刷新;预算缺失/准备失败不发 POST。T=60 对应130/140秒,T=180对应370/380秒。
  • 修复关闭/重开同商品的残留 loading,旧响应与旧 finally 隔离;禁止重复提交及匹配期间人工改映射,保留原草稿放弃确认。POST异常只做有限GET回读,不自动重发;回读失败停止等待并提供人工刷新。阶段提示复用原抽屉,无新增页面或配置项。
  • 详情入口调整不扩散到后台批量匹配(仍600秒)、建议接口(仍610秒)、AI算法、置信度、采购资格或Android;无数据库迁移。

验证

  • PASS:go test ./app/goauto/shopeeproduct ./app/goauto/aimatching、go test ./app/goauto/clientapi、go build ./...。
  • PASS:Node生命周期/API单元测试10项;Playwright生命周期与原PDD选择器回归共5项;受影响ESLint、Web生产构建、git diff --check、DevHarness check --strict。
  • 覆盖双Provider共享预算取消且不提交本轮映射、动态预算、丢响应但已保存的回读、回读失败、重复点击、关闭重开、切换商品、人工草稿保护。合成HTTP/Provider数据,不调用真实AI,不修改真实商品。
  • 已查看等待及回读失败截图。UI/UX检查采用现有抽屉的阶段反馈、明确失败与刷新入口;未增独立原型。首次浏览器用例因测试登录夹具缺少avatar失败,补齐夹具后全量5项通过。生产构建既有样式/分包警告未扩展修复。
  • 未验证:真实DeepSeek调用、线上端到端、手机、采购/下单。关闭抽屉不是取消后端事务;回读仅表示当前已保存结果。

发布边界

Server/Web需要配套升级,Android无需更新。发布前须核对实际T、API写超时和代理窗口;现有620秒最低写超时不能覆盖T=600的1210秒业务预算,部署建议API至少max(620,2T+30)秒并配套代理窗口。本单没有擅自修改这些线上配置。未部署前线上仍为旧行为。

长期文档闭环

已使用显式原标题更新并在线回读四页:

  • Architecture-and-Code-Map:e7a91d1d9c0f628297fb6ebe41b0d27d551c79ea
  • Business-Rules-and-Glossary:c1ff5d88432826af67d3e40f58837bd98d93cfce
  • Android-Agent-API-Contract:9898c6141b878407c2622c986eb9e15f0b39774d
  • Deployment-and-Operations:933eaf6cc02fed843a6898269fdb5f6848ac2a8a
    已运行一轮 sync 和一轮 sync --check 并通过。相关页面镜像包含线上已有段落,未修改其业务实现;非本单Troubleshooting镜像未纳入提交。没有创建任务归档。
    Gitea MCP未暴露,按项目规则使用安全环境配置的API回退,未记录凭据。
## #254 实施完成,待验收(2026-09-10) - 分支 `fix/254-match-loading`;代码提交 `9088e6b`;Wiki 镜像提交 `08d939a9b86c2798370de1d3bfe0bf20081ae48e`,均已推送。未合并 main,未更新线上 Server/Web,未修改 AI 设置、代理或常驻服务。 - AI 单次设置 T 不变;详情匹配后端共享 2T+10 秒预算,前端 POST 为 2T+20 秒。详情 GET 返回非敏感派生预算,提交前刷新;预算缺失/准备失败不发 POST。T=60 对应130/140秒,T=180对应370/380秒。 - 修复关闭/重开同商品的残留 loading,旧响应与旧 finally 隔离;禁止重复提交及匹配期间人工改映射,保留原草稿放弃确认。POST异常只做有限GET回读,不自动重发;回读失败停止等待并提供人工刷新。阶段提示复用原抽屉,无新增页面或配置项。 - 详情入口调整不扩散到后台批量匹配(仍600秒)、建议接口(仍610秒)、AI算法、置信度、采购资格或Android;无数据库迁移。 ### 验证 - PASS:`go test ./app/goauto/shopeeproduct ./app/goauto/aimatching`、`go test ./app/goauto/clientapi`、`go build ./...`。 - PASS:Node生命周期/API单元测试10项;Playwright生命周期与原PDD选择器回归共5项;受影响ESLint、Web生产构建、git diff --check、DevHarness check --strict。 - 覆盖双Provider共享预算取消且不提交本轮映射、动态预算、丢响应但已保存的回读、回读失败、重复点击、关闭重开、切换商品、人工草稿保护。合成HTTP/Provider数据,不调用真实AI,不修改真实商品。 - 已查看等待及回读失败截图。UI/UX检查采用现有抽屉的阶段反馈、明确失败与刷新入口;未增独立原型。首次浏览器用例因测试登录夹具缺少avatar失败,补齐夹具后全量5项通过。生产构建既有样式/分包警告未扩展修复。 - 未验证:真实DeepSeek调用、线上端到端、手机、采购/下单。关闭抽屉不是取消后端事务;回读仅表示当前已保存结果。 ### 发布边界 Server/Web需要配套升级,Android无需更新。发布前须核对实际T、API写超时和代理窗口;现有620秒最低写超时不能覆盖T=600的1210秒业务预算,部署建议API至少max(620,2T+30)秒并配套代理窗口。本单没有擅自修改这些线上配置。未部署前线上仍为旧行为。 ### 长期文档闭环 已使用显式原标题更新并在线回读四页: - Architecture-and-Code-Map:`e7a91d1d9c0f628297fb6ebe41b0d27d551c79ea` - Business-Rules-and-Glossary:`c1ff5d88432826af67d3e40f58837bd98d93cfce` - Android-Agent-API-Contract:`9898c6141b878407c2622c986eb9e15f0b39774d` - Deployment-and-Operations:`933eaf6cc02fed843a6898269fdb5f6848ac2a8a` 已运行一轮 sync 和一轮 sync --check 并通过。相关页面镜像包含线上已有段落,未修改其业务实现;非本单Troubleshooting镜像未纳入提交。没有创建任务归档。 Gitea MCP未暴露,按项目规则使用安全环境配置的API回退,未记录凭据。
Author
Owner

2026-09-10 随用户授权的 #253 发布配套上线:#254代码9088e6b已随main ca997f6推送并部署至 /home/goauto/releases/20260910-ca997f6-253,GoAuto已重启。外网首页、ShopeeProductDetailDrawer新bundle哈希及API健康检查通过。实际AI T=60未改,对应后端130/前端140秒;应用writertimeout620、代理900秒满足预算且未修改。发布及首次验证命令兼容修正详情见 #253 最新评论;未调用真实AI/写业务数据,保留待验收,不关闭。本次没有契约/拓扑变化,复用已完成Wiki镜像闭环。

2026-09-10 随用户授权的 #253 发布配套上线:#254代码9088e6b已随main ca997f6推送并部署至 /home/goauto/releases/20260910-ca997f6-253,GoAuto已重启。外网首页、ShopeeProductDetailDrawer新bundle哈希及API健康检查通过。实际AI T=60未改,对应后端130/前端140秒;应用writertimeout620、代理900秒满足预算且未修改。发布及首次验证命令兼容修正详情见 #253 最新评论;未调用真实AI/写业务数据,保留待验收,不关闭。本次没有契约/拓扑变化,复用已完成Wiki镜像闭环。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#254