diff --git a/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx b/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx
index bab34522..c502e2b0 100644
--- a/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx
+++ b/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx
@@ -53,6 +53,7 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
+import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
import {
getAncestors,
formatAncestorContextForPrompt,
@@ -492,23 +493,44 @@ export function AddFeatureDialog({
/>
-
- {modelSupportsPlanningMode && (
-
-
+
+
+
+ {modelSupportsPlanningMode ? (
-
- )}
+ ) : (
+
+
+
+
+
{}}
+ testIdPrefix="add-feature-planning"
+ compact
+ disabled
+ />
+
+
+
+ Planning modes are only available for Claude Provider
+
+
+
+ )}
+
@@ -526,28 +548,32 @@ export function AddFeatureDialog({
Run tests
- {modelSupportsPlanningMode && (
-
- setRequirePlanApproval(!!checked)}
- disabled={planningMode === 'skip' || planningMode === 'lite'}
- data-testid="add-feature-require-approval-checkbox"
- />
-
-
- )}
+
+ setRequirePlanApproval(!!checked)}
+ disabled={
+ !modelSupportsPlanningMode ||
+ planningMode === 'skip' ||
+ planningMode === 'lite'
+ }
+ data-testid="add-feature-require-approval-checkbox"
+ />
+
+
diff --git a/apps/ui/src/components/views/board-view/dialogs/edit-feature-dialog.tsx b/apps/ui/src/components/views/board-view/dialogs/edit-feature-dialog.tsx
index addd7e83..7b4ac693 100644
--- a/apps/ui/src/components/views/board-view/dialogs/edit-feature-dialog.tsx
+++ b/apps/ui/src/components/views/board-view/dialogs/edit-feature-dialog.tsx
@@ -52,6 +52,7 @@ import {
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
+import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
import { DependencyTreeDialog } from './dependency-tree-dialog';
import { isClaudeModel, supportsReasoningEffort } from '@automaker/types';
@@ -516,23 +517,44 @@ export function EditFeatureDialog({
/>
-
- {modelSupportsPlanningMode && (
-
-
+
+
+
+ {modelSupportsPlanningMode ? (
-
- )}
+ ) : (
+
+
+
+
+
{}}
+ testIdPrefix="edit-feature-planning"
+ compact
+ disabled
+ />
+
+
+
+ Planning modes are only available for Claude Provider
+
+
+
+ )}
+
@@ -552,28 +574,32 @@ export function EditFeatureDialog({
Run tests
- {modelSupportsPlanningMode && (
-
- setRequirePlanApproval(!!checked)}
- disabled={planningMode === 'skip' || planningMode === 'lite'}
- data-testid="edit-feature-require-approval-checkbox"
- />
-
-
- )}
+
+ setRequirePlanApproval(!!checked)}
+ disabled={
+ !modelSupportsPlanningMode ||
+ planningMode === 'skip' ||
+ planningMode === 'lite'
+ }
+ data-testid="edit-feature-require-approval-checkbox"
+ />
+
+
diff --git a/apps/ui/src/components/views/board-view/dialogs/mass-edit-dialog.tsx b/apps/ui/src/components/views/board-view/dialogs/mass-edit-dialog.tsx
index ce391330..30042a4c 100644
--- a/apps/ui/src/components/views/board-view/dialogs/mass-edit-dialog.tsx
+++ b/apps/ui/src/components/views/board-view/dialogs/mass-edit-dialog.tsx
@@ -15,8 +15,9 @@ import { modelSupportsThinking } from '@/lib/utils';
import { Feature, ModelAlias, ThinkingLevel, PlanningMode } from '@/store/app-store';
import { TestingTabContent, PrioritySelect, PlanningModeSelect } from '../shared';
import { PhaseModelSelector } from '@/components/views/settings-view/model-defaults/phase-model-selector';
-import { isCursorModel, type PhaseModelEntry } from '@automaker/types';
+import { isCursorModel, isClaudeModel, type PhaseModelEntry } from '@automaker/types';
import { cn } from '@/lib/utils';
+import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
interface MassEditDialogProps {
open: boolean;
@@ -167,6 +168,7 @@ export function MassEditDialog({ open, onClose, selectedFeatures, onApply }: Mas
const hasAnyApply = Object.values(applyState).some(Boolean);
const isCurrentModelCursor = isCursorModel(model);
const modelAllowsThinking = !isCurrentModelCursor && modelSupportsThinking(model);
+ const modelSupportsPlanningMode = isClaudeModel(model);
return (