TUN-10389: Implement main run method

This introduces  the main precheck logic. This will follow concurrency model, timeout handling, and retry logic established in the SPEC. We will follow the decision flow in the [connectivity pre-checks SPEC](https://wiki.cfdata.org/spaces/TUN/pages/1374967685/Connectivity+Pre-checks+for+cloudflared). You can find an attached image of what the decision flow should look like.

![image.png](/uploads/fa71215adc2da509f6cbbb74532e3d95/image.png){width=900 height=235}
This commit is contained in:
Miguel da Costa Martins Marcelino
2026-05-04 16:34:52 +00:00
parent da81fb02ec
commit a9b6f703f0
11 changed files with 1117 additions and 8 deletions
+4 -6
View File
@@ -57,22 +57,20 @@ type CheckResult struct {
Type ProbeType
// Component is the human-readable probe category shown in the table header
// column, e.g. "DNS Resolution", "QUIC Connectivity".
// column
Component string
// Target is the address or resource that was probed, e.g.
// "region1.v2.argotunnel.com" or "Port 7844 (QUIC)".
// Target is the address or resource that was probed
Target string
// ProbeStatus is the outcome of the probe.
ProbeStatus Status
// Details is a short description of the result shown in the table, e.g.
// "Resolved successfully" or "Handshake failed".
// Details is a short description of the result shown in the table
Details string
// Action is non-empty when ProbeStatus is Fail and contains a human-readable
// remediation instruction, e.g. "Allow outbound QUIC on port 7844."
// remediation instruction
Action string
}