4e53a99629
第二轮同步审计实测复现(最小用例 0.3s 即炸):upsert_media 的 update_cols 取了全部表列,而 values 只含 11 个业务列——server_default 列 (fetched_at/updated_at)不在 INSERT 列集,MySQL 编译 ON DUPLICATE 时生成 new.fetched_at 悬空引用 → 1054 Unknown column → 每夜 full 的 call_recordings 步骤(录音下载本地化)自生产部署起**每夜静默失败**, 新录音一直没本地化(异常被 SyncRun 吞成 failed 日志,序列继续)。 修:update_cols 只取 values 里实际有的列(对齐 _build_upsert_stmt 的 「只更新实际插入列」原则);updated_at 在冲突重下时刷 now()。 SQLite 分支(excluded 引用宽容)同逻辑修正;722 测试绿。 Co-Authored-By: Claude Code <noreply@anthropic.com>