Skip to content

v1.12.14.22

Pre-release
Pre-release

Choose a tag to compare

@ZhiShengYuan ZhiShengYuan released this 31 Jan 09:12
· 3453 commits to master since this release

sing-box v1.12.14.22

Critical Fixes

This release fixes three critical bugs in ruleset extraction that prevented proper IP/domain matching in hash-based load balancing.

Bug Fixes

  1. RemoteRuleSet IPSet Extraction - RemoteRuleSet.ExtractIPRules() was missing IPSet extraction, causing remote .srs geoip files to extract 0 IPs instead of thousands

  2. Nested Logical Rules - Logical rules containing other logical rules were not recursively processed, leading to incomplete extraction in both LocalRuleSet and RemoteRuleSet

  3. Limited Depth Processing - Both extraction methods only checked one level deep in logical rule hierarchies

Changes

  • Added extractDomainRulesFromHeadless() and extractIPRulesFromHeadless() recursive helper functions
  • RemoteRuleSet now extracts IPSet data matching LocalRuleSet implementation
  • Both rulesets now properly handle arbitrary nesting depths in logical rules
  • Simplified extraction code by using shared helper functions
  • Net reduction of 82 lines of code while fixing critical bugs

Impact

  • Remote .srs geoip files now properly extract IP addresses for hash-based routing
  • Multi-level logical rule compositions are fully extracted
  • Hash-only rulesets loaded from directories have complete rule extraction
  • Parity achieved between LocalRuleSet and RemoteRuleSet implementations

Build Information

  • Version: 1.12.14.22
  • Build Date: 2026-01-31
  • Build Tags: with_acme,with_clash_api,with_dhcp,with_embedded_tor,with_grpc,with_gvisor,with_low_memory,with_quic,with_shadowsocksr,with_utls,with_wireguard,with_tailscale

Download

All binaries built with full feature support.

Platforms

  • Linux: amd64, arm64
  • Windows: amd64, arm64
  • macOS: amd64 (Intel), arm64 (Apple Silicon)

Previous Fixes Included

This build also includes all fixes from v1.12.14.21:

  • IPSet extraction from .srs geoip files in LocalRuleSet
  • Regex pattern compilation and matching in hash rulesets
  • Disabled file watching for hash-only rulesets
  • Directory-based hash ruleset loading