Description
Add a batch-test command that accepts a file of proxy configs or a subscription link (base64-encoded VLESS/VMess/Trojan/Shadowsocks configs), tests each proxy with a subset of checks, and outputs a ranked table.
The xray/sing-box/v2ray ecosystem uses subscription links extensively. xrat (Rust, popular) and LiteSpeedTest exist specifically for batch-testing. Users with 50+ proxy configs need to know which ones actually work and leak-test them.
Codebase starting point
cmd/cli/commands/diagnose.go — existing diagnose command, shows how checks are wired
cmd/cli/commands/list.go — shows how checks are listed
core/engine/orchestrator.go — DiagnosisOrchestrator and DiagnosisRequest types
core/checks/register.go — all registered checks
cmd/cli/main.go — CLI entry point
Acceptance Criteria
Description
Add a
batch-testcommand that accepts a file of proxy configs or a subscription link (base64-encoded VLESS/VMess/Trojan/Shadowsocks configs), tests each proxy with a subset of checks, and outputs a ranked table.The xray/sing-box/v2ray ecosystem uses subscription links extensively. xrat (Rust, popular) and LiteSpeedTest exist specifically for batch-testing. Users with 50+ proxy configs need to know which ones actually work and leak-test them.
Codebase starting point
cmd/cli/commands/diagnose.go— existing diagnose command, shows how checks are wiredcmd/cli/commands/list.go— shows how checks are listedcore/engine/orchestrator.go—DiagnosisOrchestratorandDiagnosisRequesttypescore/checks/register.go— all registered checkscmd/cli/main.go— CLI entry pointAcceptance Criteria
cmd/cli/commands/batch.gowith a newbatch-testsubcommand--file proxies.txt(one proxy per line:socks5://host:portorhost:port type)--subscription-url https://...(base64-decode, split by newline)public_ip,dns_leak,tls_certificate--export jsonfor machine-readable outputcmd/cli/commands/batch_test.go