refactor(config): preserve explicit flags with FlagsPatch and derive CLI arguments from schema (#2585)

This PR refactors EasyTier's configuration flags system across protobuf definitions, TOML/API persistence, runtime reconciliation, and the CLI.

It introduces a synthesized FlagsPatch protobuf message with optionize and pbjson support to track field presence reliably, replaces manual CLI flag boilerplate with dynamic schema-driven clap argument generation, and
establishes Flags::resolve(patch) as the single source of truth for runtime defaults.

Co-authored-by: Claude Code <noreply@anthropic.com>
This commit is contained in:
Luna YaoandClaude Code authored and GitHub committed 2026-10-10 22:11:08 +08:00
1 parent 018750a785
commit 250c2ad8d6
52 files changed
+1909 -1405

No files matched your search

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc v7.35.1
// protoc v7.36.1
// source: api_instance.proto
package instance
@@ -4399,17 +4399,17 @@ var file_api_instance_proto_goTypes = []any{
nil, // 66: api.instance.ListForeignNetworkResponse.ForeignNetworksEntry
(*ListGlobalForeignNetworkResponse_OneForeignNetwork)(nil), // 67: api.instance.ListGlobalForeignNetworkResponse.OneForeignNetwork
(*ListGlobalForeignNetworkResponse_ForeignNetworks)(nil), // 68: api.instance.ListGlobalForeignNetworkResponse.ForeignNetworks
nil, // 69: api.instance.ListGlobalForeignNetworkResponse.ForeignNetworksEntry
nil, // 70: api.instance.MetricSnapshot.LabelsEntry
(*common.UUID)(nil), // 71: common.UUID
(*common.TunnelInfo)(nil), // 72: common.TunnelInfo
(peer_rpc.SecureAuthLevel)(0), // 73: peer_rpc.SecureAuthLevel
(peer_rpc.PeerIdentityType)(0), // 74: peer_rpc.PeerIdentityType
(*common.Ipv4Inet)(nil), // 75: common.Ipv4Inet
(*common.StunInfo)(nil), // 76: common.StunInfo
(*common.PeerFeatureFlag)(nil), // 77: common.PeerFeatureFlag
(*common.Ipv6Inet)(nil), // 78: common.Ipv6Inet
(*peer_rpc.GetIpListResponse)(nil), // 79: peer_rpc.GetIpListResponse
nil, // 69: api.instance.ListGlobalForeignNetworkResponse.ForeignNetworksEntry
nil, // 70: api.instance.MetricSnapshot.LabelsEntry
(*common.UUID)(nil), // 71: common.UUID
(*common.TunnelInfo)(nil), // 72: common.TunnelInfo
(peer_rpc.SecureAuthLevel)(0), // 73: peer_rpc.SecureAuthLevel
(peer_rpc.PeerIdentityType)(0), // 74: peer_rpc.PeerIdentityType
(*common.Ipv4Inet)(nil), // 75: common.Ipv4Inet
(*common.StunInfo)(nil), // 76: common.StunInfo
(*common.PeerFeatureFlag)(nil), // 77: common.PeerFeatureFlag
(*common.Ipv6Inet)(nil), // 78: common.Ipv6Inet
(*peer_rpc.GetIpListResponse)(nil), // 79: peer_rpc.GetIpListResponse
(*peer_rpc.RouteForeignNetworkSummary)(nil), // 80: peer_rpc.RouteForeignNetworkSummary
(*common.Url)(nil), // 81: common.Url
(*common.SocketAddr)(nil), // 82: common.SocketAddr