diff --git a/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte b/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte
index 7b461874..d4db74f1 100644
--- a/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte
+++ b/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte
@@ -28,6 +28,10 @@
.slice(0, 3),
);
+ function taskNoun(count: number): "task" | "tasks" {
+ return count === 1 ? "task" : "tasks";
+ }
+
function mark(status: ConsoleTask["status"]): string {
switch (status) {
case "pending":
@@ -54,7 +58,7 @@
{/each}
- {counts.total} task(s) — pending: {counts.pending}, inprogress: {counts.inprogress}, completed: {counts.completed}, deleted: {counts.deleted}
+ {counts.total} {taskNoun(counts.total)} — pending: {counts.pending}, inprogress: {counts.inprogress}, completed: {counts.completed}
{#if workerViews.length > 1}
diff --git a/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts b/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts
index 5af0c3d2..89f172fe 100644
--- a/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts
+++ b/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts
@@ -857,9 +857,10 @@ Deno.test("Web Console renders the client-projected Worker task store", async ()
tasksComponent.includes("[~]") &&
tasksComponent.includes("[x]") &&
tasksComponent.includes("[-]") &&
- tasksComponent.includes("task(s) — pending:") &&
+ tasksComponent.includes('return count === 1 ? "task" : "tasks"') &&
+ !tasksComponent.includes(", deleted: {counts.deleted}") &&
tasksComponent.includes("task.description"),
- "Tasks UI should mirror the TUI status marks, summary, and descriptions",
+ "Tasks UI should mirror the TUI status marks, pluralize its summary, omit the deleted count, and show descriptions",
);
assert(
tasksModel.includes('name === "TaskCreate"') &&