Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Clicking Always Run on a multi-step Shell card extracts bare binaries (cp, git, python) from an && chain and a heredoc. Those names then appear on the Always-run list. A later Shell card that is only those same names, still joined by && and a heredoc, still prompts.
So Always Run is neither “remember this command” nor a working sticky allow on the names it claims to store.
Related but different: Permissions.json allowlists disable Auto-review (with Sandbox) — contradicts docs (file-owned allowlists grey Auto-review). This report is about Shell Always Run matching, not Run Mode greying.
Steps to Reproduce
- In Agent mode, trigger a Shell card that is a chain like:
cp A B && cp C D && git diff --stat – … && PYTHONPATH=src python - <<‘PY’ … PY - On the approval UI, click Always Run (not Run Everything).
- Observe the Always-run / allowlist surface now lists bare names, e.g. cp, git, python.
- Trigger another Shell card that is again those same binaries in an && chain with a heredoc (same shape as step 1).
Observed 2026-10-03 ~09:44 PT: Always-run list showed cp, git, python while Allowlist mode was selected; the next chain of exactly those names still prompted.
Expected Behavior
Either:
- Always Run remembers that specific command / chain and does not re-prompt for an equivalent chain; or
- Always Run’s stored bare names actually match subsequent commands that use those binaries (including && and heredocs), and the product docs say clearly that a sticky git allow covers all git subcommands (including push).
Ask: fix matching for && / env prefixes / heredocs, or change the UI so Always Run does not claim bare-name coverage when the matcher cannot honor it.
Operating System
MacOS
Version Information
Version: 3.23.12
OS: Darwin arm64 (macOS)
Build Type: Stable (from installed Cursor.app Info.plist CFBundleShortVersionString 3.23.12)
For AI issues: which model did you use?
Agent Shell Always Run UI (model-agnostic; observed under Auto / Agent chat)
Additional Information
Widening the bare-name allowlist is the wrong “fix” for users who care about safety: sticky git is also a push/reset/remote license; sticky cp overwrites source; sticky python runs arbitrary scripts. That pushes people toward Run Everything.
One-shot Run remains the safe human go for the pending card. Do not treat this as a request to enable Run Everything.
At the time of the card, Run Mode was Allowlist because Auto-review (with Sandbox) was greyed by a non-empty mcpAllowlist in ~/.cursor/permissions.json (staff workaround in #165722: move allowlists into Settings).
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor