feat(syb): 已关联PDD商品行内一键替换并匹配保存(已上线待验收) #258

Open
opened 2026-09-10 15:16:44 +08:00 by ila · 3 comments
Owner

原始需求与授权

2026-09-10 用户要求在SYB商品“查看PDD商品”旁新增“一键替换”,按建议建单实施并编译部署服务器,已授权最终发布。随后询问是否需要确认框并要求继续。用户于 2026-09-10 已确认 v1 原型并授权实施及编译部署;现已完成,待验收。

基线与依赖

main 305062d;复用 #253 行内分体按钮/用户设备偏好与 #257 统一规格匹配。依赖已上线。本单 Server/Web;不改Android、迁移、支付或历史采购快照。可与Android独立,当前无并行Agent。

已核验事实

process_stage.go 中open_pdd出现在pdd_pending、pdd_collecting、pdd_collection_failed及商品停用/价格缺失的manual_action;采购已创建/运行、成功、结果未知优先open_task。quick-link.js与latest_collection.go仅允许未关联,不能只增加按钮就复用覆盖。

目标交互(v1已确认)

  • 保留查看PDD商品;仅待采集、采集失败、停用或价格缺失增加“一键替换 | 下拉箭头”。采集中不开放,其他人工处理原因不扩张。
  • 复用一键关联的用户/浏览器/API隔离设备偏好;首次选手机继续本行,箭头只切换手机不执行。无设备/加载失败可取消重试。
  • 只取该设备最新成功终态临时采集;最新部分成功、商品不可用/无规格时停止,不回退旧商品,不换设备。
  • 新旧商品不同时显示一次简短确认,展示旧/新商品摘要、所选手机、共享蝦皮档案影响。取消不写;确认按钮“确认替换并匹配”。候选在确认期间固定,不因新采集悄悄变化。
  • 同一PDD商品不改关联、不弹替换确认,只继续现有规格匹配与保存。
  • 替换后匹配保存,部分未匹配、解析需人工确认、AI失败保留已完成关联并提示去匹配/处理,不自动采购,不假称可采购。旧映射按既有更换关联规则处理,不盲目沿用无效目标。
  • 关联写失败、上下文被他人更改、读取结果未知分别提示;超时只有限回读,不自动重复写。

后端方案(已确认并实施)

增补限定在本入口的只读候选预览/替换命令;复用现有鉴权、链接服务和匹配服务。请求绑定SYB/蝦皮/原PDD/目标PDD/采集任务/设备/规格版本及requestId,事务回查允许阶段和来源有效性;并发变更返回冲突,不覆盖用户未确认目标。旧未关联入口契约保持,不自动开放客户端密钥调用。依照代码最终核验选择最小字段/路由,不扩展通用替换框架。

设计证据与验收

复用 #253 v2 既有视觉规范,新增确认与异常轻量原型已由用户确认;App ID 6aa259e0191a826306a7fc35,v1 版本指纹及链接见评论7467,确认日期2026-09-10。覆盖正常/空/加载/失败/禁用/权限、取消、同商品、换手机、部分匹配、未知结果。
实施后单元/契约/前端交互测试、Server/Web构建,发布前检查活动任务与迁移差异,保留旧release回退;不触发真实采购/下单/付款,实际商品替换由用户验收。

文档与状态

原型阶段无长期实现事实变化,跳过Wiki同步。实施涉及API/业务规则时更新架构、API与业务Wiki,在线回读revision,一轮sync/check。工单保持已上线待验收,未经用户验收不关闭。

工具回退

Gitea MCP未暴露,使用项目安全配置API;QuantUX经已配置Bearer鉴权MCP访问,不输出凭据。使用ui-ux-pro-max技能复核确认框/取消/加载/错误,不改变整体样式。不导出本地原型或任务归档。

