mirror of
https://github.com/msitarzewski/agency-agents.git
synced 2026-10-12 05:35:01 +00:00
A sequential install called install_tool bare under set -e, so the first tool that returned 1 exited the whole script. With copilot, cursor, qwen, codex and hermes detected and no integrations/cursor: [1/5] copilot [OK] [2/5] cursor [ERR] integrations/cursor missing. Run convert.sh first. (exit 1) qwen, codex and hermes were never attempted, and nothing said so. The same happens for any ensure_converted failure or an OpenClaw registration error. Each tool now runs in a subshell with errexit on. It is not `install_tool "$t" || failed+=(...)`: bash ignores errexit for everything on the left of ||, subshells included, so a failing cp inside a tool would carry on as if it had worked. Instead the parent turns errexit off for that one command, and the subshell turns it back on for itself. A failed tool is recorded and the loop moves on. The done box reads "Installed 2 of 3 tool(s)" instead of "Done!", and the run ends with "Failed: cursor — see the [ERR] line under each above" and exit 1. A clean install is unchanged. Nothing in install_* sets globals the parent reads afterwards, and the SKIPPED_LOG cleanup trap does not fire in a ( ) subshell, so running tools in a subshell loses nothing. Parallel mode is untouched; its log replay on failure is item 1 of #917. test-install-continue-after-failure.sh builds a fixture repo with gemini-cli and qwen output and no cursor output, installs all three, and checks that qwen still installs, cursor's error is shown, the summary names cursor, and the exit is non-zero. It also checks that a clean run still exits 0. It fails on main at "qwen ... was never installed" and runs in check-tools.yml.