GROK BOT / fix-shell-auto-review-bind-no-card

Fix Shell Auto-review “could not be bound” with no approval card

Grok Bot rejects a local Shell command with executable content could not be bound to this review, and no usable approval card appears. Allow once does nothing. Staff on Auto-review blocks local commands (and the earlier no approval card report) call this a known pre-read failure on any host that hits the same bind path (including ChromeOS Penguin).

What fails

Before the Bot runs a command on your computer, it tries to read the program so Auto-review can show what will run. That read fails when:

  • The program is a compiled binary reached by full path (/usr/bin/python3, /bin/echo, /tmp/.../venv/bin/python)
  • The argv0 is a relative path that starts with ../ (for example ../../../../tmp/.../venv/bin/python) — staff on 0.44.0 bind rejection (deanrie): it still resolves to the interpreter binary and trips the same pre-check
  • The first argument is a flag such as -c, -m, or - (python3 -c "…", python3 -m …, bash -c "…", heredocs into the interpreter)
  • A ~/ path is passed into python3 or bash
  • The script the bare interpreter must read is very large (staff ballpark: around 8000 bytes / ~200 lines when argv0 is bare python3 and the script is what gets bound)

The reject happens before a card, so Allow once cannot unlock it. Updating the desktop app does not change this pre-check.

Workarounds that already work

Ask the Bot (or run yourself) in one of these shapes:

  1. Pipe into the interpreter name (no full path, no -c):
echo "print('exec-ok')" | python3
  1. File in the home folder, then run with the bare interpreter name:
python3 exec_ok.py
  1. Relative venv interpreter without ../: set working_directory to the directory that contains the venv folder, then venv/bin/python script.py (no leading /, ./, or ../ on argv0).

Staff asked reporters to try option 1 and confirm it prints exec-ok so the case matches this exact bind bug.

Avoid for now

  • Absolute paths to binaries (/usr/bin/python3, /tmp/.../venv/bin/python)
  • Relative interpreter paths that start with ../ or ./ when they still resolve to the binary
  • python3 -c, python3 -m, bash -c, python3 - with a heredoc
  • ~/ inside a path passed to python3 or bash
  • Handing a multi-thousand-line script to bare python3 script.py when you hit the script-size bind limit

Prefer a bare relative interpreter under working_directory with no leading /, ./, or ../ — for example set working_directory to the folder that contains venv-probe, then run venv-probe/bin/python /workspace/.../install.py .... Or pipe into python3 / use a short home-directory script.

Related

Leftover local-exec daemon issues are a different path: Fix Grok Bot local-exec daemon. Surfshark Temp delays that look like “temporarily unreachable” are covered in Exclude Surfshark Temp so Grok Bot local Shell works.

Pitfalls

  • Retrying the same full-path or -c command after Allow once will keep failing until the shape changes.
  • Auto-review’s bind failure is separate from a normal approval card you intentionally deny.