From 069343e0bee7180f3419e42d801c985721af9e3e Mon Sep 17 00:00:00 2001 From: morgmart <98432065+morgmart@users.noreply.github.com> Date: Thu, 23 Jul 2026 17:08:48 -0700 Subject: [PATCH 1/2] Restore Goose and Buzz Agent to onboarding harness selection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverts the launch-only restriction from #2233 by adding goose and buzz-agent back to ONBOARDING_RUNTIME_ORDER — the single centralized onboarding visibility allowlist. Setup cards, readiness handoff, and the defaults harness picker all follow from that one list. Also generalizes the empty-state copy and updates the unit + E2E specs that pinned the hidden behavior. --- .../src/features/onboarding/ui/SetupStep.tsx | 4 ++-- .../ui/onboardingRuntimeSelection.test.mjs | 13 +++++++------ .../ui/onboardingRuntimeSelection.ts | 7 ++++++- .../e2e/onboarding-agent-defaults.spec.ts | 18 +++++++----------- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/desktop/src/features/onboarding/ui/SetupStep.tsx b/desktop/src/features/onboarding/ui/SetupStep.tsx index 96e7322d14..9be69d1e10 100644 --- a/desktop/src/features/onboarding/ui/SetupStep.tsx +++ b/desktop/src/features/onboarding/ui/SetupStep.tsx @@ -624,8 +624,8 @@ function RuntimeProvidersSection({ className="max-w-[560px] rounded-2xl bg-white/70 px-6 py-6 text-sm text-muted-foreground" data-testid="onboarding-acp-empty" > - No supported agent harnesses were detected yet. Install Claude Code - or Codex, then check again. + No supported agent harnesses were detected yet. Install a supported + harness, then check again.
)} diff --git a/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.test.mjs b/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.test.mjs index b10aa19154..221702ebb2 100644 --- a/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.test.mjs +++ b/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.test.mjs @@ -12,11 +12,11 @@ function runtime(id, availability, status) { return { id, availability, authStatus: { status } }; } -test("only Claude Code and Codex are visible in onboarding", () => { +test("all bundled harnesses are visible in onboarding", () => { assert.equal(runtimeIsVisibleInOnboarding("claude"), true); assert.equal(runtimeIsVisibleInOnboarding("codex"), true); - assert.equal(runtimeIsVisibleInOnboarding("goose"), false); - assert.equal(runtimeIsVisibleInOnboarding("buzz-agent"), false); + assert.equal(runtimeIsVisibleInOnboarding("goose"), true); + assert.equal(runtimeIsVisibleInOnboarding("buzz-agent"), true); assert.equal(runtimeIsVisibleInOnboarding("custom"), false); }); @@ -30,7 +30,7 @@ test("visible onboarding runtimes use the product order", () => { assert.deepEqual( getVisibleOnboardingRuntimes(runtimes).map(({ id }) => id), - ["claude", "codex"], + ["claude", "codex", "goose", "buzz-agent"], ); }); @@ -55,16 +55,17 @@ test("readiness requires an available and authenticated runtime", () => { ); }); -test("ready onboarding runtimes exclude hidden ready harnesses", () => { +test("ready onboarding runtimes exclude unknown and non-ready harnesses", () => { const runtimes = [ runtime("goose", "available", "not_applicable"), runtime("codex", "available", "logged_out"), runtime("buzz-agent", "available", "not_applicable"), runtime("claude", "available", "logged_in"), + runtime("custom", "available", "not_applicable"), ]; assert.deepEqual( getReadyOnboardingRuntimes(runtimes).map(({ id }) => id), - ["claude"], + ["claude", "goose", "buzz-agent"], ); }); diff --git a/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.ts b/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.ts index 51339e2afe..cd491dfcc5 100644 --- a/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.ts +++ b/desktop/src/features/onboarding/ui/onboardingRuntimeSelection.ts @@ -1,6 +1,11 @@ import type { AcpRuntimeCatalogEntry } from "@/shared/api/types"; -export const ONBOARDING_RUNTIME_ORDER = ["claude", "codex"]; +export const ONBOARDING_RUNTIME_ORDER = [ + "claude", + "codex", + "goose", + "buzz-agent", +]; const VISIBLE_ONBOARDING_RUNTIME_IDS = new Set