Add proxy subscription runtime support

Add daemon RPCs, Apple and GTK import flows, packet proxy runtime support, diagnostics, and BEPs for proxy subscription handling.

Redact subscription URL secrets from fetch errors before they reach logs or UI surfaces.
This commit is contained in:
JettChenT 2026-06-01 15:23:17 +08:00
parent 97c569fb35
commit d1638726ca
46 changed files with 15079 additions and 456 deletions

View file

@ -26,6 +26,12 @@ service TailnetControl {
rpc LoginCancel (TailnetLoginCancelRequest) returns (Empty);
}
service ProxySubscriptions {
rpc PreviewImport (ProxySubscriptionImportRequest) returns (ProxySubscriptionPreviewResponse);
rpc ApplyImport (ProxySubscriptionApplyRequest) returns (ProxySubscriptionApplyResponse);
rpc SelectNode (ProxySubscriptionSelectRequest) returns (ProxySubscriptionSelectResponse);
}
message NetworkReorderRequest {
int32 id = 1;
int32 index = 2;
@ -55,6 +61,61 @@ message Network {
enum NetworkType {
WireGuard = 0;
Tailnet = 1;
Trojan = 2;
ProxySubscription = 3;
}
message ProxySubscriptionImportRequest {
string url = 1;
}
message ProxySubscriptionRejectedEntry {
int32 ordinal = 1;
string reason = 2;
string scheme = 3;
}
message ProxySubscriptionNodePreview {
int32 ordinal = 1;
string name = 2;
string protocol = 3;
string server = 4;
int32 port = 5;
repeated string warnings = 6;
bool runtime_supported = 7;
}
message ProxySubscriptionPreviewResponse {
string suggested_name = 1;
string detected_format = 2;
int32 compatible_count = 3;
int32 rejected_count = 4;
repeated ProxySubscriptionNodePreview node = 5;
repeated ProxySubscriptionRejectedEntry rejected = 6;
repeated string warnings = 7;
}
message ProxySubscriptionApplyRequest {
int32 id = 1;
string url = 2;
string name = 3;
int32 selected_ordinal = 4;
}
message ProxySubscriptionApplyResponse {
int32 id = 1;
int32 imported_count = 2;
int32 selected_ordinal = 3;
}
message ProxySubscriptionSelectRequest {
int32 id = 1;
int32 selected_ordinal = 2;
}
message ProxySubscriptionSelectResponse {
int32 id = 1;
int32 selected_ordinal = 2;
}
message NetworkListResponse {
@ -133,6 +194,7 @@ message TunnelConfigurationResponse {
repeated string dns_servers = 4;
repeated string search_domains = 5;
bool include_default_route = 6;
repeated string excluded_routes = 7;
}
message TunnelPacket {