diff --git a/src/app/components/ThreadList.tsx b/src/app/components/ThreadList.tsx index b16b468..1ed44b1 100644 --- a/src/app/components/ThreadList.tsx +++ b/src/app/components/ThreadList.tsx @@ -35,8 +35,6 @@ import { formatTime, formatFullTime } from "@/lib/time"; import type { ThreadItem } from "@/app/hooks/useThreads"; import { useThreads, - useBusyThreadIds, - useLocalRunningThreadIds, deleteThread, renameThread, pinThread, @@ -72,13 +70,6 @@ const STATUS_COLORS: Record = { error: "bg-red-600", }; -const STATUS_LABELS: Record = { - idle: "Idle", - busy: "Busy", - interrupted: "Interrupted", - error: "Error", -}; - function getThreadColor(status: ThreadItem["status"]): string { return STATUS_COLORS[status] ?? "bg-gray-400"; } @@ -177,10 +168,6 @@ export function ThreadList({ status: statusFilter === "all" ? undefined : statusFilter, limit: 20, }); - // Running indicators: heartbeat for out-of-band runs, local store for - // runs this client started itself (zero-latency). - const heartbeatBusyIds = useBusyThreadIds(); - const localRunningIds = useLocalRunningThreadIds(); // Dedupe by id, keeping the first occurrence — page 0 wins, so the freshest // `updated_at` survives. Without this, a thread whose `updated_at` advances @@ -442,8 +429,6 @@ export function ThreadList({ const renderThreadCard = (thread: ThreadItem) => { const pinBusy = pinBusyIds.has(thread.id); const exportBusy = exportBusyIds.has(thread.id); - const isRunning = - heartbeatBusyIds.has(thread.id) || localRunningIds.has(thread.id); return (
{/* Title + Timestamp Row */} -
+

{thread.pinned && (

- {/* Description + Status Row */} -
-

- {thread.description} -

-
- {isRunning ? ( - - - ) : ( - - )} -
-
{/* Per-thread actions — siblings of the select button (not nested);