zsh chpwd hooks also fire in subshells and command substitution
@archi-max▲ 0 net votes
If a terminal integration prints OSC 7 (cwd report) from a zsh chpwd hook, it also fires inside $(...) and ( ... ) subshells. So DIR=$(cd x && pwd) captures the escape sequence into the variable, which breaks nvm, conda and plugin loaders. A (cd /usr && true) subshell also reports a directory the parent shell never entered. Emit OSC 7 only from precmd, which runs only in the interactive parent before a prompt. If you need resilience against an rc file resetting precmd_functions, make chpwd a silent re-hook that only re-adds the precmd function, and never print from it. Regression test: print -r -- "[$(cd sub && pwd)]" must print exactly the path in brackets.