From f4d2fa2ecebe739b7b0ae0533763106c471b43b6 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sun, 21 Jun 2026 23:02:16 -0700 Subject: [PATCH] FN-6910: hide subtask quick-add behind experiment Hide the AI subtask-breakdown quick-add action unless the experimental flag is explicitly enabled. - Gate Subtask Breakdown callbacks from App on the default-off subtaskBreakdown experiment. - Remove Subtask quick-add buttons from inline create and quick entry surfaces when no callback is wired. - Add settings, quick-add, documentation, and changeset coverage for the new experiment toggle. Files changed: .changeset/fn-6910-subtask-breakdown-flag.md | 5 ++++ docs/dashboard-guide.md | 2 +- packages/dashboard/app/App.tsx | 8 ++++--- .../dashboard/app/components/InlineCreateCard.tsx | 27 ++++++++++++---------- .../dashboard/app/components/QuickEntryBox.tsx | 27 ++++++++++++---------- .../dashboard/app/components/SettingsModal.tsx | 2 ++ .../components/__tests__/InlineCreateCard.test.tsx | 13 +++++++++++ .../components/__tests__/QuickEntryBox.test.tsx | 12 ++++++++++ .../components/__tests__/SettingsModal.test.tsx | 13 +++++++++++ 9 files changed, 81 insertions(+), 28 deletions(-) Fusion-Task-Id: FN-6910 Fusion-Task-Lineage: a7738b1f-7b41-438d-bd94-79ef56928262 --- .changeset/fn-6910-subtask-breakdown-flag.md | 5 ++++ docs/dashboard-guide.md | 2 +- packages/dashboard/app/App.tsx | 8 +++--- .../app/components/InlineCreateCard.tsx | 27 ++++++++++--------- .../app/components/QuickEntryBox.tsx | 27 ++++++++++--------- .../app/components/SettingsModal.tsx | 2 ++ .../__tests__/InlineCreateCard.test.tsx | 13 +++++++++ .../__tests__/QuickEntryBox.test.tsx | 12 +++++++++ .../__tests__/SettingsModal.test.tsx | 13 +++++++++ 9 files changed, 81 insertions(+), 28 deletions(-) create mode 100644 .changeset/fn-6910-subtask-breakdown-flag.md diff --git a/.changeset/fn-6910-subtask-breakdown-flag.md b/.changeset/fn-6910-subtask-breakdown-flag.md new file mode 100644 index 0000000000..8c750b8e07 --- /dev/null +++ b/.changeset/fn-6910-subtask-breakdown-flag.md @@ -0,0 +1,5 @@ +--- +"@runfusion/fusion": patch +--- + +Hide the dashboard AI subtask-breakdown quick-add button behind the default-off `subtaskBreakdown` experimental feature flag. diff --git a/docs/dashboard-guide.md b/docs/dashboard-guide.md index 4c79c4d878..80507c1f1f 100644 --- a/docs/dashboard-guide.md +++ b/docs/dashboard-guide.md @@ -259,7 +259,7 @@ Rules: - `Merge target / base branch` stays optional for all modes and uses the same branch-dropdown + `Custom…` fallback behavior as Planning Mode. - In **More options → Model Configuration**, **Auto-merge** is a per-task override with three states: **Default** (follow project setting), **Enabled**, or **Disabled**. -The dialog also exposes the board quick-add AI handoffs: **Plan** opens Planning Mode with the current description, and **Subtask** opens Subtask Breakdown with the current description. Both buttons remain disabled until the description has content, matching the quick-add row behavior. +The dialog also exposes the board quick-add AI handoffs: **Plan** opens Planning Mode with the current description, and **Subtask** opens Subtask Breakdown with the current description when **Settings → Experimental Features → Subtask Breakdown** is enabled. The Subtask handoff is hidden by default; visible handoff buttons remain disabled until the description has content, matching the quick-add row behavior. ## Chat View diff --git a/packages/dashboard/app/App.tsx b/packages/dashboard/app/App.tsx index 9b470313c2..9e7ab33a95 100644 --- a/packages/dashboard/app/App.tsx +++ b/packages/dashboard/app/App.tsx @@ -1029,6 +1029,8 @@ function AppInner() { const nodesEnabled = experimentalFeatures.nodesView === true; const researchEnabled = experimentalFeatures.researchView === true; const evalsEnabled = experimentalFeatures.evalsView === true; + /* FNXC:QuickAddSubtaskFlag 2026-06-21-00:00: Missing or false `subtaskBreakdown` settings must hide the AI Subtask quick-add handoff across List, Board, and New Task Modal surfaces; only an explicit true wires the callback. */ + const subtaskBreakdownEnabled = experimentalFeatures.subtaskBreakdown === true; /* FNXC:Navigation 2026-06-19-00:00: Experimental left sidebar navigation replaces the Header view shortcuts with a persistent sidebar on non-mobile project screens, while mobile continues to use the bottom navigation bar as the only primary navigation surface. @@ -1861,7 +1863,7 @@ function AppInner() { onQuickCreate={handleBoardQuickCreate} onNewTask={openNewTaskWithNav} onPlanningMode={openPlanningWithInitialPlanWithNav} - onSubtaskBreakdown={openSubtaskBreakdownWithNav} + onSubtaskBreakdown={subtaskBreakdownEnabled ? openSubtaskBreakdownWithNav : undefined} autoMerge={autoMerge} onToggleAutoMerge={toggleAutoMerge} globalPaused={globalPaused} @@ -1915,7 +1917,7 @@ function AppInner() { onNewTask={openNewTaskWithNav} onQuickCreate={handleBoardQuickCreate} onPlanningMode={openPlanningWithInitialPlanWithNav} - onSubtaskBreakdown={openSubtaskBreakdownWithNav} + onSubtaskBreakdown={subtaskBreakdownEnabled ? openSubtaskBreakdownWithNav : undefined} availableModels={availableModels} favoriteProviders={favoriteProviders} favoriteModels={favoriteModels} @@ -2273,7 +2275,7 @@ function AppInner() { handleGitHubImport, }} onPlanningMode={openPlanningWithInitialPlanWithNav} - onSubtaskBreakdown={openSubtaskBreakdownWithNav} + onSubtaskBreakdown={subtaskBreakdownEnabled ? openSubtaskBreakdownWithNav : undefined} taskOperations={{ moveTask, deleteTask, mergeTask, archiveTask, retryTask, resetTask, duplicateTask }} deepLink={{ handleDetailClose }} settings={{ prAuthAvailable, autoMerge, themeMode, colorTheme, dashboardFontScalePct, shadcnCustomColors, resolvedThemeMode, setThemeMode, setColorTheme, setDashboardFontScalePct, setShadcnCustomColors }} diff --git a/packages/dashboard/app/components/InlineCreateCard.tsx b/packages/dashboard/app/components/InlineCreateCard.tsx index 0dd6e64951..7a61dc7946 100644 --- a/packages/dashboard/app/components/InlineCreateCard.tsx +++ b/packages/dashboard/app/components/InlineCreateCard.tsx @@ -904,18 +904,21 @@ export function InlineCreateCard({ {t("inline.plan", "Plan")} - + {/* FNXC:QuickAddSubtaskFlag 2026-06-21-00:00: Render no Subtask button or orphaned inline-create click target unless the default-off `subtaskBreakdown` experiment wires this callback. */} + {onSubtaskBreakdown && ( + + )}
- + {/* FNXC:QuickAddSubtaskFlag 2026-06-21-00:00: Render no Subtask button or click target unless App wires the default-off `subtaskBreakdown` experiment callback. */} + {onSubtaskBreakdown && ( + + )}