From b9af769895db54ddfc42374753cb566bf9783570 Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Tue, 13 Jan 2026 20:53:26 +0800 Subject: [PATCH] fix(rectifier): add detection for signature field required error Add support for detecting "signature: Field required" error pattern in the thinking signature rectifier. This enables automatic request rectification when upstream API returns this specific validation error. --- src-tauri/src/proxy/thinking_rectifier.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src-tauri/src/proxy/thinking_rectifier.rs b/src-tauri/src/proxy/thinking_rectifier.rs index 731beb9c0..827ce5618 100644 --- a/src-tauri/src/proxy/thinking_rectifier.rs +++ b/src-tauri/src/proxy/thinking_rectifier.rs @@ -67,6 +67,12 @@ pub fn should_rectify_thinking_signature( return true; } + // 场景4: signature 字段必需但缺失 + // 错误示例: "signature: Field required" + if lower.contains("signature") && lower.contains("field required") { + return true; + } + false } @@ -279,6 +285,21 @@ mod tests { assert!(!should_rectify_thinking_signature(None, &enabled_config())); } + #[test] + fn test_detect_signature_field_required() { + // 场景4: signature 字段缺失 + assert!(should_rectify_thinking_signature( + Some("***.***.***.***.***.signature: Field required"), + &enabled_config() + )); + // 嵌套 JSON 格式 + let nested_error = r#"{"error":{"type":"","message":"{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"***.***.***.***.***.signature: Field required\"},\"request_id\":\"req_xxx\"}"}}"#; + assert!(should_rectify_thinking_signature( + Some(nested_error), + &enabled_config() + )); + } + #[test] fn test_disabled_config() { // 即使错误匹配,配置关闭时也不触发