Local QA recipe (solo / per-OS)
September 12, 2026 ยท View on GitHub
CLI and CLI Plus command-tree / control-plane process E2E runs in CI on Windows, Linux, and macOS (cli-e2e job, TestCategory=E2E). You do not need CliQaProbe for day-to-day command coverage.
# Same filter as CI cli-e2e (after Release build of CLI + Plus)
dotnet build src/Titanium.Cli -c Release
dotnet build src/Titanium.Plus -c Release
dotnet test tests/Titanium.E2E.Tests -c Release --filter "TestCategory=E2E"
# Inspector / UI categories (PR CI ui-portable + Windows build E2E-UI)
dotnet test tests/Titanium.E2E.Tests -c Release --filter "TestCategory=E2E-UI|TestCategory=E2E-UI-Headless"
# Optional: maintainer probe (apphost checklist; overlaps CI E2E)
dotnet run --project tools/CliQaProbe -- all
dotnet run --project tools/CliQaProbe -- all --elevated
# Inspector System proxy / CA / browser / loopback UX (desktop dialogs; not CI)
dotnet run --project tools/InspectorDesktopProbe -- all
Probes
| Probe | Purpose |
|---|---|
| CliQaProbe | Optional manual spawn of titanium apphost; CI cli-e2e is the source of truth |
| InspectorDesktopProbe | In-process Avalonia; full UI chrome + System proxy, root CA, browsers, Store loopback |
Results: tools/CliQaProbe/results/last-run.json, tools/InspectorDesktopProbe/results/last-run.json.
Notes
- CliQaProbe never mutates the default service name
titanium; elevated runs usetitanium-qa-probeand uninstall infinally. E2E service tests use uniquetitanium-e2e-*names. - Live production update.titaniumproxy.com and real Redis/Consul/K8s clusters are not required โ E2E uses
TITANIUM_UPDATE_FEEDfakes and loopback stubs. http3-deps installis covered in E2E (Windows fail / already-supported / Unix package when Quic is false).