2597244b00
The `cd <path> && ...` extractor matched everything up to the first `&&` with a greedy regex, so a redirect or extra argument before the `&&` was swallowed into the structured cwd. `cd /tmp 2>/dev/null && echo ok` became cwd `/tmp 2>/dev/null`, which failed fs.stat and killed the command before the shell ran. Replace the regex with `extractLeadingCdTarget`, a quote/escape-aware scanner in shell-tokenize.ts that captures exactly one path token and bails (leaving the command for the shell) when anything else — a redirect, extra argument, shell expansion, or a non-`&&` separator — precedes the top-level `&&`. Fixes #7883