feat(ui): add profiles-only mode to simplify model selection

Adds a new setting to show only AI profiles by default, hiding advanced
model tweaking options (Claude SDK, thinking levels, Codex) for a cleaner
UI. Users can toggle advanced options when needed via "Show Advanced" button.

- Added showProfilesOnly setting in app store and settings view
- Modified board-view dialogs to conditionally hide advanced options
- Added toggle buttons to temporarily show advanced options in both
  add and edit feature modals
- Enhanced settings view with proper icons and descriptions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
This commit is contained in:
Kacper
2025-12-10 14:12:13 +01:00
parent 55b8e6858e
commit 1ea18b779e
4 changed files with 141 additions and 11 deletions

View File

@@ -37,6 +37,7 @@ import {
Folder,
GitBranch,
TestTube,
Settings2,
} from "lucide-react";
import { getElectronAPI } from "@/lib/electron";
import { Checkbox } from "@/components/ui/checkbox";
@@ -73,6 +74,8 @@ export function SettingsView() {
setDefaultSkipTests,
useWorktrees,
setUseWorktrees,
showProfilesOnly,
setShowProfilesOnly,
currentProject,
moveProjectToTrash,
} = useAppStore();
@@ -1283,6 +1286,40 @@ export function SettingsView() {
</p>
</div>
<div className="p-6 space-y-4">
{/* Profiles Only Setting */}
<div className="space-y-3">
<div className="flex items-start space-x-3">
<Checkbox
id="show-profiles-only"
checked={showProfilesOnly}
onCheckedChange={(checked) =>
setShowProfilesOnly(checked === true)
}
className="mt-0.5"
data-testid="show-profiles-only-checkbox"
/>
<div className="space-y-1">
<Label
htmlFor="show-profiles-only"
className="text-foreground cursor-pointer font-medium flex items-center gap-2"
>
<Settings2 className="w-4 h-4 text-brand-500" />
Show profiles only by default
</Label>
<p className="text-xs text-muted-foreground">
When enabled, the Add Feature dialog will show only AI profiles
and hide advanced model tweaking options (Claude SDK, thinking levels,
and OpenAI Codex CLI). This creates a cleaner, less overwhelming UI.
You can always disable this to access advanced settings.
</p>
</div>
</div>
</div>
{/* Separator */}
<div className="border-t border-border" />
{/* Skip Tests Setting */}
<div className="space-y-3">
<div className="flex items-start space-x-3">
<Checkbox
@@ -1297,7 +1334,7 @@ export function SettingsView() {
<div className="space-y-1">
<Label
htmlFor="default-skip-tests"
className="text-foreground cursor-pointer font-medium"
className="text-foreground cursor-pointer font-medium flex items-center gap-2"
>
<TestTube className="w-4 h-4 text-brand-500" />
Skip automated testing by default