From 4277bb39530d857adad502704478501e9447749e Mon Sep 17 00:00:00 2001
From: morgmart <98432065+morgmart@users.noreply.github.com>
Date: Tue, 21 Jul 2026 09:45:05 -0700
Subject: [PATCH 01/11] Hide bundled harnesses from onboarding
---
.../src/features/onboarding/ui/SetupStep.tsx | 80 +++----------------
.../ui/onboardingRuntimeSelection.test.mjs | 21 ++---
.../ui/onboardingRuntimeSelection.ts | 22 ++---
3 files changed, 23 insertions(+), 100 deletions(-)
diff --git a/desktop/src/features/onboarding/ui/SetupStep.tsx b/desktop/src/features/onboarding/ui/SetupStep.tsx
index 9307e4dc99..07b488e695 100644
--- a/desktop/src/features/onboarding/ui/SetupStep.tsx
+++ b/desktop/src/features/onboarding/ui/SetupStep.tsx
@@ -1,27 +1,27 @@
import * as React from "react";
import { openUrl } from "@tauri-apps/plugin-opener";
-import { AlertTriangle, Check, ExternalLink } from "lucide-react";
+import { Check } from "lucide-react";
import {
useAcpAuthMethodsQuery,
useAcpRuntimesQuery,
useConnectAcpRuntimeMutation,
useInstallAcpRuntimeMutation,
- useGitBashPrerequisiteQuery,
} from "@/features/agents/hooks";
import { describeResolvedCommand } from "@/features/agents/ui/agentUi";
import type { AcpAuthMethod, AcpRuntimeCatalogEntry } from "@/shared/api/types";
import { getInstallErrorMessage } from "@/shared/lib/installError";
import { cn } from "@/shared/lib/cn";
-import { Badge } from "@/shared/ui/badge";
import { Button } from "@/shared/ui/button";
import { Card } from "@/shared/ui/card";
import { FlappingBee } from "@/shared/ui/buzz-logo/FlappingBee";
import { Spinner } from "@/shared/ui/spinner";
import { Tooltip, TooltipContent, TooltipTrigger } from "@/shared/ui/tooltip";
import {
+ ONBOARDING_RUNTIME_ORDER,
runtimeCanAdvanceOnboarding,
runtimeCanBeSelected,
+ runtimeIsOnboardingChoice,
} from "./onboardingRuntimeSelection";
import { ONBOARDING_PRIMARY_CTA_CLASS } from "./OnboardingChrome";
import { RuntimeErrorTooltip } from "./RuntimeErrorTooltip";
@@ -609,62 +609,6 @@ function RuntimeCard({
);
}
-function GitBashPrerequisiteCard() {
- const query = useGitBashPrerequisiteQuery();
- const prerequisite = query.data;
- if (!prerequisite) return null;
-
- return (
-
-
- {prerequisite.available ? (
-
- ) : (
-
- )}
-
Git Bash
- {prerequisite.available ? (
-
- Installed
-
- ) : null}
-
- {prerequisite.available ? (
-
- {prerequisite.path}
-
- ) : (
- <>
-
- Required for buzz-agent shell tools on Windows.
-
-
- {prerequisite.installHint}
-
-
- >
- )}
-
- );
-}
-
function RuntimeProvidersLoadingState() {
return (
{
- const leftIndex = runtimeOrder.indexOf(left.id);
- const rightIndex = runtimeOrder.indexOf(right.id);
- return (
- (leftIndex === -1 ? runtimeOrder.length : leftIndex) -
- (rightIndex === -1 ? runtimeOrder.length : rightIndex)
+ const orderedItems = items
+ .filter((runtime) => runtimeIsOnboardingChoice(runtime.id))
+ .sort(
+ (left, right) =>
+ ONBOARDING_RUNTIME_ORDER.indexOf(left.id) -
+ ONBOARDING_RUNTIME_ORDER.indexOf(right.id),
);
- });
const installMutation = useInstallAcpRuntimeMutation();
const selectedRuntimeIdSet = React.useMemo(
() => new Set(selectedRuntimeIds),
@@ -782,9 +724,7 @@ function RuntimeProvidersSection({
-
-
- {items.length > 0 ? (
+ {orderedItems.length > 0 ? (
@@ -266,6 +247,7 @@ export function DefaultConfigStep({