agent-xplat v1.0.3
Cross-OS runtime portability checker for AI agent workflows — patch release that scopes shell/quoting detectors to real execution contexts, removing three observed false-positive families without disabling any rule.
Changes
- Python source: only string literals passed to explicit shell-execution calls (
subprocess.run/call/Popen/check_*,os.system,os.popen) are shell corpus now. Keyword arguments (detail="...",tempfile(..., dir=path)), assignments,X | Ytype annotations, docstrings and ordinary strings no longer produce shell findings. Import aliases (import subprocess as sp,from subprocess import run as x,from os import ...) are resolved structurally. - GitHub Actions workflows:
run:blocks are scoped to the executor chosen byruns-onand the shell chain (stepshell:>defaults.run.shell> runner default), including matrixoslists andinclude-only matrices. Explicit bash steps on Linux/macOS runners no longer receive CMD/PowerShell-lens findings; Windows legs keep their findings; unprovable runners (self-hosted, expressions, os-bearingincludeover a top-level os product) keep the historical conservative behavior. - PowerShell/CMD files:
.ps1is PowerShell source,.cmd/.batis CMD source — legal native syntax ($var,$env:,set,%VAR%,where) is not reported through another shell's lens. Explicit cross-interpreter text (cmd /cinside.ps1,$VARinside.cmd) stays detected.
Evidence
- Same-commit comparison on two consumer repositories (fixed commits, both tool versions, identical config; per-finding removed lists archived): photo-abstract-editorial
80a83a02203 → 86 findings (117 removed, 0 added; all 102 AX-SHELL-003 previously reported there confirmed one-by-one as Python-argument false positives); presentation-studio6c0378968634 → 5205 (3429 removed, 0 added; workflow 1399 / Python 1697 /.ps1333, Markdown unchanged). - Positive controls preserved and newly tested:
subprocess/osliteral commands, aliases, multi-line and non-ASCII strings,.cmd$VAR,.ps1cmd /c, workflow Windows legs, matrix and self-hosted conservatism (seedocs/audit/fix-execution-context-false-positives.md). - Tests: 119 collected, 118 passed, 1 skipped (Ubuntu/bash-only CI-adoption test); three-system workflow green on the released commit.
Limitations
- Shell commands built dynamically or passed through variables are not detected in Python (static literal strings only); docstring text is intentionally not shell corpus; workflow executor inference is an approximation of hosted runners. No zero-false-positive or universal-compatibility claim is made.