## 原始需求与授权 2026-09-10 用户要求在SYB商品“查看PDD商品”旁新增“一键替换”,按建议建单实施并编译部署服务器,已授权最终发布。随后询问是否需要确认框并要求继续。用户于 2026-09-10 已确认 v1 原型并授权实施及编译部署;现已完成,待验收。 ## 基线与依赖 main 305062d;复用 #253 行内分体按钮/用户设备偏好与 #257 统一规格匹配。依赖已上线。本单 Server/Web;不改Android、迁移、支付或历史采购快照。可与Android独立,当前无并行Agent。 ## 已核验事实 process_stage.go 中open_pdd出现在pdd_pending、pdd_collecting、pdd_collection_failed及商品停用/价格缺失的manual_action;采购已创建/运行、成功、结果未知优先open_task。quick-link.js与latest_collection.go仅允许未关联,不能只增加按钮就复用覆盖。 ## 目标交互(v1已确认) - 保留查看PDD商品;仅待采集、采集失败、停用或价格缺失增加“一键替换 | 下拉箭头”。采集中不开放,其他人工处理原因不扩张。 - 复用一键关联的用户/浏览器/API隔离设备偏好;首次选手机继续本行,箭头只切换手机不执行。无设备/加载失败可取消重试。 - 只取该设备最新成功终态临时采集;最新部分成功、商品不可用/无规格时停止,不回退旧商品,不换设备。 - 新旧商品不同时显示一次简短确认,展示旧/新商品摘要、所选手机、共享蝦皮档案影响。取消不写;确认按钮“确认替换并匹配”。候选在确认期间固定,不因新采集悄悄变化。 - 同一PDD商品不改关联、不弹替换确认,只继续现有规格匹配与保存。 - 替换后匹配保存,部分未匹配、解析需人工确认、AI失败保留已完成关联并提示去匹配/处理,不自动采购,不假称可采购。旧映射按既有更换关联规则处理,不盲目沿用无效目标。 - 关联写失败、上下文被他人更改、读取结果未知分别提示;超时只有限回读,不自动重复写。 ## 后端方案(已确认并实施) 增补限定在本入口的只读候选预览/替换命令;复用现有鉴权、链接服务和匹配服务。请求绑定SYB/蝦皮/原PDD/目标PDD/采集任务/设备/规格版本及requestId,事务回查允许阶段和来源有效性;并发变更返回冲突,不覆盖用户未确认目标。旧未关联入口契约保持,不自动开放客户端密钥调用。依照代码最终核验选择最小字段/路由,不扩展通用替换框架。 ## 设计证据与验收 复用 #253 v2 既有视觉规范,新增确认与异常轻量原型已由用户确认;App ID 6aa259e0191a826306a7fc35,v1 版本指纹及链接见评论7467,确认日期2026-09-10。覆盖正常/空/加载/失败/禁用/权限、取消、同商品、换手机、部分匹配、未知结果。 实施后单元/契约/前端交互测试、Server/Web构建,发布前检查活动任务与迁移差异,保留旧release回退;不触发真实采购/下单/付款,实际商品替换由用户验收。 ## 文档与状态 原型阶段无长期实现事实变化,跳过Wiki同步。实施涉及API/业务规则时更新架构、API与业务Wiki,在线回读revision,一轮sync/check。工单保持已上线待验收,未经用户验收不关闭。 ## 工具回退 Gitea MCP未暴露,使用项目安全配置API;QuantUX经已配置Bearer鉴权MCP访问,不输出凭据。使用ui-ux-pro-max技能复核确认框/取消/加载/错误,不改变整体样式。不导出本地原型或任务归档。
Author
Owner

