Discord Username / User ID
interferon0
What does this improvement do?
The CLI already computes a dashboard deep-link (resolvePortalUrl in src/lib/facade.ts, attached as dashboardUrl to run output and meta.portalUrl on history) but only ever prints it as text — there is zero browser-opening code in src/. Add test open plus a --web flag on test result, test run --wait, test rerun --wait, and test failure summary that opens the OS browser at that URL, with a --no-browser companion that only prints the URL (SSH/headless/CI/agents). This is the gh browse / cypress open pattern: a failing run's video/DOM/timeline lives in the dashboard, and today reaching it means copy-pasting a URL the CLI already built.
Details / implementation notes
Spawn open / xdg-open / start via node:child_process with an args array (never a shell string). When resolvePortalUrl returns undefined (unknown host), print a clear "no dashboard for this endpoint" line and exit non-zero. The URL builder already refuses userinfo and non-https production hosts, so the safety half is done. No new dependency. Tests: injected spawner per platform, --no-browser prints only, unknown-host error path. PR to follow once assigned.
Confirmations
Discord Username / User ID
interferon0
What does this improvement do?
The CLI already computes a dashboard deep-link (resolvePortalUrl in src/lib/facade.ts, attached as dashboardUrl to run output and meta.portalUrl on history) but only ever prints it as text — there is zero browser-opening code in src/. Add test open plus a --web flag on test result, test run --wait, test rerun --wait, and test failure summary that opens the OS browser at that URL, with a --no-browser companion that only prints the URL (SSH/headless/CI/agents). This is the gh browse / cypress open pattern: a failing run's video/DOM/timeline lives in the dashboard, and today reaching it means copy-pasting a URL the CLI already built.
Details / implementation notes
Spawn open / xdg-open / start via node:child_process with an args array (never a shell string). When resolvePortalUrl returns undefined (unknown host), print a clear "no dashboard for this endpoint" line and exit non-zero. The URL builder already refuses userinfo and non-https production hosts, so the safety half is done. No new dependency. Tests: injected spawner per platform, --no-browser prints only, unknown-host error path. PR to follow once assigned.
Confirmations