From 5d6217b70b02dc26b768501426bcb9b3560423bb Mon Sep 17 00:00:00 2001 From: dotta Date: Mon, 6 Apr 2026 08:27:53 -0500 Subject: [PATCH] Exclude self-comments from queued comment UI Co-Authored-By: Paperclip --- ui/src/lib/optimistic-issue-comments.test.ts | 14 ++++++++++++++ ui/src/lib/optimistic-issue-comments.ts | 9 ++++++++- ui/src/pages/IssueDetail.tsx | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ui/src/lib/optimistic-issue-comments.test.ts b/ui/src/lib/optimistic-issue-comments.test.ts index bb4ae9ae..1620d329 100644 --- a/ui/src/lib/optimistic-issue-comments.test.ts +++ b/ui/src/lib/optimistic-issue-comments.test.ts @@ -212,4 +212,18 @@ describe("optimistic issue comments", () => { }), ).toBe(false); }); + + it("does not mark comments from the active run agent as queued", () => { + expect( + isQueuedIssueComment({ + comment: { + createdAt: new Date("2026-03-28T16:20:05.000Z"), + authorAgentId: "agent-1", + }, + activeRunStartedAt: new Date("2026-03-28T16:20:00.000Z"), + activeRunAgentId: "agent-1", + runId: null, + }), + ).toBe(false); + }); }); diff --git a/ui/src/lib/optimistic-issue-comments.ts b/ui/src/lib/optimistic-issue-comments.ts index 44d85332..1ac6812c 100644 --- a/ui/src/lib/optimistic-issue-comments.ts +++ b/ui/src/lib/optimistic-issue-comments.ts @@ -59,13 +59,20 @@ export function createOptimisticIssueComment(params: { } export function isQueuedIssueComment(params: { - comment: Pick & Partial>; + comment: Pick & + Partial> & { + authorAgentId?: string | null; + }; activeRunStartedAt?: Date | string | null; + activeRunAgentId?: string | null; runId?: string | null; interruptedRunId?: string | null; }) { if (params.runId) return false; if (params.interruptedRunId) return false; + if (params.comment.authorAgentId && params.activeRunAgentId && params.comment.authorAgentId === params.activeRunAgentId) { + return false; + } if (params.comment.clientStatus === "queued") return true; if (!params.activeRunStartedAt) return false; return toTimestamp(params.comment.createdAt) >= toTimestamp(params.activeRunStartedAt); diff --git a/ui/src/pages/IssueDetail.tsx b/ui/src/pages/IssueDetail.tsx index 966bba18..84aadbbb 100644 --- a/ui/src/pages/IssueDetail.tsx +++ b/ui/src/pages/IssueDetail.tsx @@ -553,6 +553,7 @@ export function IssueDetail() { isQueuedIssueComment({ comment: nextComment, activeRunStartedAt, + activeRunAgentId: runningIssueRun?.agentId ?? null, runId: meta?.runId ?? nextComment.runId ?? null, interruptedRunId: meta?.interruptedRunId ?? nextComment.interruptedRunId ?? null, })