CI / Check (push) Skipped
CI / Check (pull_request) Successful in 5m40s
CI / Detect Changes (pull_request) Skipped
CI / Deploy Agent (pull_request) Skipped
CI / Deploy Dashboard (pull_request) Skipped
CI / Deploy Docs (pull_request) Skipped
CI / Deploy MCP (pull_request) Skipped
run_plc_scan's persist block was insert-only, so a PLC re-scan never updated control_refs on findings first seen before the semantic mapping pass ran (or before it was enabled) — mappings could only be picked up by deleting and re-adding the target. Port the refresh branch run_pipeline already has (#228): when a finding already exists and now carries control_refs, $set them onto the existing row. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>