v1 原型草稿已保存,等待浏览器登录与审核

  • App ID 6aa259e0191a826306a7fc35;在线编辑/预览入口:https://qux.ilapage.cn/#/apps/6aa259e0191a826306a7fc35/design.html
  • 名称 GoAuto #258 v1 一键替换与确认;20状态屏;lastUUID27619;模型SHA256 059726034cec8fbf325ec807dd9b6b3c2587226d4d9964a9b6c0ddd46d8d436e(screens/widgets/lines/startScreen/lastUUID/screenSize/grid,json.dumps sort_keys=True ensure_ascii=False)。创建后完整模型回读一致,连线端点存在。
  • 包含列表、选机/切换、替换确认、匹配中、成功、同商品、部分匹配、AI失败、无采集/部分采集、未知结果、上下文变更、只读、设备加载/失败/空态与旧详情示意。采集中行不显示一键替换。
  • 确认框建议:仅不同PDD商品弹一次;旧/新商品与手机来源、共享蝦皮档案影响提示;取消不写入,确认替换并匹配。同商品不替换,继续匹配。用户询问确认框后要求继续,本版本仍待正式审核,不能把继续视为已通过原型。
  • 当前是合成数据状态屏草稿,演示按钮不代表生产持久化、真实设备偏好或并发逻辑;手机状态与真实数据的完整联动仍需实施测试。无新增原型HTML导出。
  • 浏览器尝试打开原型:连接一次超时后恢复,实际落在QuantUX登录界面;MCP认证可读写模型,但不等同浏览器已登录。尚未视觉验收/点击链验证,尚无经验证的免登录分享链接。请用户登录QuantUX后继续预览核验,未确认前不编写生产代码或发布。
  • UI/UX技能用于取消/加载/错误与一次确认设计,复用现有布局;原型门禁来自项目AGENTS.md。用户发布授权已记录,不替代原型确认。没有数据库/产品代码/线上服务变更;无长期实现事实变化,跳过Wiki同步。
## v1 原型草稿已保存,等待浏览器登录与审核 - App ID `6aa259e0191a826306a7fc35`;在线编辑/预览入口:https://qux.ilapage.cn/#/apps/6aa259e0191a826306a7fc35/design.html - 名称 GoAuto #258 v1 一键替换与确认;20状态屏;lastUUID27619;模型SHA256 `059726034cec8fbf325ec807dd9b6b3c2587226d4d9964a9b6c0ddd46d8d436e`(screens/widgets/lines/startScreen/lastUUID/screenSize/grid,json.dumps sort_keys=True ensure_ascii=False)。创建后完整模型回读一致,连线端点存在。 - 包含列表、选机/切换、替换确认、匹配中、成功、同商品、部分匹配、AI失败、无采集/部分采集、未知结果、上下文变更、只读、设备加载/失败/空态与旧详情示意。采集中行不显示一键替换。 - 确认框建议:仅不同PDD商品弹一次;旧/新商品与手机来源、共享蝦皮档案影响提示;取消不写入,确认替换并匹配。同商品不替换,继续匹配。用户询问确认框后要求继续,本版本仍待正式审核,不能把继续视为已通过原型。 - 当前是合成数据状态屏草稿,演示按钮不代表生产持久化、真实设备偏好或并发逻辑;手机状态与真实数据的完整联动仍需实施测试。无新增原型HTML导出。 - 浏览器尝试打开原型:连接一次超时后恢复,实际落在QuantUX登录界面;MCP认证可读写模型,但不等同浏览器已登录。尚未视觉验收/点击链验证,尚无经验证的免登录分享链接。请用户登录QuantUX后继续预览核验,未确认前不编写生产代码或发布。 - UI/UX技能用于取消/加载/错误与一次确认设计,复用现有布局;原型门禁来自项目AGENTS.md。用户发布授权已记录,不替代原型确认。没有数据库/产品代码/线上服务变更;无长期实现事实变化,跳过Wiki同步。
ila changed title from feat(syb): 已关联PDD商品行内一键替换并匹配保存(待原型审核) to feat(syb): 已关联PDD商品行内一键替换并匹配保存(实施中) 2026-09-10 15:33:27 +08:00
Author
Owner

开始实施

2026-09-10 用户已确认 v1 原型(App 6aa259e0191a826306a7fc35,版本指纹见上一评论),授权实施及编译部署。基线 main 305062d;复用原按钮位置、手机偏好与匹配流程,不同商品一次确认,同商品不重绑。Server/Web 范围,无迁移。合成数据测试后发布,不自动执行真实替换或采购。Gitea MCP 不可用,继续安全配置 API 回退。

