diff --git a/src/resources/extensions/sf/auto.js b/src/resources/extensions/sf/auto.js index d23393337..dad4bdc99 100644 --- a/src/resources/extensions/sf/auto.js +++ b/src/resources/extensions/sf/auto.js @@ -1470,10 +1470,13 @@ export async function startAuto(ctx, pi, base, verboseMode, options) { // Skip if workMode is already "build" — runControl is reset to "manual" on // autonomous stop but workMode persists, so this avoids a spurious prompt // for users who stay in Build mode between autonomous runs. + // Skip in headless mode — the user already consented by calling /next or + // /autonomous explicitly; showing a TUI confirm dialog would block forever. if ( s.runControl === "manual" && s.workMode !== "build" && - !options?.skipModeGate + !options?.skipModeGate && + process.env.SF_HEADLESS !== "1" ) { const confirmed = await showConfirm(ctx, { title: "Switch to Build mode?",