From af2d4be5f114c9b561305a651d0c6f30bcac29f1 Mon Sep 17 00:00:00 2001 From: Hugo Dutka Date: Tue, 10 Jun 2025 18:59:54 +0000 Subject: [PATCH] human-readable task workspace name, ensure task title doesn't overflow --- site/src/pages/TaskPage/TaskPage.tsx | 3 ++- site/src/pages/TaskPage/TaskSidebar.tsx | 4 +++- site/src/pages/TasksPage/TasksPage.tsx | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/site/src/pages/TaskPage/TaskPage.tsx b/site/src/pages/TaskPage/TaskPage.tsx index ea32ea5d43f40..1b90b7b775e07 100644 --- a/site/src/pages/TaskPage/TaskPage.tsx +++ b/site/src/pages/TaskPage/TaskPage.tsx @@ -12,6 +12,7 @@ import { Helmet } from "react-helmet-async"; import { useQuery } from "react-query"; import { useParams } from "react-router-dom"; import { Link as RouterLink } from "react-router-dom"; +import { ellipsizeText } from "utils/ellipsizeText"; import { pageTitle } from "utils/page"; import { TaskApps } from "./TaskApps"; import { TaskSidebar } from "./TaskSidebar"; @@ -163,7 +164,7 @@ const TaskPage = () => { return ( <> - {pageTitle(task.prompt)} + {pageTitle(ellipsizeText(task.prompt, 64)!)}
diff --git a/site/src/pages/TaskPage/TaskSidebar.tsx b/site/src/pages/TaskPage/TaskSidebar.tsx index e1d31b8e6b33c..9ed19c41fa4f1 100644 --- a/site/src/pages/TaskPage/TaskSidebar.tsx +++ b/site/src/pages/TaskPage/TaskSidebar.tsx @@ -97,7 +97,9 @@ export const TaskSidebar: FC = ({ task }) => {
-

{task.prompt}

+

+ {task.prompt} +

{task.workspace.latest_app_status?.uri && (
diff --git a/site/src/pages/TasksPage/TasksPage.tsx b/site/src/pages/TasksPage/TasksPage.tsx index c12436c109996..adb978cb05cac 100644 --- a/site/src/pages/TasksPage/TasksPage.tsx +++ b/site/src/pages/TasksPage/TasksPage.tsx @@ -32,6 +32,7 @@ import { useAuthenticated } from "hooks"; import { ExternalLinkIcon, RotateCcwIcon, SendIcon } from "lucide-react"; import { AI_PROMPT_PARAMETER_NAME, type Task } from "modules/tasks/tasks"; import { WorkspaceAppStatus } from "modules/workspaces/WorkspaceAppStatus/WorkspaceAppStatus"; +import { generateWorkspaceName } from "modules/workspaces/generateWorkspaceName"; import { type FC, type ReactNode, useState } from "react"; import { Helmet } from "react-helmet-async"; import { useMutation, useQuery, useQueryClient } from "react-query"; @@ -489,7 +490,7 @@ export const data = { templateId: string, ): Promise { const workspace = await API.createWorkspace(userId, { - name: `task-${new Date().getTime()}`, + name: `task-${generateWorkspaceName()}`, template_id: templateId, rich_parameter_values: [ { name: AI_PROMPT_PARAMETER_NAME, value: prompt },