File: security_lens.py vs signal_processor.py
Labels: bug, tech-debt, priority:high
SecurityLens.evaluate_risk() — with its own policy thresholds and network-centrality multipliers — is fully implemented but never called anywhere in the codebase (verified via grep across all 21 files). The actual risk scoring for the same five categories (logic_bomb, injection_surface, memory_corruption, secrets_risk, malware density) is separately implemented in signal_processor.py's calc* methods, with different math.
Impact: whichever of these two implementations is "correct" is ambiguous, and the dead one will silently drift out of sync with schema/policy changes made to the live one.
Fix: delete evaluate_risk() or make it the actual source of truth; don't maintain both.
File: security_lens.py vs signal_processor.py
Labels: bug, tech-debt, priority:high
SecurityLens.evaluate_risk() — with its own policy thresholds and network-centrality multipliers — is fully implemented but never called anywhere in the codebase (verified via grep across all 21 files). The actual risk scoring for the same five categories (logic_bomb, injection_surface, memory_corruption, secrets_risk, malware density) is separately implemented in signal_processor.py's calc* methods, with different math.
Impact: whichever of these two implementations is "correct" is ambiguous, and the dead one will silently drift out of sync with schema/policy changes made to the live one.
Fix: delete evaluate_risk() or make it the actual source of truth; don't maintain both.