From 0e6afd47216cc345934cb02955c0920c9f578963 Mon Sep 17 00:00:00 2001 From: Copilot Date: Wed, 22 Apr 2026 20:10:58 +0000 Subject: [PATCH] fix(launcher): add --allow-all-paths to copilot launch_copilot() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Python launch_copilot() in launcher/copilot.py only added --allow-all-tools, not --allow-all-paths. When invoked non-interactively via `amplihack copilot -- -p "..."` (the pattern used by builder agents in the recipe runner), copilot denies all writes because it can neither prompt the user nor see explicit path approval. Symptom: "Permission denied and could not request permission from user" for every write attempt, leading to hollow-success runs where steps exit 0 but no files are actually modified. This brings launch_copilot() in line with rust_runner_copilot._normalize_copilot_cli_args() which already prefixes both flags for the wrapper compatibility path. Verified: end-to-end smart-orchestrator → default-workflow → builder now produces real commits and file modifications instead of hollow success. Closes #4445 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/amplihack/launcher/copilot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/amplihack/launcher/copilot.py b/src/amplihack/launcher/copilot.py index 8e43b2901c..a895a5ce7c 100644 --- a/src/amplihack/launcher/copilot.py +++ b/src/amplihack/launcher/copilot.py @@ -1520,6 +1520,7 @@ def launch_copilot(args: list[str] | None = None, interactive: bool = True) -> i cmd = [ "copilot", "--allow-all-tools", + "--allow-all-paths", ] if not args: cmd.extend(