From 50a625890f30bf5da79f1f1f73756a38707562c8 Mon Sep 17 00:00:00 2001 From: Chinesezjc Date: Fri, 31 Jul 2026 15:46:27 +0800 Subject: [PATCH] fix(web-read-card): mark read-row summary chrome jscpd:ignore The keyed toolviews (read, file-mutation, web) each draw the same ToolRow summary-line chrome; the read row's copy trips the duplication gate against the file-mutation row. Extracting the shared row is a separate change tracked for all rows at once, so this scopes the exemption to the read row's block. --- .../client/ui-conversation/src/client/toolviews/read-row.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/client/ui-conversation/src/client/toolviews/read-row.tsx b/packages/client/ui-conversation/src/client/toolviews/read-row.tsx index 28151ed602..4527f85537 100644 --- a/packages/client/ui-conversation/src/client/toolviews/read-row.tsx +++ b/packages/client/ui-conversation/src/client/toolviews/read-row.tsx @@ -57,6 +57,10 @@ export function ReadRow({ toolName, block, sessionId, useSessions, openFile }: T const filePath = model.filePath return (
+ {/* jscpd:ignore-start — the summary-line chrome (leading, status, title, + sep, path-link/summary) is the shared ToolRow row shape every keyed + toolview draws; extracting it into one component is a separate change + tracked for all rows at once, not this read-card PR. */}
{leadingFor(model.state)} {status !== null && {status}} @@ -74,6 +78,7 @@ export function ReadRow({ toolName, block, sessionId, useSessions, openFile }: T {model.summary} )}
+ {/* jscpd:ignore-end */} {read !== null && ( )}