From 25e8b0eb0e7eeebc3ea4c99637ea499496982141 Mon Sep 17 00:00:00 2001 From: pitboss Date: Tue, 12 May 2026 13:47:11 -0400 Subject: [PATCH] [pitboss] sweep after phase 07: 6 deferred items resolved --- frontend/src/pages/FindingDetailPage.tsx | 13 +- .../components/dynamicVerdictSection.test.tsx | 118 +++++++ src/dynamic/telemetry.rs | 51 +++ src/rank.rs | 298 +++++++++++++++++- tests/dynamic_layering.rs | 2 + tests/sarif_dynamic_verdict_tests.rs | 256 +++++++++++++++ 6 files changed, 730 insertions(+), 8 deletions(-) create mode 100644 frontend/src/test/components/dynamicVerdictSection.test.tsx create mode 100644 tests/sarif_dynamic_verdict_tests.rs 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}