## 开始实施 2026-09-10 用户已确认 v1 原型(App 6aa259e0191a826306a7fc35,版本指纹见上一评论),授权实施及编译部署。基线 main 305062d;复用原按钮位置、手机偏好与匹配流程,不同商品一次确认,同商品不重绑。Server/Web 范围,无迁移。合成数据测试后发布,不自动执行真实替换或采购。Gitea MCP 不可用,继续安全配置 API 回退。
ila changed title from feat(syb): 已关联PDD商品行内一键替换并匹配保存(实施中) to feat(syb): 已关联PDD商品行内一键替换并匹配保存(已上线待验收) 2026-09-10 15:54:28 +08:00
Author
Owner

实施与线上发布完成,待验收(2026-09-10)

  • 原型 v1 经用户明确确认,并授权编译部署。未新增列、页面或顶部设备入口:复用一键关联分体按钮的位置,符合条件的已关联行显示一键替换,小箭头复用手机偏好;原人工入口保留。
  • 不同商品一次确认,展示旧/新商品、来源手机和共享蝦皮影响;取消无写入。同商品服务端不更新关联及 request marker,继续现有匹配。部分匹配/AI失败保留已保存关联,真实阶段刷新;无自动采购。
  • 最小接口方案使用既有 link-pdd 的 latestCollection.replacement 可选模式:preview=true 只读,提交回传原PDD、taskId、目标PDD及版本。指定来源冻结,不受后来新采集影响;事务内复用采购阶段计算并校验旧关联/设备/来源/规格。旧未关联、人工链接、API Key 边界保留,无迁移、无新路由或权限。
  • 提交:实现 2b01974;稳定截图测试 3181302;Wiki镜像 8cfd32b。均已推送任务分支并快进合并推送 main;只包含 #258 相关文件。同步得到的无关 docs/06-troubleshooting.md 改动保留未提交。
  • 验证:Server go test -p 1 ./... 全部通过;Linux amd64 CGO=0 生产构建通过;Web 26项 Node 单测、受影响 ESLint、build:prod 通过;Playwright 一键关联/替换5项及详情匹配3项通过,最终替换用例再次通过。确认框和结果截图已本地核对。最初新增测试夹具字段与弹窗定位断言失败,修正测试后复跑通过,未隐藏失败。
  • 覆盖预览不写、取消、同商品不重绑、来源冻结、目标/旧规格或关联变化、停用设备、当前阶段拒绝、SQLite串行并发仅一次写入;原选择手机/切换/权限/AI故障回读回归通过。未执行生产实际替换、真实 AI 匹配或采购;MySQL多连接并发及用户实际数据链路待验收。
  • Wiki在线更新并回读:Architecture-and-Code-Map@6c8866d6186d8d6cc022256f2f369cc3072e99b5;Business-Rules-and-Glossary@d016609062586a278560226600b5a1443c6fb442;Android-Agent-API-Contract@a96638c0b97eac622d53b04420da7ca35a1c010d。一轮 sync + sync --check 通过,harness check --strict 通过。部署拓扑/命令不变,无额外运维文档修改。
  • 线上新 release /home/goauto/releases/20260910-3181302-258;运行二进制 SHA256 50d4072ab1fee57d27428cdf5813c3083de9137b6120b09cfaa32560cf11f48f;Web tar SHA256 0d81b8ef5f7ef977a3baef811b2c20dc7573afede249b032527ec46d4eac99f7。上传后摘要一致;预部署 tar 根目录校验因合法 dist 目录项暂停,调整校验允许精确根目录后继续,期间旧服务未动。
  • 发布前所有采集/采购/SYB/AI批运行计数为0,Nginx配置通过;原子切换并重启 GoAuto,PID 29567,API健康200,运行二进制摘要一致。公网 http://185.216.248.75:9527/ 页面200且与发布包一致,/js/syb-products.BpNe-AaD.js 51418字节与本地一键替换功能包摘要一致。
  • 定时任务状态、迁移记录、AI超时60秒均保持原值;未运行迁移、未修改凭据或实际商品关联、未下单或付款。Nginx配置与进程无需重启,已实际返回新版Web。旧 release /home/goauto/releases/20260910-ea38ced-257 保留可回退,未删除业务数据。
  • 请刷新页面,选择符合条件的已关联商品核对一键替换和确认框后进行人工验收。本单不自动关闭。
