feat(FN-3632): remove quick-entry branch handling from dashboard and docs

Removes the `QuickEntryBox` component and its styles as part of FN-3632 cleanup, with its tests refactored accordingly. Also updates the test-changed script and fixes an isolated test home cleanup ordering issue.

Fusion-Task-Id: FN-3632
This commit is contained in:
Fusion
2026-05-07 01:23:07 -07:00
committed by gsxdsm
parent 95002edf21
commit 10b7b3014f
5 changed files with 30 additions and 94 deletions

View File

@@ -113,26 +113,6 @@
flex: 1 1 auto;
}
.quick-entry-branch-fields {
display: flex;
flex-wrap: wrap;
gap: var(--space-sm);
width: 100%;
}
.quick-entry-branch-fields label {
display: flex;
flex: 1 1 calc(50% - var(--space-sm));
flex-direction: column;
gap: var(--space-xs);
min-width: min(100%, calc(var(--space-xl) * 12));
}
.quick-entry-branch-fields span {
color: var(--text-muted);
font-size: 0.75rem;
}
.quick-entry-model-wrap {
position: relative;
}
@@ -454,11 +434,6 @@
min-height: 36px;
}
.quick-entry-branch-fields label {
flex: 1 1 100%;
min-width: 100%;
}
.quick-entry-box .dep-dropdown {
max-width: calc(100vw - calc(var(--space-lg) * 2));
}

View File

@@ -159,8 +159,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
const [isFastMode, setIsFastMode] = useState(false);
const [priority, setPriority] = useState<TaskPriority>(DEFAULT_TASK_PRIORITY);
const [nodeId, setNodeId] = useState<string | undefined>(undefined);
const [branch, setBranch] = useState("");
const [baseBranch, setBaseBranch] = useState("");
const { nodes } = useNodes();
// AI Refinement state
@@ -439,8 +437,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
setIsFastMode(false);
setPriority(DEFAULT_TASK_PRIORITY);
setNodeId(undefined);
setBranch("");
setBaseBranch("");
setShowDeps(false);
setIsModelMenuOpen(false);
setModelMenuPosition(null);
@@ -514,8 +510,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
...(isFastMode ? { executionMode: "fast" } : {}),
priority,
nodeId,
branch: branch.trim() === "" ? undefined : branch.trim(),
baseBranch: baseBranch.trim() === "" ? undefined : baseBranch.trim(),
});
if (createdTask && pendingImages.length > 0) {
const failures: string[] = [];
@@ -563,8 +557,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
isFastMode,
priority,
nodeId,
branch,
baseBranch,
]);
const handleKeyDown = useCallback(
@@ -1858,33 +1850,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
</div>
)}
{showExpandedControls && (
<div className="quick-entry-branch-fields" data-testid="quick-entry-branch-fields">
<label>
<span>Working branch</span>
<input
className="input"
value={branch}
onChange={(e) => setBranch(e.target.value)}
placeholder="e.g. feature/my-task"
data-testid="quick-entry-working-branch"
disabled={isSubmitting || isDisabled}
/>
</label>
<label>
<span>Merge target / base branch</span>
<input
className="input"
value={baseBranch}
onChange={(e) => setBaseBranch(e.target.value)}
placeholder="e.g. main"
data-testid="quick-entry-base-branch"
disabled={isSubmitting || isDisabled}
/>
</label>
</div>
)}
{pendingImages.length > 0 && (
<div className="inline-create-previews">
{pendingImages.map((img, index) => (

View File

@@ -724,42 +724,24 @@ describe("QuickEntryBox", () => {
});
});
it("includes branch and baseBranch when provided", async () => {
it("does not render branch fields and does not include branch payload keys", async () => {
const { props } = renderQuickEntryBox({});
expandQuickEntry();
const textarea = screen.getByTestId("quick-entry-input");
fireEvent.change(textarea, { target: { value: "Task with quick-entry branches" } });
fireEvent.change(screen.getByTestId("quick-entry-working-branch"), { target: { value: " feature/quick " } });
fireEvent.change(screen.getByTestId("quick-entry-base-branch"), { target: { value: " main " } });
expect(screen.queryByTestId("quick-entry-working-branch")).toBeNull();
expect(screen.queryByTestId("quick-entry-base-branch")).toBeNull();
fireEvent.change(textarea, { target: { value: "Task without quick-entry branch controls" } });
fireEvent.keyDown(textarea, { key: "Enter" });
await waitFor(() => {
expect(props.onCreate).toHaveBeenCalledWith(
expect.objectContaining({
branch: "feature/quick",
baseBranch: "main",
}),
);
expect(props.onCreate).toHaveBeenCalled();
});
});
it("omits branch and baseBranch when branch fields are blank", async () => {
const { props } = renderQuickEntryBox({});
expandQuickEntry();
const textarea = screen.getByTestId("quick-entry-input");
fireEvent.change(textarea, { target: { value: "Task without quick-entry branches" } });
fireEvent.keyDown(textarea, { key: "Enter" });
await waitFor(() => {
expect(props.onCreate).toHaveBeenCalledWith(
expect.objectContaining({
branch: undefined,
baseBranch: undefined,
}),
);
});
const payload = props.onCreate.mock.calls[0]?.[0];
expect(payload).not.toHaveProperty("branch");
expect(payload).not.toHaveProperty("baseBranch");
});
it("toggles Fast pressed state", () => {