Commit Graph
1025 Commits
Author SHA1 Message Date
風雪 fcd5fb8dee test: preserve VMess per-user alterId 2026-09-30 22:00:11 +08:00
風雪 3b966b3245 feat: expose complete VMess TLS Mirror options 2026-09-30 21:59:59 +08:00
風雪 72b03cd029 fix: export VMess listener mux as client smux 2026-09-30 21:59:41 +08:00
風雪 caff433bcc fix: preserve VMess per-user alterId on compile 2026-09-30 21:59:34 +08:00
風雪 8fe2f9ebb3 test: provide required listener fields 2026-09-30 21:48:17 +08:00
風雪 8ad38ca2d5 ci: restore format check 2026-09-30 21:45:38 +08:00
風雪 f75619f0d1 style: gofmt URI extended file 2026-09-30 21:45:35 +08:00
風雪 e830b02440 ci: diagnose remaining gofmt difference 2026-09-30 21:43:55 +08:00
風雪 1f6f3b57b0 ci: restore format check 2026-09-30 21:42:09 +08:00
風雪 b061b1436e fix: import strings for Sudoku URI serialization 2026-09-30 21:42:05 +08:00
風雪 faf53ae934 fix: remove duplicate Mieru validation case 2026-09-30 21:42:02 +08:00
風雪 31b9e110df ci: print gofmt offenders for debugging 2026-09-30 21:40:09 +08:00
風雪 266a3d20b0 fix: merge protocol-specific listener validation cases 2026-09-30 21:38:25 +08:00
風雪 8417c61645 test: format listener schema regression tests 2026-09-30 21:38:23 +08:00
風雪 e36d44bb4b test: format Sudoku URI regression test 2026-09-30 21:38:19 +08:00
風雪 af609b746b fix(tests): restore validator tests and append listener coverage 2026-09-30 21:32:01 +08:00
風雪 4f864d8859 test(listener): validate documented protocol values 2026-09-30 21:31:35 +08:00
風雪 5c98af6ca4 fix(listener): validate Sudoku Mieru and TrustTunnel values 2026-09-30 21:31:24 +08:00
風雪 984ba9a7d8 fix(listener): persist Hysteria2 Realm TLS options 2026-09-30 21:31:16 +08:00
風雪 e91cbb923e feat(listener): expose Hysteria2 Realm TLS options 2026-09-30 21:31:03 +08:00
風雪 3d4c2a8288 test(converter): keep Hysteria2 realm options server-side 2026-09-30 21:30:47 +08:00
風雪 cccd13784d fix(converter): do not export Hysteria2 server realm options to clients 2026-09-30 21:30:43 +08:00
風雪 5792bd1978 test(uri): cover Sudoku nested URI serialization 2026-09-30 21:30:03 +08:00
風雪 726781b7be fix(uri): serialize Sudoku listener options without object coercion 2026-09-30 21:30:00 +08:00
風雪 3d0b9d40be fix(listener): correct Sudoku server fields and custom table serialization 2026-09-30 21:29:56 +08:00
Z User d49940d510 fix(ci): restore VMess host fallback from SNI/server addr; fix test
Reverted the previous 'fix' (233d806) that removed the host fallback.
VMess 'host' field IS part of v2rayN's VmessQRCode schema — it
specifies the WebSocket Host header, separate from 'add' (server addr).

The CDN fix (b317042) correctly added the fallback:
  1. ws-headers.Host (explicit)
  2. SNI / servername (TLS config)
  3. server address (for CDN where WS Host = CDN domain)

The test TestVMessURIOmitsWebSocketHostWhenUnset was WRONG — it
asserted host should be absent when no ws-headers.Host is set, but
the fallback to server address is the intended behavior for CDN.

Renamed test to TestVMessURIFillsHostFromServerAddress and inverted
the assertion: host should equal the server address when no explicit
Host header or SNI is configured.

Tests: 24/24 packages PASS.
2026-09-30 12:56:09 +00:00
Z User 233d8067f1 fix(ci): VMess URI host field only set when explicitly configured
The CDN access fix (b317042) added a fallback that set the VMess
'host' field from the server address when no ws Host header or SNI
was configured. This broke TestVMessURIOmitsWebSocketHostWhenUnset
which correctly asserts that v2rayN's VmessQRCode schema has no
'host' field — the server address goes in 'add', not 'host'.

Fix: only set obj["host"] from:
  1. Explicit ws-headers Host (user configured)
  2. SNI/servername (TLS config)
