marco
|
bbaca793c9
|
Merge origin/main into feat/compare-record-backend-harvest
解决 compare.py 冲突 + 对齐 #113 邀请发奖口径:
- compare.py 冲突(#112 新增 /trace/epilogue vs 本分支 harvest 重写):保留 harvest
全套,把 #112 的 /trace/epilogue 端点从已删除的 _passthrough 改写到 _forward
(harvest_first_frame=False 纯透传,不建行/不落库——该 trace 记录已由 done/finalize 落终态)
- 对齐 #113(发奖从「比价」改「实际下单」):从 harvest_done 移除 try_reward_on_compare
调用 + 其 import,发奖只保留在 order.py(#113 加)。否则比价先于下单 + try_reward
幂等闸会把奖落在「比价」这步,架空 #113 的「下单才发奖」防刷。同步清理相关
docstring/summary(price_step「+发奖」措辞、模块头「幂等发一次邀请奖」)
验证:本分支 harvest/proxy/milestone 测试全绿(44 passed);py_compile 通过;无残留冲突标记。
注:tests/test_invite.py::test_bind_flow_no_coins_either_side 在 pristine origin/main 上
即已红(#113 改 invite 行为但未随附测试更新),非本次合并引入,不在本分支职责内。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-04 02:28:46 +08:00 |
|
marco
|
635d127f95
|
比价记录改后端 harvest: 透传壳落库替代客户端主动 POST
compare.py 透传壳新增后端 harvest(不再依赖客户端 POST /compare/record):
- 帧0(客户端首帧不带 trace_id)由 app-server 用 uuid 签发 trace_id、注入转发 body、
回填响应顶层,并按 trace_id 建 running 行(harvest_running)
- done 帧(command=done 且 continue=false)更新为 success/failed 终态,并对本次新落成
success 幂等发一次邀请奖(harvest_done + try_reward_on_compare)
- /trace/finalize(用户终止/Phase1 未识别,无 done)更新为 cancelled/failed,
不降级已 success(harvest_abort)
- 软鉴权 OptionalUser(deps.py 新增 get_current_user_optional):新客户端带 JWT 绑
user_id,老客户端匿名建行、user_id 暂空,由其后续 POST /compare/record 按 trace_id
reconcile;新版覆盖够高后可收紧成硬鉴权
- 结构化日志(logging.py 加 trace_id_ctx ContextVar):请求级 trace_id 贯穿 harvest 各阶段
comparison_record 表结构调整(迁移 comparison_record_trace_unique):
- 唯一键 (user_id,trace_id) → trace_id 单列(harvest 帧0 建行时 user_id 可能暂缺)
- user_id 改可空
repositories/comparison.py 加 harvest_running/harvest_done/harvest_abort;
compare_record.py 的 POST /record 降级为灰度期老客户端兼容(按 trace_id 幂等、不降级 success);
补 tests/test_compare_harvest.py,test_compare_proxy/milestone 适配。
文档同步: docs/database/comparison_record.md 更新表结构(唯一键/user_id 可空/status 取值)
与写入模型; docs/api/compare/compare-record-report.md 标注 POST /record 灰度定位。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-04 01:56:46 +08:00 |
|