fn resolve_retry_config(&self) -> RetryConfig {
        let mut config = RetryConfig::default();

        // Override with environment variables if available
        if let Ok(val) = std::env::var("FORGE_RETRY_INITIAL_BACKOFF_MS") {
            if let Ok(parsed) = val.parse::<u64>() {
                config.initial_backoff_ms = parsed;
            }
        }

        if let Ok(val) = std::env::var("FORGE_RETRY_BACKOFF_FACTOR") {
            if let Ok(parsed) = val.parse::<u64>() {
                config.backoff_factor = parsed;
            }
        }

        if let Ok(val) = std::env::var("FORGE_RETRY_MAX_ATTEMPTS") {
            if let Ok(parsed) = val.parse::<usize>() {
                config.max_retry_attempts = parsed;
            }
        }

        if let Ok(val) = std::env::var("FORGE_RETRY_STATUS_CODES") {
            let status_codes: Vec<u16> = val
                .split(',')
                .filter_map(|code| code.trim().parse::<u16>().ok())
                .collect();
            if !status_codes.is_empty() {
                config.retry_status_codes = status_codes;
            }
        }

        config
    }
Resolves retry configuration from environment variables or returns
defaults
crates/forge_infra/src/env.rs