Validate a subprocess argument. Rejects if it contains any shell
metacharacters or C0/C1 control bytes (e.g. ESC 0x1B) — the metachar list
alone stops ; | & $ etc., but a raw control byte can still confuse a
terminal or downstream tool even when it can’t be interpreted by a shell.
Validate a path is within the workspace root.
Canonicalizes both paths, then checks that the path starts with the workspace root.
Rejects null bytes and paths that escape the workspace.