FN-7284: remove Quick Add Plan icon

Remove the extra Quick Add Plan icon while preserving the text button planning flow.

- Drop the Lightbulb icon from the QuickEntryBox Plan action and document the text-only affordance requirement.
- Extend QuickEntryBox coverage to assert the Plan action remains text-only and still trims the draft for planning handoff.
- Add a patch changeset for the published CLI package.

Files changed:
 .changeset/remove-quick-add-plan-icon.md                          | 7 +++++++
 packages/dashboard/app/components/QuickEntryBox.tsx               | 2 +-
 .../dashboard/app/components/__tests__/QuickEntryBox.test.tsx     | 8 ++++++--
 3 files changed, 14 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-7284

Fusion-Task-Lineage: 331eaf54-d51e-4f37-8434-1a0590edf7a1

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
This commit is contained in:
gsxdsm
2026-06-30 10:14:47 -07:00
parent 7eca99c8b1
commit a92f15efaa
3 changed files with 14 additions and 3 deletions

View File

@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---
summary: Remove the icon from the Quick Add Plan action while preserving the text button behavior.
category: fix
dev: Updates QuickEntryBox and regression coverage for the text-only Plan action.

View File

@@ -1857,6 +1857,7 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
triggerTestId="quick-entry-optional-steps-trigger"
/>
{/* FNXC:QuickEntry 2026-06-30-00:00: Quick Add Plan stays a normal text action without a Lightbulb icon so the action row preserves behavior while removing the extra visual affordance and icon spacing shell. */}
<button
type="button"
className="btn btn-sm"
@@ -1866,7 +1867,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
data-testid="plan-button"
title={t("tasks.planButtonTitle", "Open planning mode with current description")}
>
<Lightbulb size={12} style={{ verticalAlign: "middle", marginRight: 4 }} />
{t("tasks.plan", "Plan")}
</button>
{/* FNXC:QuickAddSubtaskFlag 2026-06-21-00:00: Render no Subtask button or click target unless App wires the default-off `subtaskBreakdown` experiment callback. */}

View File

@@ -2795,14 +2795,18 @@ describe("QuickEntryBox", () => {
});
});
it("calls onPlanningMode and preserves input draft when Plan clicked", async () => {
it("renders Plan as text-only and preserves planning handoff", async () => {
const onPlanningMode = vi.fn();
renderQuickEntryBox({ onPlanningMode });
expandQuickEntry();
const textarea = screen.getByTestId("quick-entry-input") as HTMLTextAreaElement;
const planButton = screen.getByTestId("plan-button");
expect(planButton).toHaveTextContent("Plan");
expect(planButton.querySelector("svg")).toBeNull();
fireEvent.change(textarea, { target: { value: " Plan this task " } });
fireEvent.click(screen.getByTestId("plan-button"));
fireEvent.click(planButton);
await waitFor(() => {
expect(onPlanningMode).toHaveBeenCalledWith("Plan this task");