Found live during the demo: a target with two PLC artifacts (pump_station.st + pump_fbd.xml) only produced findings for the first, because run_plc_scan used first_of(PlcProject). Now it iterates every PlcProject / git / source-archive artifact, merges control-logic findings, and unions the control-app SBOM (deduped by name+version). Tracker #167.
Found live during the demo: a target with **two** PLC artifacts (`pump_station.st` + `pump_fbd.xml`) only produced findings for the first, because `run_plc_scan` used `first_of(PlcProject)`. Now it iterates **every** PlcProject / git / source-archive artifact, merges control-logic findings, and unions the control-app SBOM (deduped by name+version). Tracker #167.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
run_plc_scan analyzed only the first PlcProject (or single code artifact), so a
target with several PLC artifacts (e.g. one PLCopen XML export per POU) had the
rest silently ignored. Found live: a target with pump_station.st + pump_fbd.xml
only produced findings for the first.
Iterate over every PlcProject / git repo / source-archive artifact on the target,
merge the control-logic findings, and union the control-app SBOM (deduped by
name+version) across all of them.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sharang
merged commit 4f9e2c2828 into main2026-07-16 19:59:59 +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.
Found live during the demo: a target with two PLC artifacts (
pump_station.st+pump_fbd.xml) only produced findings for the first, becauserun_plc_scanusedfirst_of(PlcProject). Now it iterates every PlcProject / git / source-archive artifact, merges control-logic findings, and unions the control-app SBOM (deduped by name+version). Tracker #167.🤖 Generated with Claude Code