dd99c495f4
The terminal-decoration wrapper script is invoked with sh -lc, which sources login-shell init files (/etc/profile, ~/.profile) rather than interactive-shell files (~/.zshrc). smolvm is typically installed via homebrew whose PATH setup lands in ~/.zprofile or ~/.zshrc — not picked up by sh -l — so pty_resize.py's Popen(["smolvm", ...]) raises FileNotFoundError, pty_resize exits non-zero, and the trailing reset- printf makes sh exit 0. The caller sees "session ended (exit 0)" immediately with no agent output. Use sh -c instead. The calling process (./cli.py) inherits the user's interactive shell PATH where smolvm is present, confirmed by the provision steps (machine_exec) succeeding before exec_agent is reached.