## 实施与线上发布完成,待验收(2026-09-10) - 原型 v1 经用户明确确认,并授权编译部署。未新增列、页面或顶部设备入口:复用一键关联分体按钮的位置,符合条件的已关联行显示一键替换,小箭头复用手机偏好;原人工入口保留。 - 不同商品一次确认,展示旧/新商品、来源手机和共享蝦皮影响;取消无写入。同商品服务端不更新关联及 request marker,继续现有匹配。部分匹配/AI失败保留已保存关联,真实阶段刷新;无自动采购。 - 最小接口方案使用既有 link-pdd 的 latestCollection.replacement 可选模式:preview=true 只读,提交回传原PDD、taskId、目标PDD及版本。指定来源冻结,不受后来新采集影响;事务内复用采购阶段计算并校验旧关联/设备/来源/规格。旧未关联、人工链接、API Key 边界保留,无迁移、无新路由或权限。 - 提交:实现 2b01974;稳定截图测试 3181302;Wiki镜像 8cfd32b。均已推送任务分支并快进合并推送 main;只包含 #258 相关文件。同步得到的无关 docs/06-troubleshooting.md 改动保留未提交。 - 验证:Server go test -p 1 ./... 全部通过;Linux amd64 CGO=0 生产构建通过;Web 26项 Node 单测、受影响 ESLint、build:prod 通过;Playwright 一键关联/替换5项及详情匹配3项通过,最终替换用例再次通过。确认框和结果截图已本地核对。最初新增测试夹具字段与弹窗定位断言失败,修正测试后复跑通过,未隐藏失败。 - 覆盖预览不写、取消、同商品不重绑、来源冻结、目标/旧规格或关联变化、停用设备、当前阶段拒绝、SQLite串行并发仅一次写入;原选择手机/切换/权限/AI故障回读回归通过。未执行生产实际替换、真实 AI 匹配或采购;MySQL多连接并发及用户实际数据链路待验收。 - Wiki在线更新并回读:Architecture-and-Code-Map@6c8866d6186d8d6cc022256f2f369cc3072e99b5;Business-Rules-and-Glossary@d016609062586a278560226600b5a1443c6fb442;Android-Agent-API-Contract@a96638c0b97eac622d53b04420da7ca35a1c010d。一轮 sync + sync --check 通过,harness check --strict 通过。部署拓扑/命令不变,无额外运维文档修改。 - 线上新 release `/home/goauto/releases/20260910-3181302-258`;运行二进制 SHA256 `50d4072ab1fee57d27428cdf5813c3083de9137b6120b09cfaa32560cf11f48f`;Web tar SHA256 `0d81b8ef5f7ef977a3baef811b2c20dc7573afede249b032527ec46d4eac99f7`。上传后摘要一致;预部署 tar 根目录校验因合法 dist 目录项暂停,调整校验允许精确根目录后继续,期间旧服务未动。 - 发布前所有采集/采购/SYB/AI批运行计数为0,Nginx配置通过;原子切换并重启 GoAuto,PID 29567,API健康200,运行二进制摘要一致。公网 http://185.216.248.75:9527/ 页面200且与发布包一致,`/js/syb-products.BpNe-AaD.js` 51418字节与本地一键替换功能包摘要一致。 - 定时任务状态、迁移记录、AI超时60秒均保持原值;未运行迁移、未修改凭据或实际商品关联、未下单或付款。Nginx配置与进程无需重启,已实际返回新版Web。旧 release `/home/goauto/releases/20260910-ea38ced-257` 保留可回退,未删除业务数据。 - 请刷新页面,选择符合条件的已关联商品核对一键替换和确认框后进行人工验收。本单不自动关闭。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#258