- Only real CVE-IDs enter the correction cascade now (was: everything except NESSUS-). Drops GHSA-only/pseudo ids that can never resolve — spares wasted lookups and shrinks the missing set that gates NVD. - _load_via_nvd now uses the NVD_API_KEY env (apiKey header, same as the enrichment service) and throttles ~45/1s instead of 5/1s with a key. - Stage-2 NVD cap scales with the key: 1500 (key) vs 100 (unauth), so a key actually gets used instead of always falling through to cvelistV5. - Correct-CVSS button label/confirm/tooltip now describe the real cascade (Vulnrichment → NVD → cvelistV5 → GHSA, each filling only what the previous left empty, CVE-IDs only) instead of 'CISA Vulnrichment'.
TrueVuln Frontend
Next.js 16 (App Router) UI for TrueVuln. See the root README for setup, deployment, and configuration — this app is deployed via Docker Compose alongside the backend, not standalone or on Vercel.
Local dev (without Docker)
npm install
npm run dev
Open http://localhost:3000. The dev server proxies API calls to the backend — see ../README.DEV.md for the full local (non-Docker) setup.