mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-07 17:08:33 +08:00
#5394 把配置加载失败改成 fail-closed,但该分支位于 risk_control_enabled 与 cfg.Enabled 两道闸门之前,导致从未开启风控的部署也会被 500 打死;同时它没有覆盖 #5388 实际抱怨的场景——审计 API 调用失败仍然放行。 - 配置加载失败恢复 fail-open:loadRuntimeSnapshot 仅在冷启动无快照时报错,此刻 无从得知运维的阻断意图,拦截会让一次设置读取抖动、或一行损坏的配置 JSON 演变 成全站 5xx(后者确定性失败,快照永远建不起来,构成永久中断) - 新增 fail_closed_on_error 开关(默认关):仅在「审计启用 + pre_block 模式」下 生效,覆盖审计 API 调用失败与无可用审计 Key 两条路径,这才是 #5388 的场景 - fail-closed 响应改为 503 + content_moderation_unavailable,与 prompt-guard 既有 的不可用语义对齐,不再把系统故障伪装成 content_policy_violation - Flagged 恒为 false 且不写 flagged 日志,故障拒绝不进入自动封号计数 - 异步 worker 与 observe 模式永不 fail-closed(无可拒绝的客户端) Refs #5388, #5394