fix(android): 规格面板纵向滚动区域放宽为高度不小于宽度的 80%(PURCHASE_ADDRESS_ENTRY_AMBIGUOUS) #390
Open
opened 2026-10-13 17:32:42 +08:00 by ila
·
2 comments
No Branch/Tag Specified
main
fix/390-panel-scroll-ratio
fix/389-syb-cancel-enum
fix/388-address-save-back
feat/387-cancel-by-device
fix/386-diagnostic-deadlock
fix/385-accessibility-pause
feat/384-client-key-agent-release
feat/383-collection-device-filter
feat/382-purchase-creator-filters
feat/381-syb-cancelled-block
feat/375-open-in-pdd
feat/380-status-device-connection
fix/370-horizontal-grid
feat/372-export-shop
feat/378-heartbeat-diagnostics
feat/372-export-price
feat/372-list-export
fix/377-rejected-purchase-outbox
fix/376-pre-address-spec-verification
fix/374-final-spec-confirmation
fix/373-navigation-diagnostics
fix/370-color-discovery
feat/367-last-batch-repurchase
fix/368-image-search-partial-link
integration/364-365-366-main
feat/364-purchase-failure-snapshot
integration/365-366-validation
fix/365-order-result-observation
fix/366-address-editor-ready
fix/359-auto-match-resume
feat/363-inner-code-page-size
fix/362-truncated-spec-card
fix/361-spec-probe-click
docs/agents-worktree-rules
fix/358-syb-size-weight
feat/357-syb-cancel-status
feat/356-purchase-order-filter
fix/355-syb-list-timeout
feat/353-syb-shop-multiselect
fix/354-syb-top-pagination
fix/352-syb-source-created
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#390
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.
基本信息
f5ac7f6)、#388(地址保存后放行证据齐全的快捷确认面板,已合并 main,待验收)、#364/#370(采购失败现场快照)。已核验事实(线上只读查询、
origin/mainb2285c8,2026-10-13)失败任务
syb261011BPTYSW1E),设备 8(采购1),Agent 0.9.71。14:53:11–14:53:30 规格探测完成,14:53:30 进入采购,14:53:35 失败:PURCHASE_ADDRESS_ENTRY_AMBIGUOUS「没有找到唯一的规格面板滚动区域,未创建订单」。没有修改地址,也没有创建订单。离线回放结果
NewPageActivity,面板被识别为ORDER_CONFIRMATION(采购接受的类型),规格选项展开(2 个维度、9 个选项),有支付方式、唯一数量输入框和底部下单行(finalSubmitTargets返回 1 个)。resolveAddressEntries:phoneNodes=0;addressCards=0;tapTargets=0。updateShippingAddress()(PurchaseLiveAutomation.kt:144),看不到地址入口时应在唯一的面板滚动区域内向下滑动。页面上只有 1 个可滚动节点:规格列表RecyclerView,宽 1080、高 1078(屏幕 1080×2376,宽度占 100%,高度占 45%)。purchasePanelScrollTargets()(:795)要求height >= width、宽度 ≥ 屏幕 60%、高度 ≥ 屏幕 20%。该列表高度比宽度小 2 像素而被排除,滚动区域个数为 0,一次都没滑就失败了。出现频率
PURCHASE_ADDRESS_ENTRY_AMBIGUOUS历史共 4 次,其中「没有找到唯一的规格面板滚动区域」2 次:任务 #48(2026-09-03,采购2,无快照)和 #2865。近 7 天只有 #2865 这 1 次。restoreFinalEvidenceInCurrentPanel,:646),存在同样的风险。目标
规格面板的纵向滚动列表因高度略小于宽度而无法识别时,仍能识别为唯一的面板滚动区域,从而按原有逻辑有限次向下滑动,露出收货地址入口。
非目标
方案(最小方案)
purchasePanelScrollTargets()中的node.bounds.height >= node.bounds.width改为「高度不小于宽度的 80%」:node.bounds.height * 100 >= node.bounds.width * PANEL_SCROLL_MIN_HEIGHT_TO_WIDTH_PERCENT,新增常量PANEL_SCROLL_MIN_HEIGHT_TO_WIDTH_PERCENT = 80,并在注释中注明 #390 和原因。其余条件不变。:144查找地址入口、:646保存后在面板内确认)都会受影响,均为「露出内容」的可撤回滑动,不涉及点击下单。设计证据
无界面变化,不需要原型。
子项目影响、依赖与并行
automation/PurchaseLiveAutomation.kt、app/build.gradle.kts(版本号)、src/test下的回归测试。origin/main(b2285c8或更新),与 #388 改的是同一文件的不同位置。#388 仍待验收;本单可以实施,但装机时会一并带上 #388 的改动。验收标准
PURCHASE_ADDRESS_ENTRY_AMBIGUOUS失败;PURCHASE_ADDRESS_PANEL_TIMEOUT明确失败;风险与回退
PURCHASE_ADDRESS_PANEL_TIMEOUT失败,不会更糟。文档影响
本轮交付结论
代码、全套Android单元测试、APK构建及文档已完成并推送。原现场仅完成脱敏几何核对,未宣称完整原树回放;真机滑动效果待用户授权验证,详见本轮实施评论。
2026-10-13 开始实施:用户授权执行 #389/#390,完成后通知 Claude。#390 基于 origin/main
b2285c8在独立 worktree issue-390 实施,仅修改约定的滚动区域比例、版本及合成回归测试,先验证测试失败再最小修复。保留 #388 所有行为。实施不包含安装、真机修改地址/下单、合并或线上发布。线上原始快照的处理需服从仓库隐私规则,不把现有工单的临时落盘描述视为越过安全规则的授权;优先内存处理、只输出结构化证据,无法安全取得则如实标明未验证。实施完成,待验收(2026-10-13)
实现
b2285c8394f3fe19806aab58dd7d4882e3bbd9b1。fix/390-panel-scroll-ratio已推送;实现a3c05a751ba7674ca512931d16bff73604bb40d2,联合镜像文档0dfe8406c404a0b2f87acaaf1c22fb68d0991c9e(来自 #389 同内容文档提交,无代码依赖)。purchasePanelScrollTargets仅将高宽比门槛改为 >=80%,增加命名常量及原因注释;visible/enabled/scrollable、屏幕宽度>=60%、高度>=20%、候选唯一条件不变。验证
gradlew.bat test assembleDebug成功:Debug 82 suites / 840 tests,Release 80 suites / 827 tests,均零失败、零错误、零跳过;Debug APK 构建通过。APK
D:/OPC/goauto-worktrees/issue-390/android/app/build/outputs/apk/debug/app-debug.apk,6,604,611 bytes。D6CE472E8035E0AC9D14C89DD3B74C544A8C28563488D5535B5D6E2032C9FD14。D:/OPC/goauto/debug.keystore,证书 SHA256bf86d7465c6092be74ce9c4187eb30c9a7d045c3b91891a547e2598429766dec;未覆盖安装。文档与交付边界
e937060afcf088930d8ec3cda537ef1199265e74;SYB-ERP-Interface-Contract revision3f44b3ed91ff19c592bba4e2dbbef28d971633da。python dev_scripts/harness.py sync与sync --check,17 个页面一致性通过。两分支采用同一份联合 Wiki 镜像,避免相互覆盖。check --strict未通过:基线已有未登记镜像docs/evidence/pdd-home-35727-summary.md;已确认该文件在基线存在,本次未修改,不扩展修复范围。git diff --check通过。