chore(parser): sync upstream parser updates
This commit is contained in:
21
.github/upstream-subconverter.applied.json
vendored
21
.github/upstream-subconverter.applied.json
vendored
@@ -1 +1,20 @@
|
|||||||
[]
|
[
|
||||||
|
{
|
||||||
|
"sha": "ca209069bef6aa192ea4c6d63acc8fcc2125ad03",
|
||||||
|
"subject": "Update subparser.cpp",
|
||||||
|
"time": "2026-05-21T02:19:51+00:00",
|
||||||
|
"paths": [
|
||||||
|
"src/parser/subparser.cpp"
|
||||||
|
],
|
||||||
|
"copilot_reason": "Single-line parser tweak (case-insensitive regex for wssettings). No generator or bridge changes."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "79369b0e7617e24366b57cbfb0402e6293d04fb4",
|
||||||
|
"subject": "Update subparser.cpp",
|
||||||
|
"time": "2026-05-21T02:19:51+00:00",
|
||||||
|
"paths": [
|
||||||
|
"src/parser/subparser.cpp"
|
||||||
|
],
|
||||||
|
"copilot_reason": "Small parser-only adjustments to plugin option handling; backward-compatible parsing changes."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|||||||
2
.github/upstream-subconverter.seen
vendored
2
.github/upstream-subconverter.seen
vendored
@@ -1 +1 @@
|
|||||||
add52ec9cb86da1a1276b74b75e2de667fe3c31c
|
633ecd5a3b33cf288658f0910fb2cc5faabd351c
|
||||||
|
|||||||
54
.github/upstream-subconverter.skipped.json
vendored
54
.github/upstream-subconverter.skipped.json
vendored
@@ -1 +1,53 @@
|
|||||||
[]
|
[
|
||||||
|
{
|
||||||
|
"sha": "c6b9661088941e56cd3def92f579add450276626",
|
||||||
|
"subject": "add vless encryption field support.(#59) fix AnyTLS and TUIC IPV6 filed parse and some AnyTLS.(#58) fix macos arm build.",
|
||||||
|
"time": "2026-05-21T02:19:51+00:00",
|
||||||
|
"reason": "Adds VLESS encryption and AnyTLS/TUIC parsing fixes while also changing generator/export code — requires coordinated exporter updates.",
|
||||||
|
"copilot_decision": {
|
||||||
|
"sha": "c6b9661088941e56cd3def92f579add450276626",
|
||||||
|
"decision": "needs_output_adapter",
|
||||||
|
"risk": "medium",
|
||||||
|
"reason": "Adds VLESS encryption and AnyTLS/TUIC parsing fixes while also changing generator/export code — requires coordinated exporter updates.",
|
||||||
|
"required_tests": [
|
||||||
|
"explodeStdVless_encryption_field",
|
||||||
|
"explodeSingbox_vless_encryption_capture",
|
||||||
|
"singbox_export_roundtrip_with_encryption"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "bca37c74367792077d35a3260cb65bd0e75ae8e2",
|
||||||
|
"subject": "Enhance proxy configuration to support the WebSocket transport protocol and custom headers.",
|
||||||
|
"time": "2026-05-21T02:19:51+00:00",
|
||||||
|
"reason": "Introduces WebSocket host/path/header parsing and generator ws-opts mapping; parser and exporter must be applied together.",
|
||||||
|
"copilot_decision": {
|
||||||
|
"sha": "bca37c74367792077d35a3260cb65bd0e75ae8e2",
|
||||||
|
"decision": "needs_output_adapter",
|
||||||
|
"risk": "medium",
|
||||||
|
"reason": "Introduces WebSocket host/path/header parsing and generator ws-opts mapping; parser and exporter must be applied together.",
|
||||||
|
"required_tests": [
|
||||||
|
"explodeTrojan_ws_host_fallback",
|
||||||
|
"proxyToClash_ws_opts_generation",
|
||||||
|
"clash_ws_roundtrip_headers"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sha": "877a1291a0b618ad52f98ea1ffaddb5d17c1c22f",
|
||||||
|
"subject": "keep dialer-proxy when converting Clash subscriptions",
|
||||||
|
"time": "2026-05-21T02:19:51+00:00",
|
||||||
|
"reason": "Propagates dialer/underlying_proxy across many proxy types and updates generator; application requires exporter changes to preserve detour/dialer-proxy.",
|
||||||
|
"copilot_decision": {
|
||||||
|
"sha": "877a1291a0b618ad52f98ea1ffaddb5d17c1c22f",
|
||||||
|
"decision": "needs_output_adapter",
|
||||||
|
"risk": "medium",
|
||||||
|
"reason": "Propagates dialer/underlying_proxy across many proxy types and updates generator; application requires exporter changes to preserve detour/dialer-proxy.",
|
||||||
|
"required_tests": [
|
||||||
|
"explodeClash_underlying_proxy_propagation",
|
||||||
|
"proxy_export_preserves_dialer_proxy",
|
||||||
|
"clash_subscription_conversion_dialer_proxy"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|||||||
@@ -399,7 +399,7 @@ void explodeVmessConf(std::string content, std::vector<Proxy> &nodes) {
|
|||||||
std::string streamset = "streamSettings", tcpset = "tcpSettings", wsset = "wsSettings";
|
std::string streamset = "streamSettings", tcpset = "tcpSettings", wsset = "wsSettings";
|
||||||
regGetMatch(content, "((?i)streamsettings)", 2, 0, &streamset);
|
regGetMatch(content, "((?i)streamsettings)", 2, 0, &streamset);
|
||||||
regGetMatch(content, "((?i)tcpsettings)", 2, 0, &tcpset);
|
regGetMatch(content, "((?i)tcpsettings)", 2, 0, &tcpset);
|
||||||
regGetMatch(content, "((?1)wssettings)", 2, 0, &wsset);
|
regGetMatch(content, "((?i)wssettings)", 2, 0, &wsset);
|
||||||
|
|
||||||
json.Parse(content.data());
|
json.Parse(content.data());
|
||||||
if (json.HasParseError() || !json.IsObject())
|
if (json.HasParseError() || !json.IsObject())
|
||||||
@@ -1286,7 +1286,7 @@ void explodeClash(Node yamlnode, std::vector<Proxy> &nodes) {
|
|||||||
singleproxy["plugin-opts"]["host"] >>= pluginopts_host;
|
singleproxy["plugin-opts"]["host"] >>= pluginopts_host;
|
||||||
tls = safe_as<bool>(singleproxy["plugin-opts"]["tls"]) ? "tls;" : "";
|
tls = safe_as<bool>(singleproxy["plugin-opts"]["tls"]) ? "tls;" : "";
|
||||||
singleproxy["plugin-opts"]["path"] >>= path;
|
singleproxy["plugin-opts"]["path"] >>= path;
|
||||||
pluginopts_mux = safe_as<bool>(singleproxy["plugin-opts"]["mux"]) ? "mux=4;" : "";
|
pluginopts_mux = safe_as<bool>(singleproxy["plugin-opts"]["mux"]) ? "4" : "";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -1306,7 +1306,7 @@ void explodeClash(Node yamlnode, std::vector<Proxy> &nodes) {
|
|||||||
pluginopts += pluginopts_host.empty() ? "" : ";obfs-host=" + pluginopts_host;
|
pluginopts += pluginopts_host.empty() ? "" : ";obfs-host=" + pluginopts_host;
|
||||||
break;
|
break;
|
||||||
case "v2ray-plugin"_hash:
|
case "v2ray-plugin"_hash:
|
||||||
pluginopts = "mode=" + pluginopts_mode + ";" + tls + pluginopts_mux;
|
pluginopts = "mode=" + pluginopts_mode + ";" + tls;
|
||||||
if (!pluginopts_host.empty())
|
if (!pluginopts_host.empty())
|
||||||
pluginopts += "host=" + pluginopts_host + ";";
|
pluginopts += "host=" + pluginopts_host + ";";
|
||||||
if (!path.empty())
|
if (!path.empty())
|
||||||
|
|||||||
Reference in New Issue
Block a user