0
Fork 0
mirror of https://github.com/Silent1566/webhtv.git synced 2026-11-14 02:00:15 +00:00
webhtv-mys/app/schemas
Silent1566 699635fca7 fix(following): propagate unfollow across one-key sync via tombstones
取消追更原为物理删除, 备份快照无法携带删除意图, TV 端 union 合并永远保留该行,
导致手机取消追更后 TV 仍需手动再删一次。

改为墓碑表方案:
- Following 增加 deleted_at 列 (v2->v3 全量重建迁移, v2 时代 enabled=0 行一并转墓碑)
- 取消追更改写墓碑 (markDeleted), 备份捕获/合并均含墓碑行, 删除意图随一键同步传播
- 合并策略墓碑分支: 双墓碑取较新; 取消后重追 (createdAt>deletedAt) 复活胜出; 旧版快照不复活
- 活行查询 (list/find/findDue/unreadCount) 过滤墓碑; 重追经 saveNew 复活并重置 createdAt
- 防复活: TMDB 身份迁移遇墓碑目标直接返回; 订阅导入跳过墓碑候选

验证: JVM Following 套件 34/34; 设备测试 16/17 (唯一失败为 HEAD 历史遗留,
stash 实证与本任务无关); 迁移/复活/防复活设备用例全绿 (emulator-5561 覆盖安装)。

Verification: JVM 34/34 (FollowingMergePolicyTest 7 用例全绿含 5 新墓碑用例); 设备 16/17 (唯一失败 FollowingActivityDeviceTest 为 HEAD 历史遗留, stash 实证无关); 迁移 v1->v3 与 v2->v3 数据保留+enabled=0转墓碑验证通过; 重追复活/订阅导入防复活/旧快照合并防复活设备用例通过

Task-Guard: C9-following-tombstone-sync
History 2026-10-03 11:55:48 +08:00
..
com.fongmi.android.tv.db.AppDatabase feat: implement playback sync stable identity matching 2026-09-24 23:24:02 +08:00
com.fongmi.android.tv.following.FollowingDatabase fix(following): propagate unfollow across one-key sync via tombstones 2026-10-03 11:55:48 +08:00