
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 intopython3orbash - The script the bare interpreter must read is very large (staff ballpark: around 8000 bytes / ~200 lines when argv0 is bare
python3and 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:
- Pipe into the interpreter name (no full path, no
-c):
echo "print('exec-ok')" | python3
- File in the home folder, then run with the bare interpreter name:
python3 exec_ok.py
- Relative venv interpreter without
../: setworking_directoryto the directory that contains the venv folder, thenvenv/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 topython3orbash- Handing a multi-thousand-line script to bare
python3 script.pywhen 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
-ccommand 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.