sing-box/route
世界 b0c6762bc1
route: merge rule_set branches into outer rules
Treat rule_set items as merged branches instead of standalone boolean
sub-items.

Evaluate each branch inside a referenced rule-set as if it were merged
into the outer rule and keep OR semantics between branches. This lets
outer grouped fields satisfy matching groups inside a branch without
introducing a standalone outer fallback or cross-branch state union.

Keep inherited grouped state outside inverted default and logical
branches. Negated rule-set branches now evaluate !(...) against their
own conditions and only reapply the outer grouped match after negation
succeeds, so configs like outer-group && !inner-condition continue to
work.

Add regression tests for same-group merged matches, cross-group and
extra-AND failures, DNS merged-branch behaviour, and inverted merged
branches. Update the route and DNS rule docs to clarify that rule-set
branches merge into the outer rule while keeping OR semantics between
branches.
2026-03-25 14:00:29 +08:00
..
rule route: merge rule_set branches into outer rules 2026-03-25 14:00:29 +08:00
conn.go endpoint: Fix UDP resolved destination 2026-03-02 13:55:26 +08:00
dns.go Add resolved service and DNS server 2025-07-08 13:14:41 +08:00
network.go platform: Improve iOS OOM killer 2026-02-26 14:13:32 +08:00
platform_searcher.go Optimize Linux process finder 2026-03-23 18:57:35 +08:00
process_cache.go Add process information cache to avoid duplicate lookups 2026-03-23 14:26:45 +08:00
route.go Fix package_name shared uid matching 2026-03-23 18:57:35 +08:00
router.go Optimize Linux process finder 2026-03-23 18:57:35 +08:00
rule_conds.go refactor: DNS 2025-07-08 13:12:14 +08:00