两处都是真机实测踩到的(2026-09-19): - 拾忆页重复卡片:双写迁移期同一条闹钟本地与服务端各有一份,投影层只信本地 的 synced 标志,而那只是服务端事实的影子拷贝——上传成功后进程被杀、重装、 清缓存都会把它打回 unsynced,于是凭空多一条(一张能编辑、点另一张说没同步 到服务器)。改用服务端自己带的答案:client_key / source_id 存的就是指令 id, 对上了就不再投影(pendingLocalReminders,两个键都认,历史数据里有只写一个的)。 顺带补上 _uploadReminder 成功后的 reminders.refresh()——改的是 RxList 元素 内部字段,不通知没人知道,syncPending() 那条补传路径本来就 refresh 了。 - 闹钟定到过去:模型下发的 date 偶尔早一天(会话 Start 没告诉百炼今天几号), 客户端原样信了,闹钟落到昨天那一页、而且永远不会响。rollForwardPastDate 把 过去的一次性闹钟挪到就近的未来。只管一次性的——重复闹钟的 date 是锚点,落在 过去是正常的,挪了会把第一次触发推迟一周。治本要在百炼控制台注入当前时间。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>