diff --git a/frontend/src/pages/FindingDetailPage.tsx b/frontend/src/pages/FindingDetailPage.tsx index bc8a3a50..786a62be 100644 --- a/frontend/src/pages/FindingDetailPage.tsx +++ b/frontend/src/pages/FindingDetailPage.tsx @@ -705,10 +705,12 @@ function HowToFix({ finding }: { finding: FindingView }) { // ── Dynamic Verification Panel ────────────────────────────────────────────── -function DynamicVerdictSection({ verdict }: { verdict: VerifyResult }) { +export function DynamicVerdictSection({ verdict }: { verdict: VerifyResult }) { const [copied, setCopied] = useState(false); - const reproPath = `~/.cache/nyx/dynamic/repro/${verdict.finding_id}/`; - const reproCmd = './reproduce.sh'; + // The repro bundle is keyed by spec_hash (not finding_id) inside the Nyx + // cache. Rather than showing a path that may not match, surface the CLI + // command that locates and opens the bundle regardless of the hash. + const reproCmd = `nyx repro --finding ${verdict.finding_id}`; const copyCmd = () => { navigator.clipboard.writeText(reproCmd).then(() => { @@ -733,11 +735,8 @@ function DynamicVerdictSection({ verdict }: { verdict: VerifyResult }) { {verdict.status === 'Confirmed' && (
-
- Repro artifact: - {reproPath} -
+ Reproduce: {reproCmd}