Autumn-27
77834f0080
fix(notify): 目的地字段留空不应被判成地址变更
Telegram 渠道从第二次保存起会永久失败,用户什么都没改也存不上:
新建时 base_url 留空(用官方 API 地址),创建路径直接存下 base_url:""
→ 第一次保存,MergeConfig 把空串当显式清空、delete 掉该键
→ 第二次保存,前端照常提交 base_url:"",而 stored 里已经没这个键
→ sameConfigValue("", nil) 比较 `""` 与 `null`,判为不等 → changed=[base_url]
→ bot_token 是掩码回显值 → 400「目标地址已变更,请同时重新填写凭据字段」
此后每次保存都失败,除非重新粘贴一遍 Bot Token,而错误提示还把人
往「凭据有问题」上引。
根因是 MergeConfig 与 sameConfigValue 对「空」的口径不一致:前者认为
空串就是「该删掉这个键」,后者认为 "" 与键不存在是两个不同的值。
现在比较前先归一化,口径与 MergeConfig 的清空判定对齐。
这是上一轮修「改目标地址、保留凭据」那条凭据外发路径时引入的回归——
守卫本身是对的,只是把一个没变的空字段误判成了地址变更。配套用例覆盖了
两个方向的真实变更(空→自建反代、自建反代→空)仍必须要求重填 Token,
确认防护没有被削弱。
2026-10-01 06:43:48 -04:00
..
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-10-01 06:43:48 -04:00
2026-10-01 06:43:48 -04:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00
2026-09-30 16:25:06 +08:00