No Branch/Tag Specified
main
fix/348-reveal-swipe
feat/340-syb-excluded-products
fix/351-inner-code-apply-selection
fix/350-match-layout
fix/350-inner-code-matching
feat/349-batch-return-use
feat/347-batch-return-cancel
feat/345-yeeke-reship
fix/346-root-serves-spa
fix/344-inner-code-stall-match
fix/343-syb-writeback-session
feat/339-syb-page-size
feat/338-return-match
feat/337-yeeke-admin-ui
feat/336-yeeke-return-sync
fix/335-bottom-submit-node
fix/334-spec-probe-top-swipe
fix/333-purchaser-device-owner
fix/331-spec-panel-recognition
fix/330-syb-writeback-session
feat/327-syb-writeback-filter
feat/326-order-information
fix/325-order-result
feat/316-chrome-order-backfill
fix/307-backfill-entry
feat/305-syb-order-writeback
feat/306-order-paid-amount
release/283
fix/283-purchase-mapping-consistency
fix/230-horizontal-spec-selection
feat/263-spec-rematch
fix/262-purchase-handoff
fix/260-261-purchase-readiness
fix/259-partial-collection-link
feat/258-one-click-replace
fix/257-color-normalized-match
fix/256-collection-single-dimension
fix/255-current-page-reidentify
feat/253-one-click-link
fix/254-match-loading
fix/251-syb-spec-candidates
feat/250-continuous-collection
fix/249-local-purchase-diagnostics
fix/248-bottom-submit
fix/247-short-address-panel
fix/246-address-return-panel
fix/245-purchase-failure-diagnostics
fix/244-selected-card-duplicates
fix/243-spec-entry-recovery
feat/242-agent-order-backfill
feat/241-order-backfill-endpoint
fix/239-syb-partial-sync
fix/238-spec-panel-preswipe
feat/237-client-api-keys
feat/236-purchaser-syb-sync
fix/235-syb-pagination-overlap
release/234-integrated
fix/229-address-entry-dedup
fix/228-selection-proof-panel-transition
fix/227-address-panel-return
fix/226-reopen-pdd-on-manual-retry
fix/225-in-place-purchase-retry
fix/224-final-spec-revalidation
fix/223-probed-confirmed-mapping
chore/221-devharness-sync
feat/218-purchase-result-bubble
fix/217-agent-retry-current-spec
fix/216-syb-spec-role-order
feat/215-mandatory-live-spec-probe
feat/214-verified-purchase-actions
fix/212-syb-sync-shop-snapshot
feat/211-spec-entry-ready-wait
feat/210-order-result-payment-transition
feat/209-pdd-bottom-spec-entry
feat/200-ai-match-result-purchase-ready
feat/199-job-execution-logs
feat/198-syb-ai-parse
feat/195-scheduled-spec-auto-match
fix/197-ai-write-timeout
feat/190-syb-inline-correction
fix/193-address-entry-reveal
feat/194-one-click-spec-match
fix/192-order-result-scroll
No results found.
Labels
No items
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: OPC/goauto#167
Reference in New Issue
Block a user
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-08-31 反馈 CG-36 已成功创建待付款订单并最终进入 PDD 订单详情,但 Admin 没有订单编号、下单时间及其他动态执行数据;只读分析后确认按建议处理。
目的:当订单结果仍无法唯一确认时,保留创建订单前已经验证的非订单动态事实,并向 Server/Admin 提交不含敏感信息的稳定核单失败阶段;Admin 继续以数据库最终事实展示,不从页面或历史任务猜测订单号。
基线与已确认事实
代码基线:
a3628df,Agent0.9.31、PDD8.22.0、CG30/device 5,核验时间 2026-08-31。live,状态order_result_unknown;已有orderSubmitRequestId、irreversibleAt,但pddOrderNo、orderSubmittedAt、actualUnitPriceCent均为空。order_result_unknownoutcome 未携带先前verifyUnitPrice得到的observedPrice;结果序列化只对failed写错误码/原因。order_result_unknown分支只迁移状态,不保存ActualUnitPriceCent、ErrorCode、ErrorMessage。目标
order_result_unknown仍携带并持久化创建订单前已经严格验证的实际单价;不得由订单详情推测或补算。failed或order_created。order_created。非目标
实施方案
PurchaseOrderEvidence?成功契约,同时记录一次调用内的稳定失败阶段;每次调用前清空,所有失败出口显式设置。PurchaseExecutionOutcome(order_result_unknown)携带阶段码、限长可读原因及observedPrice;中断恢复没有可信价格时保持为空。order_result_unknown写入错误码/原因;Server 校验允许的稳定码、保存实际单价和错误字段,同时保持状态为order_result_unknown、attempt 为 failed。验收标准
order_result_unknownpayload 包含稳定错误码/原因;存在已验证实际单价时同时携带,不存在时保持空。order_submit_started接受未知结果,并持久化实际单价与错误字段;非法状态仍拒绝。order_created仍强制唯一非空订单号和下单时间;未知结果不得写入这两个字段。风险与安全门禁
本单处理订单不可逆边界后的结果契约。实现和自动化测试不触发设备下单;任何 CG-36 操作、live 重试、地址修改、创建订单或支付仍需独立人工授权。永久禁止支付。
设计证据
恢复既有 Admin 字段与核单审计行为,无新页面或交互,不需要 UI 原型。共享 API 和状态语义由代码测试及
Android-Agent-API-Contract作为设计证据。文档影响
有长期契约影响:
order_result_unknown新增稳定错误阶段并允许保留已验证实际单价。须先更新线上 WikiAndroid-Agent-API-Contract、回读 revision,再执行一次harness.py sync和一次sync --check。状态
待验收(实现、自动化验证、构建与 Wiki 同步已完成;未执行 live 真机验收,不自动关闭)。
实施与验证结果(待验收)
已提交并推送
ff0cf99 fix(goauto): preserve unknown order evidence (#167),最终 Agent 版本0.9.33(versionCode 46)。实现:
order_result_unknownOutbox 现在携带稳定错误码/原因;创建订单前已严格验证的实际单价存在时一并携带,中断恢复无可信价格时仍为空。live + order_submit_started接受未知结果;拒绝在未知结果中提交订单号或下单时间,拒绝非白名单失败码。PURCHASE_ORDER_RESULT_UNKNOWN。验证:
PurchaseLiveAutomationTest、PurchaseResultPayloadTest通过。test assembleDebug assembleRelease --rerun-tasks:BUILD SUCCESSFUL(90 tasks)。go test ./...与go build ./...:通过。python dev_scripts/harness.py check --strict、git diff --check:通过。Android-Agent-API-Contract已在线更新并回读 revision6990b1a92006572069d13bdffba1ffc5bfc0f13d;镜像同步与一致性检查通过。安全边界:未修改/补写/重试 CG-36,未安装 APK,未启动正式采购,未修改地址、未创建订单、未支付。CG-36 仍保持
order_result_unknown和不可逆事实,必须人工核对;本次代码不会追溯猜测历史订单号。结论:实现、自动化、构建和文档闭环完成,工单保持打开并转待验收。