Nexus 0.6.0 - September 29, 2025
Summary
This maintenance release focuses on improving client IP extraction for better rate limiting support, enhancing telemetry metrics with proper units, and reorganizing the test infrastructure for better maintainability.
Breaking Changes
Telemetry Metrics Unit Change
Impact: OpenTelemetry metrics are now reported with proper unit annotations.
Change: Histogram metrics now include the s (seconds) unit annotation, aligning with OpenTelemetry specifications for proper metric interpretation in observability platforms. Previously, metrics were reported in milliseconds.
New Features
Configurable Client IP Extraction
User Impact: Administrators can now configure how Nexus determines client IP addresses for rate limiting and logging, essential for deployments behind proxies or load balancers.
Configuration:
[server.client_ip]
# Use X-Real-Ip header to retrieve the client IP address (default: false)
x_real_ip = true
# Use X-Forwarded-For header with trusted hop count
# Absent by default, which deactivates this method
x_forwarded_for_trusted_hops = 1Resolution Order:
X-Real-Ipheader (if enabled)X-Forwarded-Forheader at specified hop (if configured)- Connection source IP (fallback)
Enhancements
HTTP Client Optimization for LLM Providers
User Impact: Improved reliability and performance when communicating with LLM providers.
Technical Details:
- Standardized HTTP client configuration across all LLM providers
- Applied common defaults from Grafbase Gateway for consistency
- Modified:
crates/llm/src/provider/http_client.rs - Affects: OpenAI, Anthropic, Google, and Bedrock providers
Dependency Updates
- Updated OpenTelemetry Rust monorepo to v0.31
- Updated regex crate to v1.11.3
- Updated various GitHub Actions to latest versions
- Switched to forked fastrace for compatibility fixes
Deployment Notes
Configuration Changes
If you're running Nexus behind a proxy or load balancer, you should configure client IP extraction:
- For single proxy (nginx, Cloudflare, etc.):
[server.client_ip]
x_real_ip = true- For proxy chain:
[server.client_ip]
x_forwarded_for_trusted_hops = 2 # Adjust based on your proxy countObservability Updates
Metrics were previously reported in milliseconds without any unit, now they're reported in seconds (s)