From c023d80c86cb8fd1896243e19e80ebb610b6fbba Mon Sep 17 00:00:00 2001 From: Josh Knapp Date: Thu, 5 Mar 2026 07:12:35 -0800 Subject: [PATCH] Hide mic toggle UI until upstream /voice WSL detection is fixed Claude Code's /voice command incorrectly detects containers running on WSL2 hosts as unsupported WSL environments. Remove the mic button from project cards and microphone settings from the settings panel, but keep useVoice hook and MicrophoneSettings component for re-enabling once the upstream issue is resolved. Co-Authored-By: Claude Opus 4.6 --- app/src/components/projects/ProjectCard.tsx | 45 ------------------- app/src/components/settings/SettingsPanel.tsx | 3 -- 2 files changed, 48 deletions(-) diff --git a/app/src/components/projects/ProjectCard.tsx b/app/src/components/projects/ProjectCard.tsx index 96199f0..34c0f27 100644 --- a/app/src/components/projects/ProjectCard.tsx +++ b/app/src/components/projects/ProjectCard.tsx @@ -5,8 +5,6 @@ import type { Project, ProjectPath, AuthMode, BedrockConfig, BedrockAuthMethod } import { useProjects } from "../../hooks/useProjects"; import { useMcpServers } from "../../hooks/useMcpServers"; import { useTerminal } from "../../hooks/useTerminal"; -import { useSettings } from "../../hooks/useSettings"; -import { useVoice } from "../../hooks/useVoice"; import { useAppState } from "../../store/appState"; import EnvVarsModal from "./EnvVarsModal"; import PortMappingsModal from "./PortMappingsModal"; @@ -23,15 +21,6 @@ export default function ProjectCard({ project }: Props) { const { start, stop, rebuild, remove, update } = useProjects(); const { mcpServers } = useMcpServers(); const { open: openTerminal } = useTerminal(); - const { appSettings } = useSettings(); - const sessions = useAppState(s => s.sessions); - const activeSessionId = useAppState(s => s.activeSessionId); - - // Find the active terminal session for this project (prefer the currently viewed one) - const projectSession = sessions.find(s => s.projectId === project.id && s.id === activeSessionId) - ?? sessions.find(s => s.projectId === project.id); - const voice = useVoice(projectSession?.id ?? "", appSettings?.default_microphone); - const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [showConfig, setShowConfig] = useState(false); @@ -382,9 +371,6 @@ export default function ProjectCard({ project }: Props) { <> - {projectSession && ( - - )} ) : ( <> @@ -884,34 +870,3 @@ function ActionButton({ ); } -function MicButton({ voice }: { voice: ReturnType }) { - const color = - voice.state === "active" - ? "text-[var(--success)] hover:text-[var(--success)]" - : voice.state === "starting" - ? "text-[var(--warning)] opacity-75" - : voice.state === "error" - ? "text-[var(--error)] hover:text-[var(--error)]" - : "text-[var(--text-secondary)] hover:text-[var(--text-primary)]"; - - return ( - - ); -} diff --git a/app/src/components/settings/SettingsPanel.tsx b/app/src/components/settings/SettingsPanel.tsx index 6c53b71..347e9f0 100644 --- a/app/src/components/settings/SettingsPanel.tsx +++ b/app/src/components/settings/SettingsPanel.tsx @@ -2,7 +2,6 @@ import { useState, useEffect } from "react"; import ApiKeyInput from "./ApiKeyInput"; import DockerSettings from "./DockerSettings"; import AwsSettings from "./AwsSettings"; -import MicrophoneSettings from "./MicrophoneSettings"; import { useSettings } from "../../hooks/useSettings"; import { useUpdates } from "../../hooks/useUpdates"; import ClaudeInstructionsModal from "../projects/ClaudeInstructionsModal"; @@ -60,8 +59,6 @@ export default function SettingsPanel() { - - {/* Container Timezone */}