The semgrep job-container approach fails because actions/checkout needs node
inside the container. Install pipx via apt on the standard image instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The runner's job image lacks pip, so the sast job failed in CI despite passing
locally. Use the semgrep/semgrep container instead of installing via pip.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>