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尚未完成,不能宣称文档闭环。代码工单先保持待验收,文档阻塞待连接恢复后补齐。
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-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)