AskaEth
fe3872ee28
fix(trace): 令牌守卫上移进 trace.UpstreamError,构造即安全
M48 复审的中危 finding:error.type 里的散文经 trace.UpstreamError 原样出镜,
因为守卫加在调用方(M46 的 model/voice 两处),构造函数自己不套守卫 ——
任何新调用点默认不安全,httpclient / vision / embedding / weixin 四条出口一直漏。
- trace.UpstreamError 构造时对 error.code / error.type 各走一次 ErrorToken
([A-Za-z0-9_.-]{<=64},不合规即空串):默认安全,不是可选加固。
- 构造后注入这条窄路收进 UpstreamErrorInfo.SetCode / SetType(同一道守卫),
供 DashScope 顶层 code 与 Anthropic 流内 error.type 两处使用 —— 调用方不再
各抄一份 ErrorToken。
- 删除因此冗余的调用方守卫:model.providerUpstreamError 与
voice.dashscopeOKBodyError。保留 voice 的 request_id 守卫(它不是 code/type,
构造函数看不见)。
- 四条漏的出口一行没改,只加用例证明守卫上移后自动安全;摘掉构造函数守卫时
四条用例 + model/voice 旧用例同时变红。
2026-10-26 19:13:38 +08:00
..
2026-10-26 18:45:34 +08:00
2026-10-04 12:29:05 +08:00
2026-10-07 10:59:22 +08:00
2026-10-04 12:29:05 +08:00
2026-10-04 12:29:05 +08:00
2026-10-07 10:59:22 +08:00
2026-10-05 11:29:54 +08:00
2026-10-05 12:07:18 +08:00
2026-10-05 12:07:18 +08:00
2026-10-04 12:29:05 +08:00
2026-10-04 12:29:05 +08:00
2026-10-04 12:29:05 +08:00
2026-10-04 12:29:05 +08:00
2026-10-04 12:29:05 +08:00
2026-10-04 12:29:05 +08:00
2026-10-05 11:04:41 +08:00
2026-10-04 22:13:17 +08:00
2026-10-05 11:29:54 +08:00
2026-10-05 11:26:02 +08:00
2026-10-04 12:29:05 +08:00
2026-10-05 12:07:18 +08:00
2026-10-04 12:29:05 +08:00
2026-10-06 09:03:44 +08:00
2026-10-05 08:04:50 +08:00
2026-10-05 08:04:50 +08:00
2026-10-26 18:45:34 +08:00
2026-10-05 08:04:50 +08:00
2026-10-06 09:03:44 +08:00
2026-10-04 12:29:05 +08:00
2026-10-05 11:31:14 +08:00
2026-10-06 09:03:44 +08:00
2026-10-06 09:03:44 +08:00
2026-10-26 13:47:56 +08:00
2026-10-26 19:13:38 +08:00