Skip to content

Add speed test diagnostics to reports#282

Merged
Sway-Chan merged 1 commit into
dododook:mainfrom
Sway-Chan:agent/speedtest-diagnostics-report
Jul 9, 2026
Merged

Add speed test diagnostics to reports#282
Sway-Chan merged 1 commit into
dododook:mainfrom
Sway-Chan:agent/speedtest-diagnostics-report

Conversation

@Sway-Chan

Copy link
Copy Markdown
Collaborator

What changed

  • Add a recent speed-test diagnostics snapshot to SpeedTestService.
  • Include the latest temporary speed-test sing-box config in exported diagnostic reports after existing redaction.
  • Add per-node speed-test failure rows with serverId, node placeholder, outbound tag, and reason.
  • Add endpoint-only resolved-IP probes for failed endpoint speed tests via DNS-over-TCP through that endpoint's HTTP inbound.
  • Keep proxy-node target resolution marked as remote/opaque instead of inventing local resolved IPs.
  • Include temporary speed-test core stdout/stderr in app.log at debug level, and let diagnostic capture raise the temporary core log level.

Why

When users report speed-test timeouts while nodes still work, the previous diagnostic report could show only aggregate failure reasons. It did not include the temporary speed-test config, per-node failures, or endpoint target DNS evidence, so endpoint geo-DNS issues still required guesswork.

Safety / privacy

  • Temporary speed-test config goes through redactDeep before report rendering.
  • Node identities still go through the existing collectNodeIdentifiers / redactIdentifiers pass.
  • Custom speed-test target path/query is redacted in the report to avoid leaking endpoint tokens.
  • Resolved-IP probing is only attempted for failed endpoint nodes; proxy nodes continue to rely on remote resolution and are not assigned fake local resolved IPs.

Validation

  • npx jest src/shared/__tests__/diagnostic-redact.test.ts src/main/services/__tests__/speed-test-progress.test.ts src/main/services/__tests__/speed-test-endpoint-dns.test.ts src/main/services/__tests__/speed-test-warm-ttfb.test.ts src/main/services/__tests__/speed-test-coalesce.test.ts src/main/services/__tests__/speed-test-runner.test.ts src/main/services/__tests__/speed-test-concurrency.test.ts --runInBand
  • npx tsc -p tsconfig.main.json --noEmit
  • npx eslint src/main/services/SpeedTestService.ts src/main/services/DiagnosticService.ts src/main/index.ts src/shared/diagnostic-redact.ts src/shared/__tests__/diagnostic-redact.test.ts src/main/services/__tests__/speed-test-progress.test.ts src/main/services/__tests__/speed-test-endpoint-dns.test.ts

Review notes

An independent read-only agent review found issues around speed-test URL query redaction, endpoint DNS probe progress blocking, CONNECT non-200 socket cleanup, query construction errors, and stale docs wording. This branch addresses those findings before publication.

@Sway-Chan Sway-Chan marked this pull request as ready for review July 9, 2026 12:04
@Sway-Chan Sway-Chan merged commit f03c18c into dododook:main Jul 9, 2026
2 checks passed
@Sway-Chan Sway-Chan deleted the agent/speedtest-diagnostics-report branch July 9, 2026 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant