fix(t212): preserve ranked candidate identity

This commit is contained in:
QiuSW
2026-07-27 22:31:17 +08:00
parent ca60cc1edc
commit 4b795a4224
7 changed files with 382 additions and 115 deletions
+9 -9
View File
@@ -5,10 +5,9 @@
## 当前快照
- 日期:2026-07-27
- 阶段:T-211 参考图召回与 SKU 硬匹配完成;下一步 T-212 修复候选重排映射,
随后 T-213 只读核验拼多多规格弹窗
- 阶段:T-212 候选重排身份映射完成;下一步 T-213 只读核验拼多多规格弹窗
- Git:当前分支为 `main`;T-001 至 T-004、T-101 至 T-104、T-201 至 T-207、T-209、
T-210、T-211 均已纳入 Git 历史
T-210、T-211、T-212 均已纳入 Git 历史
- 生产代码:`android-buyer/` 已接入 Roubao Android 源码
- Android:固定 `main@c8a6d7f03422eb01744b01f3ee77bf7757741f7e`;MIT 许可证已保留
@@ -18,8 +17,8 @@
- 本机 Android 工具:JDK 17.0.13、Command-line Tools 22.0、SDK 34、
Build Tools 34.0.0、Platform Tools/ADB 37.0.0;用户级 SDK 环境变量已设置
- Android Studio:未安装;`winget` 静默安装卡住后已终止,不阻塞命令行构建
- 测试:T-211 运行 `:app:testDebugUnitTest` 和 `:app:assembleDebug` 通过,20 个 suite
共 108 个测试、0 失败;最新 Debug APK 已安装到 PKG110
- 测试:T-212 运行 `:app:testDebugUnitTest` 和 `:app:assembleDebug` 通过,21 个 suite
共 113 个测试、0 失败;T-211 Debug APK 已安装到 PKG110
- 后端测试:T-211 运行 `GOTOOLCHAIN=local go test -count=1 ./...` 和
`go vet ./...` 通过;T-207 的全包 race 与 migration 验证继续有效
- 原型:4 个管理 Web 页面和 7 个 Android 页面均可离线独立打开;Playwright
@@ -108,7 +107,7 @@
| `docs/tasks/T-209.md` | DONE | 登录失败保留采购员和设备输入以便直接重试 |
| `docs/tasks/T-210.md` | DONE | 兼容拼多多 8.17 搜索结果页与长词省略显示 |
| `docs/tasks/T-211.md` | DONE | 参考图召回、SKU 颜色尺码硬匹配与 0..5 候选回传 |
| `docs/tasks/T-212.md` | TODO | 修复重排候选、推荐、证据与人工接受的身份映射 |
| `docs/tasks/T-212.md` | DONE | 修复重排候选、推荐、证据与人工接受的身份映射 |
| `docs/tasks/T-213.md` | TODO | 只读采集拼多多规格弹窗中的颜色和尺码证据 |
| `docs/design/` | 已确认 | T-202 原型索引、4 个管理页和 7 个 Android 页面 |
| `deepseek总结.txt` | 已有 | 历史讨论摘要,不是正式需求权威 |
@@ -120,9 +119,10 @@
## 任务摘要
- 已完成:T-001 至 T-004、T-101 至 T-104、T-201 至 T-207、T-209、T-210、T-211。
- 正在进行:T-212 修复 Top 5 候选 ordinal 与证据映射。
- 下一个可领取任务:无;T-213 依赖 T-212 完成。
- 已完成:T-001 至 T-004、T-101 至 T-104、T-201 至 T-207、T-209、T-210、T-211、
T-212。
- 正在进行:无。
- 下一个可领取任务:T-213 拼多多规格弹窗只读核验。
- 后置任务:T-213 拼多多规格弹窗只读核验;完成后再做 T-208 候选决策数据与人工
理由闭环。
+15 -7
View File
@@ -4,7 +4,7 @@ title: 修复 Top 5 候选 ordinal 与证据映射
phase: 2
deps:
- T-211
status: DOING
status: DONE
created: 2026-07-27
context_ref: edfee2c
work_branch: null
@@ -44,12 +44,12 @@ VLM 原始候选 ordinal 查找已经重排的 `ExecutionCandidateDraft`。当
## 验收要点
- [ ] 原始候选 3 得分最高时,回传候选 1、推荐项和人工接受终态都引用原候选 3 的证据。
- [ ] 过滤后只剩原始候选 2、5 时,回传 ordinal 为 1、2,证据分别保持 2、5 的来源。
- [ ] 相同分数按置信度和原始曝光顺序稳定排序,重试不会改变映射。
- [ ] 空候选、单候选、拒绝和无匹配路径不产生越界或错误 fallback。
- [ ] 后端 schema v2 的推荐首项、连续 ordinal 和证据资产校验继续通过。
- [ ] Android 单元测试和 Debug 构建通过;人工接受仍保持
- [x] 原始候选 3 得分最高时,回传候选 1、推荐项和人工接受终态都引用原候选 3 的证据。
- [x] 过滤后只剩原始候选 2、5 时,回传 ordinal 为 1、2,证据分别保持 2、5 的来源。
- [x] 相同分数按置信度和原始曝光顺序稳定排序,重试不会改变映射。
- [x] 空候选、单候选、拒绝和无匹配路径不产生越界或错误 fallback。
- [x] 后端 schema v2 的推荐首项、连续 ordinal 和证据资产校验继续通过。
- [x] Android 单元测试和 Debug 构建通过;人工接受仍保持
`order_submitted=false`。
## 边界
@@ -64,3 +64,11 @@ VLM 原始候选 ordinal 查找已经重排的 `ExecutionCandidateDraft`。当
采集,避免把错误候选写入后续优化数据。
- 2026-07-27:基于 `1d9dd08` 领取任务,先建立可单测的显式映射模型,再接入候选
批次和人工接受路径。
- 2026-07-27:新增 `RankedCandidateAssessment` 和
`ExecutionCandidateSourceIdentity`,显式保存原始 ordinal、重排 ordinal 和证据
SHA-256。候选批次、推荐和人工接受均从同一映射生成;删除按原始 ordinal 查找和
“找不到就取第一个”的 fallback,映射不一致时进入受控证据失败。
- 2026-07-27:新增原候选 3 重排为 1、过滤后原候选 2/5 重排为 1/2、空候选和
缺失 ordinal 回归测试。`.\gradlew.bat :app:testDebugUnitTest :app:assembleDebug
--no-daemon` 通过,21 个 suite 共 113 个测试、0 失败;
`GOTOOLCHAIN=local go test -count=1 ./...` 通过。