[实施中] feat(purchase): 精确规格找不到时现场重新匹配一次 #263

Open
opened 2026-09-11 08:40:31 +08:00 by ila · 1 comment
Owner

来源与确认

2026-09-11 用户确认最小流程建单实施:只在目标规格找不到时重新读取现场候选,服务端匹配一次,在当前面板继续;无结果或再次失败停止。CG111颜色选中复核是另一个问题,不在此单。没有发布、重启、安装或真实采购授权。

基线与范围

Android基线1e50600/0.9.76,依赖#262页面交接。Server采购代码需与main7992903核对;只改Server采购契约与Android执行/网络/等待显示,无Web UI。顺序实施,不自动合并main。无数据库迁移,不改权限或设备并发模型。

最小实现契约

新增payload布尔specRematchAllowed,旧Server缺省false。沿用result接口新增spec_rematch_completed,仅正式purchase阶段SELECT_SPEC返回PURCHASE_SPEC_TARGET_NOT_VISIBLE、尚未改地址/下单时Android可发一次。重复复用原requestId/outbox,不发起新任务。服务端锁定任务验证状态running、原决策已存在、SYB非direct_select、无任何不可逆订单证据、原能力满足、错误码精确符合及该task没有历史rematch执行结果后接受。
当前attempt保存重匹配候选及旧决策审计;清除当前决策指针后复用spec_probe_pending与原匹配决策流程,保持同task及设备占用;新候选先确定性匹配,必要时AI,结果必须属于当前候选。新决策只允许最新attempt写入,旧请求不能覆盖。既有attempt结果标记限制每task最多一次,人工reset不恢复次数,不新增列。旧spec_probe_completed的重复拒绝保持。
无匹配/AI错误/候选不足走原明确失败。Android不猜规格;歧义、售罄、点击失败、选中复核不确认、价格/地址/订单失败均不触发。完成重新遍历后沿用#262的内存面板交接;仍重新执行正式校验,无效页面可回退重开,不承诺永不重开。

设计/测试/验收

非新UI,复用原匹配等待提示,免原型。自动化覆盖一次成功/再次拒绝/同请求幂等/旧决策保护/不可逆拒绝/旧协议拒绝及Android触发白名单、第二次失败停止、页面复用。执行受影响Server测试及构建、Android单测与构建。只合成测试,不调用真实AI或真实采购。

文档/交付

更新Wiki API契约、业务与架构,在线回读revision后sync/check。提交推送回写停待验收;不自动部署重启或安装。Gitea MCP不可用,使用项目安全配置API回退。

## 来源与确认 2026-09-11 用户确认最小流程建单实施:只在目标规格找不到时重新读取现场候选,服务端匹配一次,在当前面板继续;无结果或再次失败停止。CG111颜色选中复核是另一个问题,不在此单。没有发布、重启、安装或真实采购授权。 ## 基线与范围 Android基线1e50600/0.9.76,依赖#262页面交接。Server采购代码需与main7992903核对;只改Server采购契约与Android执行/网络/等待显示,无Web UI。顺序实施,不自动合并main。无数据库迁移,不改权限或设备并发模型。 ## 最小实现契约 新增payload布尔specRematchAllowed,旧Server缺省false。沿用result接口新增spec_rematch_completed,仅正式purchase阶段SELECT_SPEC返回PURCHASE_SPEC_TARGET_NOT_VISIBLE、尚未改地址/下单时Android可发一次。重复复用原requestId/outbox,不发起新任务。服务端锁定任务验证状态running、原决策已存在、SYB非direct_select、无任何不可逆订单证据、原能力满足、错误码精确符合及该task没有历史rematch执行结果后接受。 当前attempt保存重匹配候选及旧决策审计;清除当前决策指针后复用spec_probe_pending与原匹配决策流程,保持同task及设备占用;新候选先确定性匹配,必要时AI,结果必须属于当前候选。新决策只允许最新attempt写入,旧请求不能覆盖。既有attempt结果标记限制每task最多一次,人工reset不恢复次数,不新增列。旧spec_probe_completed的重复拒绝保持。 无匹配/AI错误/候选不足走原明确失败。Android不猜规格;歧义、售罄、点击失败、选中复核不确认、价格/地址/订单失败均不触发。完成重新遍历后沿用#262的内存面板交接;仍重新执行正式校验,无效页面可回退重开,不承诺永不重开。 ## 设计/测试/验收 非新UI,复用原匹配等待提示,免原型。自动化覆盖一次成功/再次拒绝/同请求幂等/旧决策保护/不可逆拒绝/旧协议拒绝及Android触发白名单、第二次失败停止、页面复用。执行受影响Server测试及构建、Android单测与构建。只合成测试,不调用真实AI或真实采购。 ## 文档/交付 更新Wiki API契约、业务与架构,在线回读revision后sync/check。提交推送回写停待验收;不自动部署重启或安装。Gitea MCP不可用,使用项目安全配置API回退。
Author
Owner

