Skip to content

agent-xplat v1.0.3

Latest

Choose a tag to compare

@kwhi6693-web kwhi6693-web released this 06 Sep 09:03
8adf38b

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 | Y type 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 by runs-on and the shell chain (step shell: > defaults.run.shell > runner default), including matrix os lists and include-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-bearing include over a top-level os product) keep the historical conservative behavior.
  • PowerShell/CMD files: .ps1 is PowerShell source, .cmd/.bat is CMD source — legal native syntax ($var, $env:, set, %VAR%, where) is not reported through another shell's lens. Explicit cross-interpreter text (cmd /c inside .ps1, $VAR inside .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 80a83a02 203 → 86 findings (117 removed, 0 added; all 102 AX-SHELL-003 previously reported there confirmed one-by-one as Python-argument false positives); presentation-studio 6c037896 8634 → 5205 (3429 removed, 0 added; workflow 1399 / Python 1697 / .ps1 333, Markdown unchanged).
  • Positive controls preserved and newly tested: subprocess/os literal commands, aliases, multi-line and non-ASCII strings, .cmd $VAR, .ps1 cmd /c, workflow Windows legs, matrix and self-hosted conservatism (see docs/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.