-
Notifications
You must be signed in to change notification settings - Fork 25
chore: release v2.1.0 #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Added @remnawave/hashed-set dependency - Updated InternalService to manage user extraction and configuration checks. - Refactored HandlerService to utilize InternalService for user management. - Improved XrayService to handle hash payloads for configuration validation.
- Changed hash type from number to string in IHashPayload interface.
- Bumped version to 0.5.8 in package.json. - Updated AddUserCommand and RemoveUserCommand to include hashData for user identification. - Modified HandlerService to utilize hashData for user addition and removal. - Adjusted interfaces for add and remove user requests to include hashData structure.
- Introduced XRAY_CORE_VERSION and XRAY_CORE_INSTALL_SCRIPT as build arguments in Dockerfile. - Removed legacy Dockerfile.
…package-lock.json
- Modified Dockerfile to include UPSTREAM_REPO as a build argument and adjusted the installation script call. - Updated GitHub Actions workflow to support building multiple Docker images with a matrix strategy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Greptile Summary
This pull request represents a significant release (v2.1.0) that introduces a new hash-based configuration management system for Xray Core optimization. The primary focus is implementing intelligent restart detection to prevent unnecessary Xray Core restarts when configurations haven't actually changed.
Key Changes:
-
Hash-Based Configuration Management: The core enhancement adds a sophisticated hash payload system that tracks configuration changes through
IHashPayloadinterface containingemptyConfighashes and per-inbound configuration data (user counts, hashes, tags). This system enables the service to compare incoming configurations with current state to determine if restarts are needed. -
Service Architecture Refactoring: The HandlerService has been refactored to use InternalService instead of XrayService, with InternalService now managing configuration state through HashedSet data structures. This centralizes configuration management and provides efficient user tracking across inbounds.
-
Enhanced User Management: Both add and remove user operations now require
hashDatacontaining VLESS UUIDs for proper tracking. The system supports user updates throughprevVlessUuidhandling and maintains consistency between internal state and actual Xray configuration. -
Docker Multi-Variant Support: The build system now creates two Docker image variants - a standard image using XTLS upstream and an SNI variant using kastov upstream for enhanced SNI handling capabilities in censorship circumvention scenarios.
-
Dependency Updates: The release includes updates to NestJS framework (11.1.5 → 11.1.6), addition of
@remnawave/hashed-setlibrary for efficient data structures, and Xray Core version bump (v25.6.8 → v25.8.3). -
Configuration Flexibility: A new
DISABLE_HASHED_SET_CHECKconfiguration option allows administrators to bypass the hash-based optimization system when needed for troubleshooting or ensuring consistent restart behavior.
The changes integrate seamlessly with the existing API structure while adding substantial performance optimizations and operational flexibility. The hash payload system is transmitted via X-Hash-Payload headers and processed through a new @HashPayload() decorator that handles base64 decoding and JSON parsing.
Confidence score: 3/5
- This PR introduces complex changes to core functionality with potential compatibility and performance implications
- Score reflects the sophistication of the hash-based system and dependency on proper integration between multiple components
- Pay close attention to InternalService implementation, XrayService restart logic, and the new HashPayload parameter decorator
22 files reviewed, 5 comments
- Commented out detailed error logging to streamline response handling in the exception filter.
No description provided.