AskaEth
aa0bf8b5a0
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
fix(websearch): 面板「填 key + 同一次选它当主 provider」不再被自己的校验回滚
真机报障(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 把校验改回「拿旧文件校验」⇒ 该用例变红且报错文案
与主人看到的逐字相同。
2026-10-07 09:56:37 +08:00
..
2026-09-05 23:09:26 +08:00
2026-10-04 13:58:18 +08:00
2026-10-05 12:53:17 +08:00
2026-10-05 13:50:29 +08:00
2026-10-05 13:50:29 +08:00
2026-09-30 08:51:38 +08:00
2026-10-04 16:58:06 +08:00
2026-10-03 16:55:22 +08:00
2026-10-03 20:12:29 +08:00
2026-10-04 16:58:06 +08:00
2026-10-06 08:04:12 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:39:33 +08:00
2026-10-04 16:39:33 +08:00
2026-10-03 15:22:03 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-03 20:12:29 +08:00
2026-10-04 19:15:12 +08:00
2026-10-04 14:30:26 +08:00
2026-10-03 19:54:22 +08:00
2026-10-04 16:58:06 +08:00
2026-09-08 23:20:12 +08:00
2026-10-04 16:58:06 +08:00
2026-10-03 21:33:40 +08:00
2026-10-04 16:58:06 +08:00
2026-10-06 18:46:58 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 11:30:39 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-07 09:56:37 +08:00
2026-10-06 14:12:23 +08:00
2026-10-06 14:12:23 +08:00
2026-10-06 15:59:12 +08:00
2026-10-06 15:59:12 +08:00
2026-10-07 09:56:37 +08:00
2026-10-07 09:56:37 +08:00
2026-10-06 15:59:12 +08:00
2026-10-05 12:12:31 +08:00
2026-10-05 12:12:31 +08:00
2026-10-07 09:34:44 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 20:25:16 +08:00
2026-10-06 21:16:23 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 21:16:23 +08:00
2026-10-06 21:48:50 +08:00
2026-10-05 13:54:57 +08:00
2026-10-05 13:54:57 +08:00
2026-10-04 12:49:40 +08:00
2026-10-04 13:07:52 +08:00
2026-10-04 16:58:06 +08:00
2026-10-05 14:10:24 +08:00
2026-10-05 16:19:32 +08:00
2026-10-04 12:07:40 +08:00
2026-10-04 19:25:00 +08:00
2026-10-06 15:59:14 +08:00
2026-10-06 15:59:14 +08:00
2026-10-04 19:15:12 +08:00
2026-10-04 17:57:08 +08:00
2026-10-04 17:57:08 +08:00
2026-10-04 21:01:30 +08:00
2026-10-04 21:01:30 +08:00
2026-10-05 16:19:32 +08:00
2026-10-05 16:19:32 +08:00
2026-10-04 19:55:18 +08:00
2026-10-07 09:34:44 +08:00
2026-10-04 19:41:44 +08:00
2026-10-04 19:41:44 +08:00
2026-10-04 19:15:12 +08:00
2026-10-04 19:41:44 +08:00
2026-10-07 09:34:47 +08:00
2026-10-06 08:04:12 +08:00
2026-10-06 08:04:12 +08:00
2026-10-05 11:29:36 +08:00
2026-10-05 11:29:36 +08:00
2026-10-06 09:03:57 +08:00
2026-10-06 14:12:23 +08:00
2026-10-06 15:59:12 +08:00
2026-10-05 15:38:53 +08:00
2026-10-07 09:34:44 +08:00
2026-10-06 21:16:23 +08:00
2026-09-07 13:43:18 +08:00
2026-10-05 13:23:52 +08:00
2026-10-05 13:23:52 +08:00
2026-10-04 22:16:26 +08:00
2026-10-04 22:16:26 +08:00
2026-10-06 09:04:04 +08:00
2026-10-05 22:38:20 +08:00
2026-10-06 09:04:04 +08:00
2026-10-06 08:04:12 +08:00