From 09576f16ef0334834c305d0114ffbe0314610246 Mon Sep 17 00:00:00 2001 From: A <258483684+la14-1@users.noreply.github.com> Date: Sun, 15 Mar 2026 23:43:01 -0700 Subject: [PATCH] fix(ui): remove confusing "None" checkbox from setup options (#2682) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "None" sentinel option stayed checked alongside real selections, which was confusing. Remove it — the multiselect already supports submitting with nothing selected via `required: false`. Co-authored-by: Claude Co-authored-by: Claude Opus 4.6 (1M context) --- packages/cli/package.json | 2 +- packages/cli/src/commands/interactive.ts | 32 ++++++------------------ 2 files changed, 8 insertions(+), 26 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index e86d299d..79745b69 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/spawn", - "version": "0.20.0", + "version": "0.20.1", "type": "module", "bin": { "spawn": "cli.js" diff --git a/packages/cli/src/commands/interactive.ts b/packages/cli/src/commands/interactive.ts index dad1b294..f6a36549 100644 --- a/packages/cli/src/commands/interactive.ts +++ b/packages/cli/src/commands/interactive.ts @@ -152,9 +152,6 @@ function hasLocalGithubToken(): boolean { ); } -/** Sentinel value for the "None" option in the setup options multiselect. */ -const NONE_STEP = "__none__"; - /** * Show a multiselect prompt for optional post-provision setup steps. * Returns a Set of enabled step values, or undefined if there are no steps. @@ -173,26 +170,13 @@ async function promptSetupOptions(agentName: string): Promise | unde return undefined; } - // Nothing pre-selected — let users opt in to what they want - const defaultValues = [ - NONE_STEP, - ]; - const selected = await p.multiselect({ - message: "Setup options (↑/↓ navigate, space to select, enter to confirm)", - options: [ - { - value: NONE_STEP, - label: "None", - hint: "skip all setup steps", - }, - ...filteredSteps.map((s) => ({ - value: s.value, - label: s.label, - hint: s.hint, - })), - ], - initialValues: defaultValues, + message: "Setup options (↑/↓ navigate, space=toggle, a=all, enter=confirm)", + options: filteredSteps.map((s) => ({ + value: s.value, + label: s.label, + hint: s.hint, + })), required: false, }); @@ -200,9 +184,7 @@ async function promptSetupOptions(agentName: string): Promise | unde return new Set(); } - // Strip the "None" sentinel — it carries no real step value - const realSteps = selected.filter((v) => v !== NONE_STEP); - const stepSet = new Set(realSteps); + const stepSet = new Set(selected); // If user selected "Custom model", prompt for the model ID and set MODEL_ID env if (stepSet.has("custom-model")) {