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; }