Never from the server address (that's what 'add' is for).

Tests: 24/24 packages PASS (including all 4 VMess URI tests).
2026-09-30 12:37:34 +00:00
kazeyukiro c6f7c02cdc fix(sub): smart TLS/SNI/fingerprint for all protocol exports
Post-process every client proxy (YAML) with access-profile SNI, CDN TLS
for WS/gRPC, and fingerprint. URI path already uses applyURIAccessProfile
globally; VMess Host and AnyTLS fp defaults tightened.
2026-09-30 08:32:39 +00:00
kazeyukiro 8507b8636c fix(sub): audit URI and YAML export for CDN access fields
Fill security=tls, sni, fp, and ws host from AccessSNI/PublicHost for
domain+WS share links and client YAML; default fingerprint chrome.
2026-09-30 08:28:16 +00:00
kazeyukiro b3170423ba fix(converter): fill servername and fingerprint for CDN VLESS/WS
Client YAML for domain+WS on 443 was missing TLS SNI/servername and
client-fingerprint, which breaks Cloudflare edge handshake.
2026-09-30 08:25:53 +00:00
kazeyukiro d2a80f5f80 fix(protocol): strip ws-headers from VLESS/VMess listeners
Mihomo inbound only supports ws-path for WebSocket; headers are
client-side. Keep ws-headers in panel config for share/export.
2026-09-30 08:01:44 +00:00
kazeyukiro 0d894a7415 fix(routing): save editor state before generate and apply 2026-09-29 17:24:51 +00:00
kazeyukiro aa57a08483 fix(warp): materialize domain list into rules and fix domain matching
WARP domains now expand into visible DOMAIN-* rules (API + UI) on save.
Apply rebuilds them from the domain list, strengthens sniffer
(parse-pure-ip, force-dns-mapping), and always offers WARP as a rule target.
2026-09-29 17:15:05 +00:00
kazeyukiro 2a900f4b85 feat(routing): richer WARP domain syntax and optional global WARP egress
Domain lines support domain:/full:/keyword:/geosite: prefixes. Toggle
warpGlobal sets MATCH,WARP while keeping Cloudflare control-plane DIRECT.
2026-09-29 17:00:51 +00:00
kazeyukiro a8ab56281a fix(warp): enable sniffer+DNS so domain rules match IP dials
Inbound clients often dial resolved IPs; DOMAIN-SUFFIX never hits without
TLS SNI sniff. When WARP domains are set: mode=rule, sniffer override,
redir-host DNS, CF control-plane DIRECT, DOMAIN+SUFFIX rules, dialer-proxy DIRECT.
2026-09-29 16:48:17 +00:00
kazeyukiro 5f6ad28148 fix(warp): report register save errors; clarify MASQUE vs server WireGuard
WARPRegister no longer swallows SaveWARPAccount failures. UI/docs note that
server egress always injects WireGuard WARP; MASQUE is preview-only.
2026-09-29 16:42:38 +00:00
kazeyukiro 9269522194 fix(frontend): include ruleProviders in server-routing load fallback 2026-09-29 16:31:56 +00:00
kazeyukiro 4e4c657674 fix(warp): upsert panel_settings without UNIQUE key conflicts
Soft-deleted panel_settings rows still occupied UNIQUE(key), so
re-registering WARP failed with constraint 2067. Use Unscoped
lookup/save and hard-delete on account removal; same for server-routing.
2026-09-29 16:30:46 +00:00
kazeyukiro 96d4a8a432 feat(routing): Mihomo rule-providers with hot update
Store rule-providers on server-routing, emit official rule-providers
block into serving config, and expose PUT hot-update via core
/providers/rules/{name}. Panel UI on Routing → Server egress.
2026-09-29 16:26:38 +00:00
kazeyukiro 95961c6cc2 fix(warp): make WARP domains actually work in server Mihomo
- ProxyMap always sets Cloudflare peer public-key, allowed-ips, remote-dns-resolve
- Default peer key when registration omits peers
- Surface ProxyMap errors at generate; clearer apply prompt for server egress
- Domain rule builder hardened; unit test for warp domain injection
2026-09-29 16:12:24 +00:00
kazeyukiro 1ddb808270 fix(i18n): declare WARP/routing keys; restore 3x-ui in acknowledgments
Unit test required en.ts keys used by Routing/Settings. Credits keep
3x-ui / s-ui as before.
2026-09-29 15:57:51 +00:00
kazeyukiro fec9733baa docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
docs: remove third-party panel name references from copy
Drop  and external m-ui product names from docs, UI strings,
and code comments. Keep functional descriptions of server egress and WARP.
2026-09-29 15:51:57 +00:00
kazeyukiro 0beaf396d1 docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
docs(api): align OpenAPI with server-routing and WARP account
Replace obsolete inject-warp; document GET/PUT server-routing,
GET/POST/DELETE system/warp, and templates/warp register nosave.
2026-09-29 15:49:13 +00:00
kazeyukiro 81df3a9e29 feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
feat(warp): persist WARP account, server inject, no server templates
Persist Cloudflare WARP account, inject outbound WARP into serving
Mihomo, route warpDomains on server egress. Remove client community
templates from the server tab; domains editor on Routing → Server egress.
2026-09-29 15:46:40 +00:00
kazeyukiro 727f5c0d6b fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
fix(ui): server-egress templates separate from client packs
Server tab no longer offers community client rule packs. Presets are
MATCH/DIRECT, private DIRECT, and optional AI→WARP (needs WARP proxy).
2026-09-29 15:34:17 +00:00
kazeyukiro aa548bd5c3 fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
fix(ui): compact desktop sidebar icons when collapsed
Global menu height:auto + padding-block for long i18n labels was also
applied in collapsed mode, stretching icon-only rows. Override collapsed
items to fixed 40px height and pass inlineCollapsed to Menu.
2026-09-29 15:25:36 +00:00
kazeyukiro eefc5cc889 docs: zh-CN routing link for server egress 2026-09-29 15:17:48 +00:00
kazeyukiro ca2d4a3192 docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
docs: sync routing (server egress) and WARP limits
Document Client vs Server tabs, server-routing API, and that WARP
register is manual (no auto AI/streaming unlock pipeline).
2026-09-29 15:17:40 +00:00
kazeyukiro 4d51a5704f feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
feat(routing): server-side Mihomo egress for panel process
Store server-routing (rules/proxies/groups) separately from client
visual-config. Generator applies it to the serving core instead of a
hard-coded MATCH,DIRECT. Routing UI gains Client / Server tabs.
2026-09-29 15:14:39 +00:00
kazeyukiro addf8aee32 fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
fix(sub): align sing-box export with migration 1.11–1.15
Drop deprecated DNS rule ip_is_private without match_response (1.14/1.16).
Keep typed DNS servers, TUN without stack, route sniff/hijack-dns actions,
and route-level private direct per official migration/deprecated docs.
2026-09-29 14:28:01 +00:00