真机报障(2026-10-07 09:50):面板上给 zhipu 填了 API Key,保存却一直回 400 primary_not_configured;盘上配置文件 mtime 一动不动 —— 连刚填的 key 一起被回滚,界面表现为「怎么填都存不进去」。 根因(顺序错误):saveProvider 先 applySelectionPatch(内含「主 provider 必须 已配齐」的校验),后 UpsertProviderEntry。校验看的是**盘上的旧文件**,而这次 提交里的 key 还没落盘 ⇒ 校验判它没配齐,整笔拒绝。 修法:把校验从 applySelectionPatch 里摘出来,改名 mergeSelectionPatch(只合并 文件级字段 + 回报有没有给 primary),由 saveProvider 在 UpsertProviderEntry **之后**对最终文件校验,再写盘。判据本身一字未改 —— 「真的没配齐的主家照样拒」。 验证:cmd/cyrene 整包测试绿;新增回归 TestWebSearchSaveProviderAndPrimaryInOneSubmit (同一次提交填 key + 选主家 ⇒ 200 且盘上 key 与 primary 都在;反向:真没配齐仍 400 且文件字节不变);用 -overlay 把校验改回「拿旧文件校验」⇒ 该用例变红且报错文案 与主人看到的逐字相同。