From c1cd1f133cec15bad1ef3ec5ecf9f46b58e45d18 Mon Sep 17 00:00:00 2001 From: klopez4212 Date: Sat, 27 Jun 2026 10:02:31 +0100 Subject: [PATCH] Fix channel task surface review issues --- desktop/scripts/check-file-sizes.mjs | 2 +- .../features/agents/agentConversationLink.ts | 13 +++++ .../src/features/channels/ui/ChannelPane.tsx | 52 +++++++------------ desktop/src/shared/ui/markdown.test.mjs | 15 ++++-- desktop/src/shared/ui/markdown/utils.ts | 14 +++-- 5 files changed, 54 insertions(+), 42 deletions(-) diff --git a/desktop/scripts/check-file-sizes.mjs b/desktop/scripts/check-file-sizes.mjs index 5c8f93d89..7d8d2ba23 100644 --- a/desktop/scripts/check-file-sizes.mjs +++ b/desktop/scripts/check-file-sizes.mjs @@ -147,7 +147,7 @@ const overrides = new Map([ // continued-agent-conversations: channel task-tab state, deep-link task // routing, and side-panel suppression sit at the channel orchestration seam. // latest main rebase threads additional header routing through this seam. - ["src/features/channels/ui/ChannelScreen.tsx", 1027], + ["src/features/channels/ui/ChannelScreen.tsx", 1040], // continued-agent-conversations: composer notice banner for read-only agent // conversations. ["src/features/messages/ui/MessageComposer.tsx", 1010], diff --git a/desktop/src/features/agents/agentConversationLink.ts b/desktop/src/features/agents/agentConversationLink.ts index c9c148c24..08ba4899d 100644 --- a/desktop/src/features/agents/agentConversationLink.ts +++ b/desktop/src/features/agents/agentConversationLink.ts @@ -22,3 +22,16 @@ export function buildAgentConversationLink( return `${AGENT_CONVERSATION_LINK_SCHEME}//${AGENT_CONVERSATION_LINK_HOST}?${params.toString()}`; } + +export function isAgentConversationLink( + href: string | undefined | null, +): boolean { + if (!href) return false; + return ( + href.startsWith( + `${AGENT_CONVERSATION_LINK_SCHEME}//${AGENT_CONVERSATION_LINK_HOST}?`, + ) || + href === + `${AGENT_CONVERSATION_LINK_SCHEME}//${AGENT_CONVERSATION_LINK_HOST}` + ); +} diff --git a/desktop/src/features/channels/ui/ChannelPane.tsx b/desktop/src/features/channels/ui/ChannelPane.tsx index 5aea61f38..16ba692ce 100644 --- a/desktop/src/features/channels/ui/ChannelPane.tsx +++ b/desktop/src/features/channels/ui/ChannelPane.tsx @@ -80,29 +80,10 @@ import { cn } from "@/shared/lib/cn"; type ChannelTaskItem = { marker: AgentConversationMarker; - message: TimelineMessage; - threadMessage: TimelineMessage; + message: TimelineMessage | null; + threadMessage: TimelineMessage | null; }; -function buildTaskFallbackMessage( - marker: AgentConversationMarker, -): TimelineMessage { - const createdAt = marker.startedAt || marker.createdAt; - - return { - author: marker.agentName, - avatarUrl: null, - body: "", - createdAt, - depth: 0, - id: marker.agentReplyId, - parentId: marker.parentMessageId, - pubkey: marker.agentPubkey, - rootId: marker.threadRootId, - time: formatTime(createdAt), - }; -} - function formatTaskStartedAt(unixSeconds: number): string { return `${formatDayHeading(unixSeconds)} at ${formatTime(unixSeconds)}`; } @@ -118,7 +99,7 @@ function ChannelTaskRow({ }: { currentPubkey?: string; marker: AgentConversationMarker; - message: TimelineMessage; + message: TimelineMessage | null; onOpenAgentConversation?: ( message: TimelineMessage, options?: { publishMarker?: boolean }, @@ -129,7 +110,7 @@ function ChannelTaskRow({ threadMessage: TimelineMessage, ) => void; profiles?: UserProfileLookup; - threadMessage: TimelineMessage; + threadMessage: TimelineMessage | null; }) { const startedAt = marker.startedAt || marker.createdAt; const starterName = resolveUserLabel({ @@ -166,8 +147,12 @@ function ChannelTaskRow({