run_plc_scan is a separate path from run_pipeline and never called the control-mapping passes — so IEC 61131-3 PLC findings (pump_station.st etc.) were persisted with empty control_refs even when mapping is enabled. They carry file_path/line/cwe, so the semantic pass now runs per source and stamps master-control refs. (LUT + grounded passes are code-pattern/CRA-specific and don't apply to control logic.)
Green locally (clippy -D warnings, fmt, full suite).
`run_plc_scan` is a separate path from `run_pipeline` and never called the control-mapping passes — so IEC 61131-3 PLC findings (`pump_station.st` etc.) were persisted with **empty control_refs** even when mapping is enabled. They carry `file_path`/`line`/`cwe`, so the semantic pass now runs per source and stamps master-control refs. (LUT + grounded passes are code-pattern/CRA-specific and don't apply to control logic.)
Green locally (clippy -D warnings, fmt, full suite).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
run_plc_scan is a separate path from run_pipeline and never called the
control-mapping passes, so IEC 61131-3 (pump_station.st etc.) findings were
persisted with empty control_refs even with mapping enabled. PLC findings carry
file_path/line/cwe, so the semantic pass now runs per source (its region is read
under that source's working path) and stamps master-control refs. LUT + grounded
passes are code-pattern/CRA-specific and don't apply to control logic, so only the
semantic pass runs on the PLC path.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sharang
merged commit 51bab61f77 into main2026-07-22 13:16:53 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
run_plc_scanis a separate path fromrun_pipelineand never called the control-mapping passes — so IEC 61131-3 PLC findings (pump_station.stetc.) were persisted with empty control_refs even when mapping is enabled. They carryfile_path/line/cwe, so the semantic pass now runs per source and stamps master-control refs. (LUT + grounded passes are code-pattern/CRA-specific and don't apply to control logic.)Green locally (clippy -D warnings, fmt, full suite).
🤖 Generated with Claude Code