diff --git a/desktop/src/app/routes/ChannelRouteScreen.tsx b/desktop/src/app/routes/ChannelRouteScreen.tsx index 360bb01df..5c9421c2c 100644 --- a/desktop/src/app/routes/ChannelRouteScreen.tsx +++ b/desktop/src/app/routes/ChannelRouteScreen.tsx @@ -76,7 +76,10 @@ async function fetchRouteTargetEvents( } const targetThreadRef = getThreadReference(targetEvent.tags); - const threadRootId = targetThreadRootId ?? targetThreadRef.rootId ?? null; + const threadRootId = + targetThreadRootId ?? + targetThreadRef.rootId ?? + (targetAgentConversationReplyId ? targetEvent.id : null); if (threadRootId && !eventsById.has(threadRootId)) { addEvent(await fetchRouteEvent(threadRootId)); } diff --git a/desktop/src/features/channels/ui/ChannelTasksView.tsx b/desktop/src/features/channels/ui/ChannelTasksView.tsx index 9d1e00058..a1dcb99f1 100644 --- a/desktop/src/features/channels/ui/ChannelTasksView.tsx +++ b/desktop/src/features/channels/ui/ChannelTasksView.tsx @@ -6,6 +6,7 @@ import { formatDayHeading, formatTime, } from "@/features/messages/lib/dateFormatters"; +import { isBroadcastReply } from "@/features/messages/lib/threading"; import type { TimelineMessage } from "@/features/messages/types"; import { resolveUserLabel, @@ -209,9 +210,14 @@ export function ChannelTasksView({ messageById.get(marker.threadRootId) ?? messageById.get(marker.parentMessageId ?? "") ?? null; + const isBroadcastTaskSource = message + ? isBroadcastReply(message.tags ?? []) + : false; const threadMessage = resolvedThreadMessage ?? - (marker.threadRootId === marker.agentReplyId ? message : null); + (marker.threadRootId === marker.agentReplyId || isBroadcastTaskSource + ? message + : null); return { marker, message,