b3b731f25d
冲突全在领券「弹窗频控按 App 独立」这一功能——本分支夹带的旧 WIP 草稿(2026-06-12, app_package 可空+NULL 兜底行)与 main 上已合并的最终版 #52(2026-06-14,package NOT NULL +"" 占位)是同一功能的两套不兼容实现。 解决:四个 coupon 文件(api/models/repositories/schemas)一律取 main(#52)——它是 权威已合版,且文件未冲突区已自动并入 #52 的签名,只有取 theirs 才自洽。 Alembic 收敛为单 head: - 删本分支 WIP 迁移 coupon_engagement_app_package(否则与 #52 重复建 per-App 列) 及其仅用于挂接它的两个空 merge 节点 3a9941e76909 / f3d0a16bb4c2 - device_liveness_table 的 down_revision 由 f3d0a16bb4c2 改挂 main 头 store_mapping_tb_dl_invalid 验证:alembic heads 单头;全链在临时 sqlite upgrade head 通过; coupon_prompt_engagement 只有 package、无 app_package;app 全量 import 通过。 注:本分支不再保留他人领券 WIP——无损,#52 即该功能的最终版,已在 main。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>