test: cover versioned inline eval approval [AI]#97833
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 29, 2026, 11:29 AM ET / 15:29 UTC. Summary PR surface: Source +13, Tests +120. Total +133 across 4 files. Reproducibility: yes. from source and related proof: the original gap was exact interpreter matching feeding strictInlineEval, and #96216 already demonstrates the fixed node-host denial and one-shot allow-always path. I did not run tests because this review is read-only. Review metrics: 1 noteworthy metric.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Refresh the branch on current main, remove the duplicate production detector reshaping unless a maintainer explicitly wants that new contract, and keep only the useful php8.3, gateway denial, and allow-always regression coverage with real terminal proof. Do we have a high-confidence way to reproduce the issue? Yes from source and related proof: the original gap was exact interpreter matching feeding strictInlineEval, and #96216 already demonstrates the fixed node-host denial and one-shot allow-always path. I did not run tests because this review is read-only. Is this the best way to solve the issue? No as currently shaped: the extra tests are useful, but the production detector reshaping duplicates behavior already present on current main. The safer fix is to refresh this branch into a narrow coverage-only PR unless maintainers intentionally choose the new per-spec detector contract. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1052652a7168. Label changesLabel justifications:
Evidence reviewedPR surface: Source +13, Tests +120. Total +133 across 4 files. View PR surface stats
Security concerns:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review Updated after the earlier review: this head now includes the production inline-eval detector change in |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Verification before merge: Behavior addressed: strict inline-eval detection now recognizes versioned Python/PyPy interpreter names, PHP inline flags, and R/Rscript eval forms so those inline-code commands stay on the existing approval path.
Regression Risk: Best fix verdict: appropriate. The detector table owns interpreter spelling and inline-flag classification, while gateway tests verify enforcement after detection; moving this into auth, sandbox, provider, plugin, or channel policy would be the wrong layer. User behavior change: |
What Problem This Solves
The strict inline-eval approval boundary needs source-level and gateway-path coverage for version-suffixed interpreter names and inline flags so those command forms continue to require explicit approval under
strictInlineEval=true.Why This Change Was Made
This makes versioned interpreter matching explicit in the inline-eval detector specs for the affected interpreter families, adds direct detector coverage for a versioned PHP binary, and broadens approval-path regression coverage for the reported carrier forms. It also verifies those carriers do not become reusable allow-always entries in strict mode.
This PR was AI-assisted.
User Impact
Operators keep the same strict inline-eval guardrail behavior for interpreter inline-code commands. The change is limited to detector matching and regression coverage; it does not add config, migration, provider, plugin, channel, storage, or protocol behavior.
Evidence
node scripts/run-vitest.mjs src/infra/command-analysis/inline-eval.test.ts src/infra/command-analysis/risks.test.ts src/infra/exec-approvals-allow-always.test.ts src/agents/bash-tools.exec-host-gateway.test.ts