V1.4.1 Changelog¶
Release Date: 2026-03-24 Version: V1.4.1 Compatibility: ✅ Backward compatible with V1.4.0
🎉 Version Highlights¶
V1.4.1 is a stability enhancement release, focusing on core functionality improvements and code quality:
- 🔌 Circuit Breaker Refactoring - State pattern implementation, reduced cyclomatic complexity by 67%
- 📊 Rate Limiter Testing - Complete unit test coverage
- 📝 Configuration Audit - Configuration change tracking and audit logging
- 🏷️ Value Objects - Introduced InstanceId for type safety
✨ New Features¶
1. Circuit Breaker State Pattern Refactoring¶
The circuit breaker now uses the state pattern, providing cleaner code structure and better maintainability.
Improvements: - Cyclomatic complexity reduced from 15 to 5 - Follows Single Responsibility and Open-Closed principles - Clearer state transition logic
Usage Example:
// Create circuit breaker
CircuitBreaker breaker = new StatefulCircuitBreaker(5, 2, 60000);
// Record request results
breaker.recordSuccess(); // or breaker.recordFailure()
// Check if request is allowed
if (breaker.allowRequest()) {
// Execute request
}
Compatibility: Original
DefaultCircuitBreakeris still available. New code should useStatefulCircuitBreaker.
2. Configuration Audit Functionality¶
Now you can track configuration change history for troubleshooting and audit requirements.
Features: - Record configuration change operations - Record operator and operation time - Record before/after value comparison
Database Changes:
-- New configuration change audit log table
CREATE TABLE config_change_audit_log (
id VARCHAR(64) PRIMARY KEY,
config_key VARCHAR(256) NOT NULL,
operation VARCHAR(32) NOT NULL,
old_value TEXT,
new_value TEXT,
operator VARCHAR(64),
operated_at TIMESTAMP NOT NULL,
ip_address VARCHAR(45),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3. Rate Limiter Algorithm Testing¶
Complete unit tests for rate limiting algorithms to ensure correctness.
Test Coverage: - ✅ Token bucket algorithm basic tests - ✅ Rate limiter configuration tests - ✅ Concurrent rate limiting tests - ✅ Rate limiter recovery tests
4. InstanceId Value Object¶
Introduced InstanceId value object for enhanced type safety and validation.
Usage Example:
// Create from string (with validation)
InstanceId id = InstanceId.of("my-instance-001");
// Generate random instance ID
InstanceId newId = InstanceId.generate();
// Get value
String value = id.toString();
Validation Rules: - Cannot be empty - Length ≤ 64 characters - Only letters, numbers, underscores, and hyphens allowed
📦 Installation & Upgrade¶
Upgrade Steps¶
Backup Data
Download New Version
Database Migration
Restart Application
Verify Functionality
🔧 Configuration Changes¶
New Configuration Items¶
No configuration changes required in this version. All configurations remain backward compatible.
⚠️ Notes¶
Backward Compatibility¶
- ✅ Fully backward compatible with V1.4.0
- ✅ No breaking API changes
- ✅ No configuration format changes
Known Issues¶
No known issues at this time.
📊 Code Statistics¶
| Metric | Count |
|---|---|
| New Files | 11 |
| New Code Lines | +878 |
| New Test Lines | +285 |
| Commits | 4 |
🐛 Bug Fixes¶
This version focuses on feature enhancements with no specific bug fixes.
📚 Related Documentation¶
👥 Contributors¶
Thanks to the following developers for their contributions:
- JAiRouter Development Team
Update Date: 2026-03-24 Documentation Maintainer: JAiRouter Team