diff --git a/src/renderer/src/pages/WorkPage.tsx b/src/renderer/src/pages/WorkPage.tsx index 78ce99e4..d8d6152c 100644 --- a/src/renderer/src/pages/WorkPage.tsx +++ b/src/renderer/src/pages/WorkPage.tsx @@ -6,14 +6,12 @@ import { TASK_PRIORITY, TASK_STATUS, type AgentRecord, - type GoalRecord, type ProviderRecord, type ProjectRecord, type TaskPriority, type TaskRecord, type TaskRunRecord, type TaskStatus, - type WorkspaceRecord, } from "../../../shared/domain"; import { NewTaskDialog } from "./NewTaskDialog"; import { GoalDialog } from "./work/GoalDialog"; @@ -111,8 +109,6 @@ export function WorkPage({ snapshot, actions }: PageProps) { tasks={tasks} agents={agents} projects={projects} - goals={goals} - workspaces={workspaces} providers={providers} taskRuns={taskRuns} onAdvance={advance} @@ -216,8 +212,6 @@ function BoardView({ tasks, agents, projects, - goals, - workspaces, providers, taskRuns, onAdvance, @@ -228,8 +222,6 @@ function BoardView({ tasks: TaskRecord[]; agents: AgentRecord[]; projects: ProjectRecord[]; - goals: GoalRecord[]; - workspaces: WorkspaceRecord[]; providers: ProviderRecord[]; taskRuns: TaskRunRecord[]; onAdvance: (task: TaskRecord) => void; @@ -255,8 +247,6 @@ function BoardView({ task={task} assignee={agents.find((agent) => agent.id === task.assigneeAgentId) ?? null} project={projects.find((project) => project.id === task.projectId) ?? null} - goal={goals.find((goal) => goal.id === task.goalId) ?? null} - workspace={workspaces.find((workspace) => workspace.id === task.workspaceId) ?? null} provider={providerFor(agents.find((agent) => agent.id === task.assigneeAgentId) ?? null, providers)} latestRun={latestTaskRun(task.id, taskRuns)} onAdvance={() => onAdvance(task)} @@ -275,8 +265,6 @@ function TaskCard({ task, assignee, project, - goal, - workspace, provider, latestRun, onAdvance, @@ -286,8 +274,6 @@ function TaskCard({ task: TaskRecord; assignee: AgentRecord | null; project: ProjectRecord | null; - goal: GoalRecord | null; - workspace: WorkspaceRecord | null; provider: ProviderRecord | null; latestRun: TaskRunRecord | null; onAdvance: () => void; @@ -317,23 +303,29 @@ function TaskCard({
{task.title}
-
- {project ? {truncate(project.name, 22)} : {capitalize(task.risk)}} - {goal && {truncate(goal.title, 18)}} - {workspace && {truncate(workspace.name, 18)}} - {latestRun && {prettyRunState(latestRun.state)}} -
event.stopPropagation()}> +
+ {project ? {project.name} : {capitalize(task.risk)}} + {task.status !== "done" && latestRun && ( + + {prettyRunState(latestRun.state)} + + )} +
event.stopPropagation()}> {assignee && } {assignee && } {nextStatus(task.status) && } @@ -346,8 +338,3 @@ function TaskCard({ function capitalize(value: string): string { return value.charAt(0).toUpperCase() + value.slice(1); } - -function truncate(value: string, max: number): string { - if (value.length <= max) return value; - return `${value.slice(0, max - 1)}…`; -} diff --git a/src/renderer/src/shared/ui.tsx b/src/renderer/src/shared/ui.tsx index 71d2f49f..6efd4831 100644 --- a/src/renderer/src/shared/ui.tsx +++ b/src/renderer/src/shared/ui.tsx @@ -108,7 +108,7 @@ export function Pill({ return ( {dot && } - {children} + {children} ); } diff --git a/src/renderer/src/styles/components.css b/src/renderer/src/styles/components.css index 19627e81..787aeb6c 100644 --- a/src/renderer/src/styles/components.css +++ b/src/renderer/src/styles/components.css @@ -100,9 +100,12 @@ font-size: var(--fs-caption); font-weight: 500; white-space: nowrap; + max-width: 100%; + min-width: 0; transition: background var(--motion-base) var(--ease-out), color var(--motion-base) var(--ease-out), border-color var(--motion-base) var(--ease-out); } -.pill .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--text-3); transition: background var(--motion-base) var(--ease-out); } +.pill .pill-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.pill .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--text-3); flex-shrink: 0; transition: background var(--motion-base) var(--ease-out); } .pill.amber { background: var(--amber-soft); color: var(--amber); border-color: transparent; } .pill.amber .dot { background: var(--amber); } .pill.green { background: var(--green-soft); color: var(--green); border-color: transparent; }