Release validation: tests green, USB pack, fleet UX and API hardening.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Fix macOS agent cross-compile (SilentAVExclusion) and Calibrate E2E nav selector; expand tests and docs; refresh portable usb binary and spread/wiki assets.
This commit is contained in:
@@ -3,6 +3,7 @@ import { api } from '../api/client';
|
||||
import { useModalAmbientDuck } from '../context/AmbientMusicContext';
|
||||
import { useWebSocket } from '../hooks/useWebSocket';
|
||||
import type { Agent, PathTraceHop } from '../types';
|
||||
import { HelpTip } from '../components/HelpTip';
|
||||
import './PathTracerPage.css';
|
||||
|
||||
// ── types ─────────────────────────────────────────────────────────────────────
|
||||
@@ -167,15 +168,19 @@ export default function PathTracerPage() {
|
||||
return;
|
||||
}
|
||||
if (status.ready) {
|
||||
clearInterval(pollRef.current!);
|
||||
pollRef.current = null;
|
||||
// Fetch QR.
|
||||
const qrData = await api.getTraceQR(sid);
|
||||
setQR(qrData);
|
||||
setShowQR(true);
|
||||
try {
|
||||
const qrData = await api.getTraceQR(sid);
|
||||
clearInterval(pollRef.current!);
|
||||
pollRef.current = null;
|
||||
setQR(qrData);
|
||||
setShowQR(true);
|
||||
} catch (e: unknown) {
|
||||
setError(e instanceof Error ? e.message : 'Failed to load QR config');
|
||||
}
|
||||
return;
|
||||
}
|
||||
} catch {
|
||||
// Ignore transient errors
|
||||
// Ignore transient status poll errors
|
||||
}
|
||||
}, 2000);
|
||||
};
|
||||
@@ -209,7 +214,7 @@ export default function PathTracerPage() {
|
||||
{/* Header */}
|
||||
<div className="pt-header">
|
||||
<div>
|
||||
<div className="pt-title">⬡ Path Tracer</div>
|
||||
<div className="pt-title">⬡ Path Tracer <HelpTip field="pt_path_tracer" /></div>
|
||||
<div className="pt-subtitle">
|
||||
Build an on-demand multi-hop WireGuard VPN — select up to 3 agents, click TRACE.
|
||||
</div>
|
||||
@@ -229,7 +234,7 @@ export default function PathTracerPage() {
|
||||
{/* Left: agent selection */}
|
||||
<div>
|
||||
<div className="pt-section-label">
|
||||
Online agents — click to add to chain (max 3)
|
||||
Online agents — click to add to chain (max 3) <HelpTip field="pt_agent_chain" />
|
||||
</div>
|
||||
<div className="pt-section-panel">
|
||||
{onlineAgents.length === 0 && (
|
||||
|
||||
Reference in New Issue
Block a user