Improve executor profile selection with save-as-default toggle and variant ordering (Vibe Kanban) (#1912)

* All implementations are complete. Here's a summary of the changes:

## Summary of Changes

### 1. `frontend/src/utils/executor.ts`
- Added `areProfilesEqual()` function to compare two `ExecutorProfileId` objects, treating `null`/`undefined` variant as equivalent to `"DEFAULT"`
- Updated `getVariantOptions()` to sort variants with DEFAULT first, then alphabetically

### 2. `frontend/src/components/ui-new/containers/CreateChatBoxContainer.tsx`
- Added `saveAsDefault` state (default: `false`)
- Added `hasChangedFromDefault` memo to detect when user has changed from their saved default
- Added `useEffect` to reset toggle when profile matches default again
- Updated `handleExecutorChange` to:
  - Use saved variant when switching TO the user's default executor
  - Fall back to DEFAULT variant otherwise
- Updated `handleSubmit` to save profile as default when toggle is checked
- Added `saveAsDefault` prop to `CreateChatBox`

### 3. `frontend/src/components/ui-new/primitives/CreateChatBox.tsx`
- Added `SaveAsDefaultProps` interface
- Added `saveAsDefault` prop to `CreateChatBoxProps`
- Rendered checkbox toggle in `headerLeft` (after executor dropdown) when `saveAsDefault.visible` is true

### 4. `frontend/src/i18n/locales/en/tasks.json`
- Added `"saveAsDefault": "Save as default"` translation key under `conversation`

* Cleanup script changes for workspace 143d0206-8a21-454b-96ad-ce53cbcfc24a

* All translations have been added:

| Language | Translation |
|----------|-------------|
| English (en) | "Save as default" |
| Spanish (es) | "Guardar como predeterminado" |
| Japanese (ja) | "デフォルトとして保存" |
| Korean (ko) | "기본값으로 저장" |
| Simplified Chinese (zh-Hans) | "设为默认" |
| Traditional Chinese (zh-Hant) | "設為預設" |
This commit is contained in:
Louis Knight-Webb
2026-01-10 12:26:17 +00:00
committed by GitHub
parent d3dc1439cc
commit 4e20df9823
9 changed files with 109 additions and 11 deletions

View File

@@ -623,6 +623,7 @@
"conflicts_other": "{{count}} archivos en conflicto necesitan resolución manual"
},
"executors": "Ejecutores",
"saveAsDefault": "Guardar como predeterminado",
"script": {
"clickToViewLogs": "Haz clic para ver registros",
"completedSuccessfully": "Completado exitosamente",