feat(security): OSV.dev advisory feed replaces the hand-typed list as primary #5513
ccantynzAI Reviewcommented 11d ago
AI Triage
(no summary)
Priority: medium Risk area: mixed
Suggested labels: (no label suggestions) Suggested reviewers: (no reviewer suggestions)
Suggestions only — nothing has been applied. The PR author stays in control.
gluecron[bot]🤖 botAI Reviewcommented 11d ago
AI review unavailable
The platform's AI balance is exhausted, so AI generation is temporarily unavailable. Nothing was lost. You can queue this as a repair for the internal agent from the repository's Health page, or try again once the balance is restored. The PR is otherwise unchanged.
Cross-repo impact
See what breaks downstream if this PR merges.
⮌ Merged
This pull request was merged into main.
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts
Scorecard move #4 of the greenlit block (agent-built)
The scorecard's "14-entry hand-typed advisory list (not a CVE feed)" is now supplemental; a real OSV.dev feed is primary:
src/lib/osv.ts: chunkedquerybatch(1000/call) + per-vuln detail fetch, ecosystem mapping (npm/PyPI/crates.io/RubyGems/Go/Maven/Packagist), 10s timeouts, injectable fetch, fail-soft everywhere. 24h TTL with misses stored (clean packages don't re-query per render); failed chunks are NOT recorded as misses.osv_advisories+osv_scan_state. schema.ts appended per convention.Two-sources-of-truth finding worth reading:
dependency-scanner.tshas been querying OSV on push all along — but only to open issues; the advisory UI never saw that data. This PR gives the UI its own cached OSV store; unifying the two paths is a sensible follow-up.19/19 lib tests (chunking, mapping, TTL, fail-soft, severity extraction; DB e2e gated) + 178/178 adjacent (advisories, copy-honesty, autopilot, selfcheck migration shape…). Typecheck clean.
🤖 Generated with Claude Code