已实现,待验收(2026-09-11)

  • 实现提交 c6ee6c0,Android版本提交7b8999f(0.9.77/code90);分支 feat/263-spec-rematch 已推送,未部署/未安装/未合并main。Gitea MCP不可用,使用安全配置API回退。
  • 服务端新增同一采购任务结果类型 spec_rematch_completed 与 payload specRematchAllowed;只在正式任务运行中、已有决策、无不可逆证据、现场候选非空时接受。按现有attempt result_type限制每task一次;清除当前决策后复用既有匹配流程,确定性优先、必要时AI,候选外结果拒绝,旧attempt不能覆盖。
  • Android只对 PURCHASE_SPEC_TARGET_NOT_VISIBLE触发且需specRematchAllowed;重新采集当前面板候选,提交同task并领取新正式attempt,复用当前PDD页面继续选择。不新建任务、不重新打开浏览器;交接失败仍原路径。颜色/尺码选中复核、售罄、歧义、点击、价格、地址、订单失败不触发。
  • Server go test ./app/goauto/purchase通过;Android testDebugUnitTest与assembleDebug通过。APK SHA256 0074801026CEB3DDA8AD476164E05C7A220778AF1EC90DDD55AC49744E340811。未安装任何设备,未执行真实AI/采购/地址/订单/付款。
  • Wiki API页面已在线更新并回读 revision74ab7165740bc00d633336721ab028bca1bd220;随后Gitea代理返回Tunnel connection failed 500,Business/Architecture剩余页面及sync/check尚未完成,不能宣称文档闭环。代码工单先保持待验收,文档阻塞待连接恢复后补齐。
  • 无数据库迁移;因服务端接口和业务规则变化,发布前必须再完成Business/Architecture Wiki更新及镜像sync/check。未授权线上发布、服务重启或APK安装。
## 已实现,待验收(2026-09-11) - 实现提交 c6ee6c0,Android版本提交7b8999f(0.9.77/code90);分支 feat/263-spec-rematch 已推送,未部署/未安装/未合并main。Gitea MCP不可用,使用安全配置API回退。 - 服务端新增同一采购任务结果类型 spec_rematch_completed 与 payload specRematchAllowed;只在正式任务运行中、已有决策、无不可逆证据、现场候选非空时接受。按现有attempt result_type限制每task一次;清除当前决策后复用既有匹配流程,确定性优先、必要时AI,候选外结果拒绝,旧attempt不能覆盖。 - Android只对 PURCHASE_SPEC_TARGET_NOT_VISIBLE触发且需specRematchAllowed;重新采集当前面板候选,提交同task并领取新正式attempt,复用当前PDD页面继续选择。不新建任务、不重新打开浏览器;交接失败仍原路径。颜色/尺码选中复核、售罄、歧义、点击、价格、地址、订单失败不触发。 - Server go test ./app/goauto/purchase通过;Android testDebugUnitTest与assembleDebug通过。APK SHA256 0074801026CEB3DDA8AD476164E05C7A220778AF1EC90DDD55AC49744E340811。未安装任何设备,未执行真实AI/采购/地址/订单/付款。 - Wiki API页面已在线更新并回读 revision74ab7165740bc00d633336721ab028bca1bd220;随后Gitea代理返回Tunnel connection failed 500,Business/Architecture剩余页面及sync/check尚未完成,不能宣称文档闭环。代码工单先保持待验收,文档阻塞待连接恢复后补齐。 - 无数据库迁移;因服务端接口和业务规则变化,发布前必须再完成Business/Architecture Wiki更新及镜像sync/check。未授权线上发布、服务重启或APK安装。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#263