feat(android): 支付页安全返回后延长核单只读观察时间(由 #364 拆分) #365

Open
opened 2026-10-08 09:34:38 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:功能增强(Android Agent 核单观察预算调整)。
  • 来源:由 #364 拆分。2026-10-08 用户确认:#364 的「A:核单等待调整」单独建单先做;#364 只保留「B:采购失败现场诊断」。用户原话摘要:「延长待付款界面的等待时间」。
  • 状态:代码交付待验收。2026-10-08 用户在明确建议实施范围后回复“试试#365”,授权按正文最小范围编码、自动化验证、提交和推送;不包含真机操作、安装、下单、合并 main、迁移或发布。
  • 关联:#364(失败现场控件树,诊断手段);本单是对「PDD 加载慢、等待不足」这一可能原因的低成本缓解,不是已确认的根因修复。

背景与事实(基线 origin/main 4ae33d8,2026-10-08)

  • CG-1910 等采购在提交订单、观察到 PDD 支付页并执行一次安全返回后,约 15 秒以 PURCHASE_ORDER_CONTEXT_NOT_FOUND 上报 order_result_unknown。2026-09-25 以来同类待核对共 28 条(两台设备、新旧版本都有)。
  • 核单循环 PurchaseLiveAutomation.readOrderResult()(PurchaseLiveAutomation.kt:369 起):未见待付款标记时最多 ORDER_RESULT_MAX_SAMPLES = 60 次采样,间隔 200ms;进入待付款分支后另有独立的 30 次采样及最多 4 次滑动。
  • 实施前复核 7622795:原每 15 次滑动分支实际位于已见订单上下文、未进入待付款分支且证据尚不完整的路径;无订单上下文分支提前继续循环,不执行该滑动。仍须防止扩大循环后增加动作。
  • paymentPageObserved 在看到支付页或待付款标记时都会置真,不等于「已执行安全返回」。
  • 仅凭总耗时约 15 秒不能断言从未进入待付款分支;真实原因(挽留弹窗、加载慢、页面文字未暴露)待 #364 的现场控件树确认。

目标

对「支付页安全返回后尚无订单上下文」的场景,提供有界的只读观察时间,减少因加载慢造成的提前失败。

非目标

  • 不付款;不新增点击目标、返回次数或滑动次数;不重复提交订单。
  • 不处理挽留弹窗,不改服务端采购/核单状态机,不补录或重试历史待核对任务。
  • 不改正常采集和采购的 capture() 及解析。
  • 不保存控件树(属于 #364)。

方案

  • 仅在实际识别支付页并成功执行既有的一次安全返回后,为尚未取得订单上下文的观察阶段设置最多约 30 秒预算;从该次返回成功起计时,使用单调时钟,不因重复采样重置。
  • 不能仅用 paymentPageObserved 判定起点。
  • 禁止简单把全局 ORDER_RESULT_MAX_SAMPLES 从 60 改为 120:现有循环按采样序号触发滑动,直接翻倍会增加动作。新增的观察时间内只采样、不滑动。
  • 未经历该返回的路径保持原预算;正常读到完整订单证据立即返回。
  • 已进入待付款页面后的独立预算和最多 4 次滑动不变。
  • 持续支付页、持续空窗口、微信恢复失败、未授权应用等既有独立失败条件不变;30 秒是上限,不保证所有失败都等满。

实施边界细化(2026-10-08,按既有最小方案)

  • 在无订单/待付款上下文阶段,以成功 Back 完成时刻为固定起点,包含后续既有暂停及采样耗时;检查采样前后时钟,不以重复采样或反复缺失重置。不能中断单次阻塞的 capture,因此不承诺整个执行器严格墙钟超时。
  • 未经历该返回,或在原有 60 次范围内已取得普通订单上下文的路径,保留原有预算;支付页持续 25 次、空窗口 15 次、微信恢复等独立失败条件不放宽。
  • 原预算后的新增阶段只读采样,不因为迟到的“查看订单”、系统选择器或微信页面新增点击、返回、拉起前台或滑动;保留可适用的既有独立失败判断。
  • 延长期出现非待付款的不完整订单上下文,可以被动收集到同一固定期限,读全立即结束,不新增动作、不另开计时。
  • 延长期首次出现待付款证据时,转入正文已保留的原独立 30 次采样、最多 4 次读取滑动;不增加这个分支额度,不把它算成新增无上下文观察动作。

子项目影响、依赖与并行

  • 只改 Android PurchaseLiveAutomation 核单预算及测试;Server、Web、数据库、接口无变化。
  • 与 #364 无算法依赖,可并行;两者都改动核单相关代码时串行集成,避免覆盖。
  • 构建产物须基于最新 origin/main(包含 #361、#362)。

设计证据

非 UI 改动,无需原型;流程设计以本正文为准。

验收标准

  • 仅支付页安全返回成功后的无订单上下文阶段使用约 30 秒固定观察预算,不循环重置;可控时钟测试核对上限。
  • 订单证据出现即结束;未经历该返回的正常路径和既有独立失败条件不变。
  • 新增观察阶段不新增点击、返回、拉前台或普通滑动;晚到待付款转入既有独立30次/max4滑动预算,额度不变,合成测试核对动作计数。
  • Android 单元测试与构建通过,如实记录结果。
  • 上线后统计 order_result_unknown / PURCHASE_ORDER_CONTEXT_NOT_FOUND 数量变化作为效果观察;不以延长等待宣称根因已修复。真机下单验证需另行授权,不付款。

风险与回退

  • 位于不可逆边界之后:只能延长观察,任何新增动作都视为缺陷。
  • 设备占用可能增加;30 秒从支付页成功返回起算,不能固定声称所有失败仅增加 15 秒。已有采样/动作耗时、返回发生时点及待付款独立预算都会影响总耗时。
  • 回退:恢复原预算,无数据或接口迁移。

文档影响

更新 Wiki Business-Rules-and-Glossary 中核单等待预算的说明;如排障方式变化,同步 Troubleshooting。先改线上 Wiki 并回读 revision,再执行一次 sync 与 sync --check。

备注

  • 由 Claude Code 依据 #364 正文 A 节(Codex 2026-10-08 整合版)拆出,未改变其设计内容;工单不含个人信息。

实施计划(2026-10-08)

  • 基线:已刷新 origin/main 7622795d97d4da3dd638619af99628b0352a42dd,包含 #361/#362;worktree D:/OPC/goauto-worktrees/issue-365,分支 fix/365-order-result-observation。不混入未合并的 #366。
  • 在 android/app/src/test/java/cn/ilapage/goauto/agent/PurchaseLiveAutomationTest.kt 先验证原基线,再以可控单调时钟及动作计数复现安全返回后迟到证据被提前结束的问题。
  • 仅修改 android/app/src/main/java/cn/ilapage/goauto/agent/automation/PurchaseLiveAutomation.kt 的核单观察及测试所需时钟注入:成功返回后记录固定起点,延长部分只观察;既有独立失败、正常路径和待付款独立预算保留。不简单扩大原动作循环。
  • 覆盖无安全返回/返回失败/仅待付款标记、迟到完整证据、固定预算不重置、持续无证据、独立失败及动作次数;运行目标测试观察 RED→GREEN。
  • 规格审核后做代码质量审核,再完成 ./scripts/verify.ps1 -Component android 单元测试及 APK 构建;不以合成测试代替真机效果验证。
  • Wiki-first 更新 Business-Rules-and-Glossary 及必要 Troubleshooting,在线回读 revision 后同步和检查镜像;提交推送、集中回写,停在待验收。

本轮只缓解可能的加载慢,不承诺解决挽留弹窗、页面识别或其他失败原因。

实施与验证记录(2026-10-08)

  • 实现提交 37714d39b5ac8ff720cfa1d0d2609f9a8af3fbd9;文档提交 c55455d35af9b2c95d36db036842e9ed21e5759b。分支 fix/365-order-result-observation 已推送,未合并 main。
  • 生产代码仅 PurchaseLiveAutomation 的局部核单循环和默认单调时钟注入;构造器原三个位置参数兼容。没有合入 #366 代码,不增加新错误码、接口、数据库或 Admin 变更。
  • 固定起点为 Back 返回成功后的单调时刻,capture 前后检查、暂停按剩余时间截短。延长期无详情点击、选择器返回或微信拉前台;原恢复后重复出现保持原失败。已见原预算内普通订单上下文/首次待付款时各按原预算,不把新30秒误作总执行器时限。
  • TDD:原目标类 44/44;首次迟到证据测试 RED 为45中1失败;加入时钟边界后 RED 为56中8失败;最终新增13项后 GREEN为57/57。修正了选择器测试标题,使其命中真实白名单,并断言独立错误码和零新增动作。早期RED为实施运行记录,当前XML只保留最终结果。
  • 完整 scripts/verify.ps1 -Component android 退出码0:test BUILD SUCCESSFUL(10m7s),assembleDebug BUILD SUCCESSFUL(8s);Debug、Release各51 suites / 509 tests,均0 failures / 0 errors / 0 skipped,共1018次执行。主代理独立读取双variant XML确认;git diff --check通过,工作区干净。
  • 规格及代码质量两轮独立审查通过,无Critical/Important。可选Minor:可进一步补“原60次内已见普通上下文、后续慢capture总耗时超过30秒仍按原60次”的组合测试;当前代码明确解除该路径deadline,现有原路径和慢capture分别已测,未将该组合冒充已覆盖。
  • Wiki在线更新并回读:Business-Rules-and-Glossary 25fdd0c4837882dccb27c7b9e740d6d97065d490,Troubleshooting fee37efc79b644ecfa3237283dd45f0a09796f44。镜像sync/check共17页通过;同步附带已在线存在的 #366 文档镜像(API页revision f97ac6b8784fc200ee68e9e2eb4a1201296049f0),不等于本分支包含 #366 实现。
  • APK D:/OPC/goauto-worktrees/issue-365/android/app/build/outputs/apk/debug/app-debug.apk,6,412,419字节,SHA256 d736ee81d4075fd6600c6a94a2d9fdeb631efd6e9f1e62d7d63f351ba6c8985e。版本保持0.9.69 / 82;未装机或发布。
  • 未进行真机、真实核单/改地址/创建订单或付款,没有重试历史任务;未查询本轮线上效果或改变服务。代码通过不代表历史根因已证实或现场成功率已提升。
  • worktree 保留于 D:/OPC/goauto-worktrees/issue-365,待用户验收及后续合并授权;与 #366 后续集成须再验证。本轮只完成工单代码交付,不关闭工单。
  • 已知共享基线 strict 检查的未登记文档 docs/evidence/pdd-home-35727-summary.md 问题在 #366 已确认位于相同基线7622795,本单未修改、不扩大范围处理,也不宣称全仓检查全绿。

#365 + #366 集成验证结果(2026-10-08)

  • 用户授权范围为两项集成验证;基线 origin/main 7622795d97d4da3dd638619af99628b0352a42dd。独立集成分支 integration/365-366-validation 已推送,最终提交 d2083e71fbe70de2519e79eb631a1cd93af8c486。
  • 机械集成提交 5206a6fd7d6666650f2d336e61655f4f647f7a9e,保留两个源分支全部提交:#365 c55455d、#366 d1996d2。生产代码自动合并无冲突;两份 Wiki 镜像冲突保留 #365 中已同步、包含两单说明的较新版本,3份镜像与 c55455d 完全一致,未手工改写长期文档。
  • #366 仅包含已交付的②编辑框就绪等待与 hint 保护;①未实现、仍缺现场证据,③④不改。本轮未新增生产逻辑、Server/Web/数据库/接口/版本变化。
  • 合并后原有目标测试完整保留:基线44 + #365新增13 + #366新增26 = 83项,逐项名称和正文核对无遗漏;先运行83项目标测试通过。
  • 完整 scripts/verify.ps1 -Component android 退出0:Debug/Release各51 suites、535 tests,均0 failures/errors/skipped;test BUILD SUCCESSFUL 9m49s、assembleDebug 4s。主代理读取双variant XML核验,时间分别为2026-10-08 11:42、11:47(北京时间)。
  • 随后仅追加1项跨阶段合成测试,提交 d2083e7(测试文件+71行,无生产变化):同一执行器经历4帧hint和第5帧真实值,地址等待>40秒后单次输入/保存/提交,再模拟4秒Back、第140帧才取得订单证据;断言Back完成后28~30秒仍成功、输入/保存/提交各一次、核单无额外点击/滑动/拉前台。
  • 新增测试后运行 gradlew.bat :app:testDebugUnitTest --tests cn.ilapage.goauto.agent.PurchaseLiveAutomationTest :app:testReleaseUnitTest --tests cn.ilapage.goauto.agent.PurchaseLiveAutomationTest:exit0,目标类Debug/Release各84项,0 failures/errors/skipped,新增用例在两份XML均存在。首次仅给末个task附--tests的命令筛选有歧义,精确中断后纠正命令;中断结果不计作通过。本轮未宣称新增用例后又重跑536项全量,实际证据是原组合全量535项+最终目标类84项双variant。
  • 规格、代码质量及新增测试复核均通过,无阻断问题;合成driver与可控时钟不代表真实PDD无障碍、hint元数据、fresh定位或现场成功率已验证。
  • 最终HEAD再次 assembleDebug 成功;APK生产输入未变、哈希与全量构建相同。产物 D:/OPC/goauto-worktrees/issue-365/android/app/build/outputs/apk/debug/app-debug.apk,6,824,084 bytes,SHA256 e0155cb5266c8228598db6c45eda62d9f2a5dfd774f4a8bf71f0635f85f17b3c;版本仍0.9.69/82。
  • git diff --check通过,工作区干净;远端回读确认main及两源分支未改变。集成分支保留在issue-365工作区,issue-366工作区保留;未合并main,不删除未合并工作区。
  • 无新增长期文档影响:仅验证已批准两项实现并补回归测试,故不重复Wiki更新/sync。既有strict镜像登记问题沿用前述限制,本轮未扩展修复或宣称全仓检查全绿。
  • 未安装、未发布、未迁移、未操作真机/改地址/创建订单/付款;两工单仍待验收,#366仍是部分交付。失败现场完整控件树持久化/上传属于#364,本集成包未包含;#366的hint字段只在内存使用。
## 基本信息 - 类型:功能增强(Android Agent 核单观察预算调整)。 - 来源:由 #364 拆分。2026-10-08 用户确认:#364 的「A:核单等待调整」单独建单先做;#364 只保留「B:采购失败现场诊断」。用户原话摘要:「延长待付款界面的等待时间」。 - 状态:**代码交付待验收**。2026-10-08 用户在明确建议实施范围后回复“试试#365”,授权按正文最小范围编码、自动化验证、提交和推送;不包含真机操作、安装、下单、合并 main、迁移或发布。 - 关联:#364(失败现场控件树,诊断手段);本单是对「PDD 加载慢、等待不足」这一可能原因的低成本缓解,**不是已确认的根因修复**。 ## 背景与事实(基线 origin/main `4ae33d8`,2026-10-08) - CG-1910 等采购在提交订单、观察到 PDD 支付页并执行一次安全返回后,约 15 秒以 `PURCHASE_ORDER_CONTEXT_NOT_FOUND` 上报 `order_result_unknown`。2026-09-25 以来同类待核对共 28 条(两台设备、新旧版本都有)。 - 核单循环 `PurchaseLiveAutomation.readOrderResult()`(`PurchaseLiveAutomation.kt:369` 起):未见待付款标记时最多 `ORDER_RESULT_MAX_SAMPLES = 60` 次采样,间隔 200ms;进入待付款分支后另有独立的 30 次采样及最多 4 次滑动。 - 实施前复核 `7622795`:原每 15 次滑动分支实际位于已见订单上下文、未进入待付款分支且证据尚不完整的路径;无订单上下文分支提前继续循环,不执行该滑动。仍须防止扩大循环后增加动作。 - `paymentPageObserved` 在看到支付页或待付款标记时都会置真,不等于「已执行安全返回」。 - 仅凭总耗时约 15 秒不能断言从未进入待付款分支;真实原因(挽留弹窗、加载慢、页面文字未暴露)待 #364 的现场控件树确认。 ## 目标 对「支付页安全返回后尚无订单上下文」的场景,提供有界的只读观察时间,减少因加载慢造成的提前失败。 ## 非目标 - 不付款;不新增点击目标、返回次数或滑动次数;不重复提交订单。 - 不处理挽留弹窗,不改服务端采购/核单状态机,不补录或重试历史待核对任务。 - 不改正常采集和采购的 `capture()` 及解析。 - 不保存控件树(属于 #364)。 ## 方案 - 仅在实际识别支付页并**成功执行既有的一次安全返回**后,为尚未取得订单上下文的观察阶段设置最多约 30 秒预算;从该次返回成功起计时,使用单调时钟,不因重复采样重置。 - 不能仅用 `paymentPageObserved` 判定起点。 - **禁止**简单把全局 `ORDER_RESULT_MAX_SAMPLES` 从 60 改为 120:现有循环按采样序号触发滑动,直接翻倍会增加动作。新增的观察时间内只采样、不滑动。 - 未经历该返回的路径保持原预算;正常读到完整订单证据立即返回。 - 已进入待付款页面后的独立预算和最多 4 次滑动不变。 - 持续支付页、持续空窗口、微信恢复失败、未授权应用等既有独立失败条件不变;30 秒是上限,不保证所有失败都等满。 ### 实施边界细化(2026-10-08,按既有最小方案) - 在无订单/待付款上下文阶段,以成功 Back 完成时刻为固定起点,包含后续既有暂停及采样耗时;检查采样前后时钟,不以重复采样或反复缺失重置。不能中断单次阻塞的 capture,因此不承诺整个执行器严格墙钟超时。 - 未经历该返回,或在原有 60 次范围内已取得普通订单上下文的路径,保留原有预算;支付页持续 25 次、空窗口 15 次、微信恢复等独立失败条件不放宽。 - 原预算后的新增阶段只读采样,不因为迟到的“查看订单”、系统选择器或微信页面新增点击、返回、拉起前台或滑动;保留可适用的既有独立失败判断。 - 延长期出现非待付款的不完整订单上下文,可以被动收集到同一固定期限,读全立即结束,不新增动作、不另开计时。 - 延长期首次出现待付款证据时,转入正文已保留的原独立 30 次采样、最多 4 次读取滑动;不增加这个分支额度,不把它算成新增无上下文观察动作。 ## 子项目影响、依赖与并行 - 只改 Android `PurchaseLiveAutomation` 核单预算及测试;Server、Web、数据库、接口无变化。 - 与 #364 无算法依赖,可并行;两者都改动核单相关代码时串行集成,避免覆盖。 - 构建产物须基于最新 origin/main(包含 #361、#362)。 ## 设计证据 非 UI 改动,无需原型;流程设计以本正文为准。 ## 验收标准 - [x] 仅支付页安全返回成功后的无订单上下文阶段使用约 30 秒固定观察预算,不循环重置;可控时钟测试核对上限。 - [x] 订单证据出现即结束;未经历该返回的正常路径和既有独立失败条件不变。 - [x] 新增观察阶段不新增点击、返回、拉前台或普通滑动;晚到待付款转入既有独立30次/max4滑动预算,额度不变,合成测试核对动作计数。 - [x] Android 单元测试与构建通过,如实记录结果。 - [ ] 上线后统计 `order_result_unknown` / `PURCHASE_ORDER_CONTEXT_NOT_FOUND` 数量变化作为效果观察;不以延长等待宣称根因已修复。真机下单验证需另行授权,不付款。 ## 风险与回退 - 位于不可逆边界之后:只能延长观察,任何新增动作都视为缺陷。 - 设备占用可能增加;30 秒从支付页成功返回起算,不能固定声称所有失败仅增加 15 秒。已有采样/动作耗时、返回发生时点及待付款独立预算都会影响总耗时。 - 回退:恢复原预算,无数据或接口迁移。 ## 文档影响 更新 Wiki Business-Rules-and-Glossary 中核单等待预算的说明;如排障方式变化,同步 Troubleshooting。先改线上 Wiki 并回读 revision,再执行一次 sync 与 sync --check。 ## 备注 - 由 Claude Code 依据 #364 正文 A 节(Codex 2026-10-08 整合版)拆出,未改变其设计内容;工单不含个人信息。 ## 实施计划(2026-10-08) - 基线:已刷新 origin/main `7622795d97d4da3dd638619af99628b0352a42dd`,包含 #361/#362;worktree `D:/OPC/goauto-worktrees/issue-365`,分支 `fix/365-order-result-observation`。不混入未合并的 #366。 - [x] 在 `android/app/src/test/java/cn/ilapage/goauto/agent/PurchaseLiveAutomationTest.kt` 先验证原基线,再以可控单调时钟及动作计数复现安全返回后迟到证据被提前结束的问题。 - [x] 仅修改 `android/app/src/main/java/cn/ilapage/goauto/agent/automation/PurchaseLiveAutomation.kt` 的核单观察及测试所需时钟注入:成功返回后记录固定起点,延长部分只观察;既有独立失败、正常路径和待付款独立预算保留。不简单扩大原动作循环。 - [x] 覆盖无安全返回/返回失败/仅待付款标记、迟到完整证据、固定预算不重置、持续无证据、独立失败及动作次数;运行目标测试观察 RED→GREEN。 - [x] 规格审核后做代码质量审核,再完成 `./scripts/verify.ps1 -Component android` 单元测试及 APK 构建;不以合成测试代替真机效果验证。 - [x] Wiki-first 更新 Business-Rules-and-Glossary 及必要 Troubleshooting,在线回读 revision 后同步和检查镜像;提交推送、集中回写,停在待验收。 本轮只缓解可能的加载慢,不承诺解决挽留弹窗、页面识别或其他失败原因。 ## 实施与验证记录(2026-10-08) - 实现提交 `37714d39b5ac8ff720cfa1d0d2609f9a8af3fbd9`;文档提交 `c55455d35af9b2c95d36db036842e9ed21e5759b`。分支 `fix/365-order-result-observation` 已推送,未合并 main。 - 生产代码仅 PurchaseLiveAutomation 的局部核单循环和默认单调时钟注入;构造器原三个位置参数兼容。没有合入 #366 代码,不增加新错误码、接口、数据库或 Admin 变更。 - 固定起点为 Back 返回成功后的单调时刻,capture 前后检查、暂停按剩余时间截短。延长期无详情点击、选择器返回或微信拉前台;原恢复后重复出现保持原失败。已见原预算内普通订单上下文/首次待付款时各按原预算,不把新30秒误作总执行器时限。 - TDD:原目标类 44/44;首次迟到证据测试 RED 为45中1失败;加入时钟边界后 RED 为56中8失败;最终新增13项后 GREEN为57/57。修正了选择器测试标题,使其命中真实白名单,并断言独立错误码和零新增动作。早期RED为实施运行记录,当前XML只保留最终结果。 - 完整 `scripts/verify.ps1 -Component android` 退出码0:test BUILD SUCCESSFUL(10m7s),assembleDebug BUILD SUCCESSFUL(8s);Debug、Release各51 suites / 509 tests,均0 failures / 0 errors / 0 skipped,共1018次执行。主代理独立读取双variant XML确认;git diff --check通过,工作区干净。 - 规格及代码质量两轮独立审查通过,无Critical/Important。可选Minor:可进一步补“原60次内已见普通上下文、后续慢capture总耗时超过30秒仍按原60次”的组合测试;当前代码明确解除该路径deadline,现有原路径和慢capture分别已测,未将该组合冒充已覆盖。 - Wiki在线更新并回读:Business-Rules-and-Glossary `25fdd0c4837882dccb27c7b9e740d6d97065d490`,Troubleshooting `fee37efc79b644ecfa3237283dd45f0a09796f44`。镜像sync/check共17页通过;同步附带已在线存在的 #366 文档镜像(API页revision `f97ac6b8784fc200ee68e9e2eb4a1201296049f0`),不等于本分支包含 #366 实现。 - APK `D:/OPC/goauto-worktrees/issue-365/android/app/build/outputs/apk/debug/app-debug.apk`,6,412,419字节,SHA256 `d736ee81d4075fd6600c6a94a2d9fdeb631efd6e9f1e62d7d63f351ba6c8985e`。版本保持0.9.69 / 82;未装机或发布。 - 未进行真机、真实核单/改地址/创建订单或付款,没有重试历史任务;未查询本轮线上效果或改变服务。代码通过不代表历史根因已证实或现场成功率已提升。 - worktree 保留于 `D:/OPC/goauto-worktrees/issue-365`,待用户验收及后续合并授权;与 #366 后续集成须再验证。本轮只完成工单代码交付,不关闭工单。 - 已知共享基线 strict 检查的未登记文档 `docs/evidence/pdd-home-35727-summary.md` 问题在 #366 已确认位于相同基线7622795,本单未修改、不扩大范围处理,也不宣称全仓检查全绿。 ## #365 + #366 集成验证结果(2026-10-08) - 用户授权范围为两项集成验证;基线 origin/main `7622795d97d4da3dd638619af99628b0352a42dd`。独立集成分支 `integration/365-366-validation` 已推送,最终提交 `d2083e71fbe70de2519e79eb631a1cd93af8c486`。 - 机械集成提交 `5206a6fd7d6666650f2d336e61655f4f647f7a9e`,保留两个源分支全部提交:#365 `c55455d`、#366 `d1996d2`。生产代码自动合并无冲突;两份 Wiki 镜像冲突保留 #365 中已同步、包含两单说明的较新版本,3份镜像与 c55455d 完全一致,未手工改写长期文档。 - #366 仅包含已交付的②编辑框就绪等待与 hint 保护;①未实现、仍缺现场证据,③④不改。本轮未新增生产逻辑、Server/Web/数据库/接口/版本变化。 - 合并后原有目标测试完整保留:基线44 + #365新增13 + #366新增26 = 83项,逐项名称和正文核对无遗漏;先运行83项目标测试通过。 - 完整 `scripts/verify.ps1 -Component android` 退出0:Debug/Release各51 suites、535 tests,均0 failures/errors/skipped;test BUILD SUCCESSFUL 9m49s、assembleDebug 4s。主代理读取双variant XML核验,时间分别为2026-10-08 11:42、11:47(北京时间)。 - 随后仅追加1项跨阶段合成测试,提交 `d2083e7`(测试文件+71行,无生产变化):同一执行器经历4帧hint和第5帧真实值,地址等待>40秒后单次输入/保存/提交,再模拟4秒Back、第140帧才取得订单证据;断言Back完成后28~30秒仍成功、输入/保存/提交各一次、核单无额外点击/滑动/拉前台。 - 新增测试后运行 `gradlew.bat :app:testDebugUnitTest --tests cn.ilapage.goauto.agent.PurchaseLiveAutomationTest :app:testReleaseUnitTest --tests cn.ilapage.goauto.agent.PurchaseLiveAutomationTest`:exit0,目标类Debug/Release各84项,0 failures/errors/skipped,新增用例在两份XML均存在。首次仅给末个task附--tests的命令筛选有歧义,精确中断后纠正命令;中断结果不计作通过。本轮未宣称新增用例后又重跑536项全量,实际证据是原组合全量535项+最终目标类84项双variant。 - 规格、代码质量及新增测试复核均通过,无阻断问题;合成driver与可控时钟不代表真实PDD无障碍、hint元数据、fresh定位或现场成功率已验证。 - 最终HEAD再次 `assembleDebug` 成功;APK生产输入未变、哈希与全量构建相同。产物 `D:/OPC/goauto-worktrees/issue-365/android/app/build/outputs/apk/debug/app-debug.apk`,6,824,084 bytes,SHA256 `e0155cb5266c8228598db6c45eda62d9f2a5dfd774f4a8bf71f0635f85f17b3c`;版本仍0.9.69/82。 - git diff --check通过,工作区干净;远端回读确认main及两源分支未改变。集成分支保留在issue-365工作区,issue-366工作区保留;未合并main,不删除未合并工作区。 - 无新增长期文档影响:仅验证已批准两项实现并补回归测试,故不重复Wiki更新/sync。既有strict镜像登记问题沿用前述限制,本轮未扩展修复或宣称全仓检查全绿。 - 未安装、未发布、未迁移、未操作真机/改地址/创建订单/付款;两工单仍待验收,#366仍是部分交付。失败现场完整控件树持久化/上传属于#364,本集成包未包含;#366的hint字段只在内存使用。
Author
Owner

已完成本单最小范围,待验收。实现 37714d3、文档 c55455d 已推送 fix/365-order-result-observation。

支付页一次安全返回成功后,无订单上下文阶段按固定单调时钟观察至约30秒;延长期不增加点击/返回/拉前台/普通滑动,既有提前失败和待付款独立预算保留。目标57项通过;完整Android验证退出0,Debug/Release各509项全部通过,APK构建通过。两轮独立审核无阻断问题;Wiki更新、回读及17页镜像检查完成。详细证据、APK哈希与未覆盖项已整合正文。

未合并main、未安装手机、未发布,未合入#366实现;未做真机下单,不代表现场根因或成功率已验证。保留issue-365 worktree待后续验收/集成。

已完成本单最小范围,待验收。实现 `37714d3`、文档 `c55455d` 已推送 `fix/365-order-result-observation`。 支付页一次安全返回成功后,无订单上下文阶段按固定单调时钟观察至约30秒;延长期不增加点击/返回/拉前台/普通滑动,既有提前失败和待付款独立预算保留。目标57项通过;完整Android验证退出0,Debug/Release各509项全部通过,APK构建通过。两轮独立审核无阻断问题;Wiki更新、回读及17页镜像检查完成。详细证据、APK哈希与未覆盖项已整合正文。 未合并main、未安装手机、未发布,未合入#366实现;未做真机下单,不代表现场根因或成功率已验证。保留issue-365 worktree待后续验收/集成。
Author
Owner

#365 + #366 集成验证开始(2026-10-08)

用户授权“做#365和#366的集成验证”。已刷新远端main,基线仍为 7622795;源分支分别为 c55455d 与 d1996d2。仅组合#365与#366已交付②/hint保护,不实施#366①,不改③④。

计划:复用干净的issue-365隔离工作区,建立独立 integration/365-366-validation 分支,保留两条原工单分支;机械合并后检查同文件冲突/测试完整性,执行目标回归、Android Debug/Release全量单元测试及APK构建,独立审核并回写证据。必要时仅补集成测试;不扩大生产代码范围。

不合并main、不安装或操作手机、不改地址/下单/付款、不更新Admin/迁移/发布。本轮无新增长期文档规则:保留已批准的Wiki镜像,纯集成验证结果回写两张工单,不重复修改Wiki或同步。

## #365 + #366 集成验证开始(2026-10-08) 用户授权“做#365和#366的集成验证”。已刷新远端main,基线仍为 `7622795`;源分支分别为 `c55455d` 与 `d1996d2`。仅组合#365与#366已交付②/hint保护,不实施#366①,不改③④。 计划:复用干净的issue-365隔离工作区,建立独立 `integration/365-366-validation` 分支,保留两条原工单分支;机械合并后检查同文件冲突/测试完整性,执行目标回归、Android Debug/Release全量单元测试及APK构建,独立审核并回写证据。必要时仅补集成测试;不扩大生产代码范围。 不合并main、不安装或操作手机、不改地址/下单/付款、不更新Admin/迁移/发布。本轮无新增长期文档规则:保留已批准的Wiki镜像,纯集成验证结果回写两张工单,不重复修改Wiki或同步。
Author
Owner

#365 + #366 集成验证通过,完整证据已追加正文。集成分支 integration/365-366-validation 已推送:机械集成 5206a6f,跨阶段回归 d2083e7。组合全量 Debug/Release 各535项通过,新增跨阶段测试后目标类两variant各84项通过,最终APK构建成功,规格/质量复核无阻断。未合并main、未装机或发布;#366仅②/hint保护,①仍待证据,③④不改。工单保持待验收,不关闭。

#365 + #366 集成验证通过,完整证据已追加正文。集成分支 `integration/365-366-validation` 已推送:机械集成 `5206a6f`,跨阶段回归 `d2083e7`。组合全量 Debug/Release 各535项通过,新增跨阶段测试后目标类两variant各84项通过,最终APK构建成功,规格/质量复核无阻断。未合并main、未装机或发布;#366仅②/hint保护,①仍待证据,③④不改。工单保持待验收,不关闭。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#365