cg52 的 PDD 商品规格面板将 14 个颜色款式放在单列纵向滚动容器中,目标颜色位于首屏以下。当前 Client 的颜色选择器把所有可滚动颜色区域都按横向列表处理,只左右滑动;纵向容器没有移动,页面签名稳定后提前结束,误报 PURCHASE_OPTIONS_MISMATCH / 没有找到目标颜色。
PURCHASE_OPTIONS_MISMATCH / 没有找到目标颜色
复现:领取 cg52,进入 PDD 商品规格面板,首屏只显示前 9 个颜色;目标颜色在纵向列表末尾。Client 两次均停在 purchase_select_options,未写入不可逆标记。
purchase_select_options
client/src/util/select_color_size.py
client/test/test_select_color_size.py
client/test/test_pdd_u2_purchase_adapter.py
docs/client/06-quality-security.md
预计不修改数据库和接口。
PURCHASE_OPTIONS_MISMATCH
从 client/ 执行:
client/
C:/Python310/python.exe -m py_compile src/util/select_color_size.py test/test_select_color_size.py C:/Python310/python.exe -m pytest -q test/test_select_color_size.py test/test_pdd_u2_purchase_adapter.py C:/Python310/python.exe -m pytest -q test $env:QT_QPA_PLATFORM="offscreen" C:/Python310/python.exe -c "from src.ui_main import MainWindow; from PyQt5.QtWidgets import QApplication; app=QApplication([]); w=MainWindow(); print('OK'); app.quit()" Remove-Item Env:QT_QPA_PLATFORM
真机验收只在提交订单前观察规格选择;不得点击最终提交或付款。
风险是布局误判导致滑错区域或误选相似规格。方向判断必须基于候选坐标和可信滚动容器,找不到唯一目标或无法确认选中即停止。回退时恢复原颜色选择器并让纵向场景安全失败;不得放宽精确匹配或不可逆门禁。
实施进度(进行中):
vertical
0.1.2
0.1.0
git diff --check
待提交代码和完成归档。
实施完成,状态:待用户验收。
最终实现:
验证:
提交:
d69c9cc
fix: 兼容纵向颜色规格列表 (#264)
be73e8d
docs: 归档任务 #264
归档:docs/task/264-兼容纵向颜色规格列表并安全选择目标.md
docs/task/264-兼容纵向颜色规格列表并安全选择目标.md
工单保持开启,等待用户用重启后的最新 Client 复验 cg52。
用户真机验收失败,#264 状态退回:进行中。
新增事实:
irreversible_action_at
None
_color_scroll_direction()
_heading_bounds()
修正边界:
region
现有提交保留供修订;归档将在修复验证后更新。
#264 修订完成,重新进入待用户验收。
针对首次真机验收失败已完成:
container_found=true
heading_in_region=true
direction=vertical
新增提交:
2e40bc6
fix: 收窄颜色方向识别范围 (#264)
fc13b2c
docs: 更新任务 #264 修订记录
归档已更新:docs/task/264-兼容纵向颜色规格列表并安全选择目标.md。工单保持开启,等待重启最新 Client 后复验 cg52。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
cg52 的 PDD 商品规格面板将 14 个颜色款式放在单列纵向滚动容器中,目标颜色位于首屏以下。当前 Client 的颜色选择器把所有可滚动颜色区域都按横向列表处理,只左右滑动;纵向容器没有移动,页面签名稳定后提前结束,误报
PURCHASE_OPTIONS_MISMATCH / 没有找到目标颜色。复现:领取 cg52,进入 PDD 商品规格面板,首屏只显示前 9 个颜色;目标颜色在纵向列表末尾。Client 两次均停在
purchase_select_options,未写入不可逆标记。做什么 / 不做什么
怎么做
client/src/util/select_color_size.py:client/test/test_select_color_size.py:增加目标在纵向首屏以下、横向列表兼容、网格判断、方向不明和滚动到底仍不存在等测试。client/test/test_pdd_u2_purchase_adapter.py和docs/client/06-quality-security.md,验证采购入口仍在不可逆前安全失败。预计不修改数据库和接口。
验收标准
PURCHASE_OPTIONS_MISMATCH,不选择近似颜色。怎么验证
从
client/执行:真机验收只在提交订单前观察规格选择;不得点击最终提交或付款。
风险和回退
风险是布局误判导致滑错区域或误选相似规格。方向判断必须基于候选坐标和可信滚动容器,找不到唯一目标或无法确认选中即停止。回退时恢复原颜色选择器并让纵向场景安全失败;不得放宽精确匹配或不可逆门禁。
?????????????????to 兼容纵向颜色规格列表并安全选择目标实施进度(进行中):
vertical,未执行规格点击或提交订单。0.1.2与测试固定期望0.1.0不一致,与本工单无关。git diff --check、离屏 MainWindow 冒烟通过。待提交代码和完成归档。
实施完成,状态:待用户验收。
最终实现:
vertical;未自动点击规格、提交订单或付款。验证:
0.1.2与旧测试期望0.1.0不一致,与 #264 无关。git diff --check、离屏 MainWindow 冒烟通过。提交:
d69c9ccfix: 兼容纵向颜色规格列表 (#264)be73e8ddocs: 归档任务 #264归档:
docs/task/264-兼容纵向颜色规格列表并安全选择目标.md工单保持开启,等待用户用重启后的最新 Client 复验 cg52。
用户真机验收失败,#264 状态退回:进行中。
新增事实:
PURCHASE_OPTIONS_MISMATCH结束;两次irreversible_action_at均为空。None,没有执行纵向滑动。_color_scroll_direction()从整棵控件树收集“中心点落在区域内”的所有 clickable 节点,混入了规格容器外的悬浮控件和跨越容器的大面积父节点。污染后的横纵跨度接近,方向证据被误判为不足。_heading_bounds()可能先命中规格面板外的背景“颜色”文字,说明标题也需要按所选规格容器收窄作用域。修正边界:
region对应的真实 scrollable 节点后,只使用该容器后代且边界完整落在容器内的 clickable 规格节点;去重嵌套重复边界。现有提交保留供修订;归档将在修复验证后更新。
#264 修订完成,重新进入待用户验收。
针对首次真机验收失败已完成:
验证:
container_found=true、heading_in_region=true、direction=vertical;未滑动、未点击规格、未提交订单。0.1.2与旧测试期望0.1.0不一致。git diff --check、离屏 MainWindow 冒烟通过。新增提交:
2e40bc6fix: 收窄颜色方向识别范围 (#264)fc13b2cdocs: 更新任务 #264 修订记录归档已更新:
docs/task/264-兼容纵向颜色规格列表并安全选择目标.md。工单保持开启,等待重启最新 Client 后复验 cg52。