From b8d03ba2dd2a511899a5187c0fbe477ef2b40bbe Mon Sep 17 00:00:00 2001 From: Tiger Kaovilai Date: Sun, 11 Oct 2026 21:40:55 -0400 Subject: [PATCH] fix(mobile): new thread draft names its repo and says it is a new thread (#17611) Signed-off-by: Tiger Kaovilai Co-authored-by: Claude Sonnet 5.5 --- .../features/threads/NewTaskDraftScreen.tsx | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx b/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx index 5f281d06c058a9d3ed8d36815755bafa922641e6..f6baa346a604ec79d1c86dbec87bc8d7400b4bd1 100644 --- a/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx +++ b/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx @@ -213,6 +213,20 @@ export function NewTaskDraftScreen(props: { const controlsBottomPadding = Math.max(insets.bottom, 10); const keyboardOpenedOffset = Math.max(0, controlsBottomPadding - 8); const { projectScopes, selectedProject, selectedProjectKey, setProject } = flow; + // The picker and sidebar name a project by its repository scope; a workspace + // inside it (e.g. apps/server) is titled by its folder, which reads as + // ambiguous on its own. + const selectedProjectLabel = useMemo(() => { + if (!selectedProject) return null; + const scope = projectScopes.find((candidate) => + candidate.projectRefs.some( + (ref) => + ref.environmentId === selectedProject.environmentId && + ref.projectId === selectedProject.id, + ), + ); + return scope?.title ?? selectedProject.title; + }, [projectScopes, selectedProject]); const { connectedEnvironments } = useRemoteConnectionStatus(); const selectedEnvironmentServerConfig = useEnvironmentServerConfig( selectedProject?.environmentId ?? null, @@ -507,7 +521,7 @@ export function NewTaskDraftScreen(props: { }); const voiceInput = useVoiceInputController({ ownerKey: flow.draftKey, - label: selectedProject ? `New task in ${selectedProject.title}` : "New task", + label: selectedProjectLabel ? `New task in ${selectedProjectLabel}` : "New task", readDraftMessage: () => (flow.draftKey ? getComposerDraftSnapshot(flow.draftKey).text : null), subscribeToDraftChanges: (onChange) => appAtomRegistry.subscribe(composerDraftsAtom, onChange), selection: composerMenu.selection, @@ -1562,7 +1576,7 @@ export function NewTaskDraftScreen(props: { in - {selectedProject.title} + {selectedProjectLabel ?? selectedProject.title} ? @@ -1878,7 +1892,7 @@ export function NewTaskDraftScreen(props: { options={{ headerBackVisible: false, headerShadowVisible: false, - title: "", + title: "New thread", }} /> -- 2.54.0