From 1576a8054d4d2df9e4771ef9ade6f57a837869e4 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 30 May 2026 10:34:51 -0700 Subject: [PATCH] fix(dev-setup): run setup non-interactively in dev/workspace mode Conductor runs bin/dev-setup under a forwarded pty, so any setup prompt (skill-prefix, plan-tune consent) would hang the workspace. Detach stdin (`setup --- bin/dev-setup | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bin/dev-setup b/bin/dev-setup index a5bd48275..48d3c2b39 100755 --- a/bin/dev-setup +++ b/bin/dev-setup @@ -56,8 +56,17 @@ if [ ! -e "$AGENTS_LINK" ]; then ln -s "$REPO_ROOT" "$AGENTS_LINK" fi -# 6. Run setup via the symlink so it detects .claude/skills/ as its parent -"$GSTACK_LINK/setup" +# 6. Run setup via the symlink so it detects .claude/skills/ as its parent. +# +# Workspace/dev setup MUST be non-interactive: Conductor runs this under a +# forwarded pty, so any `read` in setup (skill-prefix prompt, plan-tune hook +# consent) would hang the workspace forever. Detaching stdin makes every +# setup prompt take its smart non-interactive default (flat skill names; skip +# the global plan-tune hook install without writing a decline marker, so a +# later hands-on `./setup` can still offer it). A dev workspace should never +# silently mutate ~/.claude/settings.json — pass --plan-tune-hooks explicitly +# if you do want them. (Saved prefix/config preferences are still honored.) +"$GSTACK_LINK/setup"