9dea4ed256
Add `crates/execpolicy/src/bash_arity.rs` with a hand-curated `BashArityDict` struct (160+ entries, 30+ command families: git, npm, yarn, pnpm, cargo, docker, kubectl, go, pip, gh, rustup, deno, bun, aws, terraform, helm, make). Wire arity-aware prefix matching into: - `crates/tui/src/command_safety.rs` — new public `prefix_allow_matches()` function so `auto_allow = ["git status"]` matches `git status -s` / `git status --porcelain` but NOT `git push`. - `crates/tui/src/execpolicy/rules.rs` — `ExecPolicyConfig::evaluate()` now checks allow rules via `prefix_allow_matches` before falling back to the existing regex/wildcard `pattern_matches` path. - `crates/execpolicy/src/lib.rs` — `ExecPolicyEngine` uses `BashArityDict` for trusted-prefix matching; backward-compatible with existing exact-match deny rules. `cargo +nightly check` passes. 0 errors, 0 warnings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>