Repository navigation
v0.20.2
Fixed
ach smokeon macOS (#139): a step, or a program it runs, that called/usr/bin/open URL(or/usr/bin/osascript, which Python'swebbrowseruses) by absolute path bypassed the PATH shims and opened your real browser. A literal/usr/bin/openin the step text is now caught by a zsh function that runs the sandbox shim, so the URL is recorded. Shell steps also run undersandbox-execdenying exec of those two binaries, so child processes are blocked withOperation not permitted, reported as a specificdeniedfriction.sandbox-execis probed once per sandbox and skipped (plain/bin/zsh) when it is unavailable. Prompt steps are unchanged.ach smoke --fix-agent claudeand--fix-toolwith claude failed with "Not logged in": the fix agent ranach run --agent claudewith a fresh per-run config dir, which cannot see your Claude login. The fix agent works on the host on your behalf, so with claude it now passes--claude-default-configand uses your login. Found in a live run.ach smoke --copyon macOS put only RTF on the clipboard (pbcopy -Prefer rtf), sopbpasteand plain-text fields got nothing and Chrome pages such as Gmail could not paste it as rich text. It now writes HTML, RTF and the plain markdown in one pasteboard write.ach smoke --fix-agent: when the agent wrapped its replacement step in a markdown fence (```sh), the fence was kept. The revised message then had nested fences, and the rerun passed the backticks to zsh as a command substitution. A fence around the whole replacement is now dropped, and the prompt asks for plain command text. Found in a live run.ach smoke: tokens spent by the--fix-agent/--fix-toolagents were dropped, so the footer saidtotal tokens: 0after a run that called Claude. They are now in the report asfixAgentTokensand in the footer as(+ N fix-agent).
Fixes #139 (follow-up: gaps found by live-testing ach smoke)