Teknium
5eeafc8d25
fix(security): cache OSV malware preflight verdicts and stop double component discovery ( #75485 )
...
Two amplifiers behind the 779K api.osv.dev DNS queries/16h report:
1. tools/osv_check.py: check_package_for_malware() hit OSV on EVERY
call. MCP reconnect ladders, stdio recycles, and parked-server
self-probes re-run the preflight for the same package on every spawn
attempt, so a flapping server became a sustained OSV query/DNS
stream. Verdicts (clean or blocked) are now cached for 1h
(OSV_CHECK_CACHE_TTL to tune); network failures stay uncached so
fail-open never masks a real advisory once connectivity returns.
2. hermes_cli/security_audit.py: cmd_security_audit() ran full
component discovery twice per audit (_count_components + run_audit).
Discovery now runs once via _discover_components() and run_audit()
accepts the pre-discovered list.
Both regression tests fail against the previous code (verified via
sabotage run).
2026-08-01 10:47:20 -07:00
..
2026-07-29 12:19:37 -07:00
2026-07-31 21:31:51 -07:00
2026-07-28 07:58:16 -07:00
2026-07-17 04:53:38 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 18:13:09 -07:00
2026-07-28 11:52:44 -07:00
2026-07-29 11:53:39 -07:00
2026-07-03 03:27:47 -07:00
2026-07-27 14:32:05 -07:00
2026-05-19 22:34:05 -07:00
2026-07-29 10:54:04 -07:00
2026-07-29 10:02:03 -07:00
2026-06-21 17:46:38 +05:30
2026-07-29 10:14:11 -07:00
2026-07-26 17:46:55 -07:00
2026-07-29 10:14:00 -07:00
2026-07-29 11:53:39 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 12:19:37 -07:00
2026-07-31 17:43:37 -04:00
2026-07-31 22:33:00 -07:00
2026-07-02 04:20:43 -07:00
2026-06-25 13:52:06 -07:00
2026-07-31 22:32:55 -07:00
2026-07-20 06:50:31 -07:00
2026-07-22 12:13:01 -05:00
2026-07-29 11:53:39 -07:00
2026-07-01 14:37:22 +05:30
2026-07-29 19:48:37 -07:00
2026-05-22 04:10:45 -07:00
2026-07-31 14:22:38 +05:30
2026-07-29 19:48:37 -07:00
2026-07-31 10:17:55 -04:00
2026-07-22 12:13:01 -05:00
2026-07-26 20:58:43 -07:00
2026-07-29 10:14:00 -07:00
2026-07-29 09:33:48 -07:00
2026-07-14 02:59:39 +05:30
2026-07-31 17:43:37 -04:00
2026-07-06 04:58:42 -07:00
2026-07-30 07:18:08 -05:00
2026-07-31 23:18:38 -07:00
2026-07-31 10:17:55 -04:00
2026-07-17 04:50:47 -07:00
2026-07-28 00:53:16 -05:00
2026-07-29 10:02:03 -07:00
2026-07-18 04:15:13 -07:00
2026-08-01 11:35:59 +05:30
2026-07-29 16:49:07 +05:30
2026-07-29 10:13:50 -07:00
2026-07-28 14:07:21 -07:00
2026-07-22 12:13:01 -05:00
2026-08-01 10:47:20 -07:00
2026-07-13 02:42:18 -07:00
2026-07-29 10:14:00 -07:00
2026-07-31 21:21:13 -07:00
2026-06-25 16:40:27 -05:00
2026-07-30 00:08:28 -05:00
2026-06-13 14:42:51 -07:00
2026-07-29 11:53:39 -07:00
2026-07-29 10:14:00 -07:00
2026-07-28 14:37:19 -07:00
2026-07-29 11:53:39 -07:00
2026-07-31 13:53:04 -05:00
2026-07-29 13:01:36 -07:00
2026-07-29 13:01:36 -07:00
2026-05-23 17:47:26 -07:00
2026-07-31 21:31:10 -07:00
2026-07-31 22:33:11 -07:00
2026-07-30 22:31:42 -07:00
2026-07-28 04:24:50 -05:00
2026-07-29 19:48:37 -07:00
2026-05-15 14:00:01 -07:00
2026-08-01 15:03:42 +05:30
2026-05-29 03:44:49 -07:00
2026-07-01 01:05:28 -07:00
2026-07-24 11:45:57 -07:00
2026-07-22 06:56:53 -07:00
2026-07-28 11:53:09 -07:00
2026-05-31 00:50:19 -07:00
2026-06-30 16:39:41 -07:00
2026-07-29 10:14:00 -07:00
2026-07-29 00:01:33 -07:00
2026-07-28 22:31:40 -07:00
2026-07-28 11:55:01 -07:00
2026-07-29 08:24:00 -07:00
2026-07-28 14:17:45 -07:00
2026-07-14 02:59:39 +05:30
2026-07-29 10:54:04 -07:00
2026-07-29 10:08:53 -07:00
2026-07-29 14:04:21 -06:00
2026-07-29 11:53:39 -07:00
2026-07-04 15:08:49 -07:00
2026-07-26 18:28:20 -07:00
2026-06-10 02:57:15 -07:00
2026-07-23 21:06:47 -07:00
2026-07-28 11:53:09 -07:00
2026-06-29 21:11:58 -07:00
2026-05-23 01:40:35 -07:00