From ff5fcb3a65659b22edfb92a9e81b8c50a53b6218 Mon Sep 17 00:00:00 2001 From: David Kaya Date: Tue, 24 Mar 2026 19:14:35 +0100 Subject: [PATCH] fix: exclude scratchpad from the new-session modal The modal is now only used for project sessions, so filter out the scratchpad project from the dropdown and remove scratchpad-specific hints and pattern restrictions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/renderer/components/NewSessionModal.tsx | 27 ++++++--------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/renderer/components/NewSessionModal.tsx b/src/renderer/components/NewSessionModal.tsx index 8eb9556..e82f5a9 100644 --- a/src/renderer/components/NewSessionModal.tsx +++ b/src/renderer/components/NewSessionModal.tsx @@ -21,21 +21,21 @@ export function NewSessionModal({ onCreate, onTogglePatternFavorite, }: NewSessionModalProps) { - const [projectId, setProjectId] = useState(defaultProjectId ?? projects[0]?.id ?? ''); + const userProjects = useMemo( + () => projects.filter((p) => !isScratchpadProject(p)), + [projects], + ); + const [projectId, setProjectId] = useState(defaultProjectId ?? userProjects[0]?.id ?? ''); const availablePatterns = useMemo( () => patterns - .filter( - (pattern) => - pattern.availability !== 'unavailable' - && (!isScratchpadProject(projectId) || pattern.mode === 'single'), - ) + .filter((pattern) => pattern.availability !== 'unavailable') .sort((a, b) => { if (a.isFavorite && !b.isFavorite) return -1; if (!a.isFavorite && b.isFavorite) return 1; return 0; }), - [patterns, projectId], + [patterns], ); const [patternId, setPatternId] = useState(availablePatterns[0]?.id ?? ''); @@ -71,18 +71,12 @@ export function NewSessionModal({ onChange={(e) => setProjectId(e.target.value)} value={projectId} > - {projects.map((p) => ( + {userProjects.map((p) => ( ))} - {isScratchpadProject(projectId) && ( -

- Scratchpad is a projectless 1-on-1 chat for ad-hoc questions. It should behave like - pure Q&A rather than repo automation. -

- )}