superagent请求问题修复

This commit is contained in:
andy committed 2026-09-06 01:40:15 +08:00
1 parent ee9d2d7cf1
commit 7243319bbb
19 files changed
+388 -74

No files matched your search

+7
View File
@@ -18,6 +18,7 @@ const (
SuperAgentEnabledEnv = "FIRE_SAFETY_SUPERAGENT_ENABLED"
SuperAgentBaseURLEnv = "FIRE_SAFETY_SUPERAGENT_BASE_URL"
SuperAgentOpenAPIKeyEnv = "FIRE_SAFETY_SUPERAGENT_OPEN_API_KEY"
SuperAgentIncludeTraceEnv = "FIRE_SAFETY_SUPERAGENT_INCLUDE_TRACE"
SuperAgentConnectTimeoutEnv = "FIRE_SAFETY_SUPERAGENT_CONNECT_TIMEOUT"
SuperAgentRecoveryMaxAttemptsEnv = "FIRE_SAFETY_SUPERAGENT_RECOVERY_MAX_ATTEMPTS"
SuperAgentRecoveryInitialBackoffEnv = "FIRE_SAFETY_SUPERAGENT_RECOVERY_INITIAL_BACKOFF"
@@ -107,6 +108,7 @@ type SuperAgentConfig struct {
Enabled bool
BaseURL string
OpenAPIKey string
IncludeTrace bool
ConnectTimeout time.Duration
RecoveryMaxAttempts int
RecoveryInitialBackoff time.Duration
@@ -163,6 +165,10 @@ func Load() (Config, error) {
if err != nil {
return Config{}, err
}
includeTrace, err := parseBool(SuperAgentIncludeTraceEnv, false)
if err != nil {
return Config{}, err
}
connectTimeout, err := parseDuration(SuperAgentConnectTimeoutEnv, defaultSuperAgentConnectTimeout)
if err != nil {
return Config{}, err
@@ -188,6 +194,7 @@ func Load() (Config, error) {
Enabled: enabled,
BaseURL: strings.TrimRight(strings.TrimSpace(os.Getenv(SuperAgentBaseURLEnv)), "/"),
OpenAPIKey: strings.TrimSpace(os.Getenv(SuperAgentOpenAPIKeyEnv)),
IncludeTrace: includeTrace,
ConnectTimeout: connectTimeout,
RecoveryMaxAttempts: recoveryMaxAttempts,
RecoveryInitialBackoff: recoveryInitialBackoff,
+9
View File
@@ -20,6 +20,9 @@ func TestLoadDefaults(t *testing.T) {
if cfg.SuperAgent.Enabled {
t.Fatal("SuperAgent.Enabled = true, want false")
}
if cfg.SuperAgent.IncludeTrace {
t.Fatal("SuperAgent.IncludeTrace = true, want false")
}
if cfg.SuperAgent.ConnectTimeout != 15*time.Second {
t.Fatalf("ConnectTimeout = %v, want 15s", cfg.SuperAgent.ConnectTimeout)
}
@@ -169,6 +172,7 @@ func TestLoadConfiguredValues(t *testing.T) {
t.Setenv(SuperAgentEnabledEnv, "true")
t.Setenv(SuperAgentBaseURLEnv, " https://superagent.example.test/root/ ")
t.Setenv(SuperAgentOpenAPIKeyEnv, " test-open-api-key ")
t.Setenv(SuperAgentIncludeTraceEnv, "true")
t.Setenv(SuperAgentConnectTimeoutEnv, "3s")
t.Setenv(SuperAgentRecoveryMaxAttemptsEnv, "2")
t.Setenv(SuperAgentRecoveryInitialBackoffEnv, "20ms")
@@ -189,6 +193,9 @@ func TestLoadConfiguredValues(t *testing.T) {
if cfg.SuperAgent.OpenAPIKey != "test-open-api-key" {
t.Fatal("OpenAPIKey was not loaded")
}
if !cfg.SuperAgent.IncludeTrace {
t.Fatal("IncludeTrace = false, want true")
}
if cfg.SuperAgent.ConnectTimeout != 3*time.Second || cfg.SuperAgent.RecoveryMaxAttempts != 2 || cfg.SuperAgent.RecoveryInitialBackoff != 20*time.Millisecond {
t.Fatalf("unexpected recovery config: %#v", cfg.SuperAgent)
}
@@ -204,6 +211,7 @@ func TestLoadRejectsInvalidValues(t *testing.T) {
value string
}{
{name: "boolean", key: SuperAgentEnabledEnv, value: "sometimes"},
{name: "include trace boolean", key: SuperAgentIncludeTraceEnv, value: "sometimes"},
{name: "connect timeout syntax", key: SuperAgentConnectTimeoutEnv, value: "soon"},
{name: "connect timeout non-positive", key: SuperAgentConnectTimeoutEnv, value: "0s"},
{name: "recovery attempts syntax", key: SuperAgentRecoveryMaxAttemptsEnv, value: "many"},
@@ -574,6 +582,7 @@ func clearEnvironment(t *testing.T) {
SuperAgentEnabledEnv,
SuperAgentBaseURLEnv,
SuperAgentOpenAPIKeyEnv,
SuperAgentIncludeTraceEnv,
SuperAgentConnectTimeoutEnv,
SuperAgentRecoveryMaxAttemptsEnv,
SuperAgentRecoveryInitialBackoffEnv,