diff --git a/ui-tui-opentui-v2/src/view/messageLine.tsx b/ui-tui-opentui-v2/src/view/messageLine.tsx index 0fa345506e8..612f2b92706 100644 --- a/ui-tui-opentui-v2/src/view/messageLine.tsx +++ b/ui-tui-opentui-v2/src/view/messageLine.tsx @@ -56,7 +56,10 @@ export function MessageLine(props: { message: Message }) { + // themed selection: a solid muted/accent bar that preserves the + // text fg (no selectionFg → the original color shows through, so a + // highlight over content reads as a clean bar, not SGR-inverse). + {m().text} } diff --git a/ui-tui-opentui-v2/src/view/toolPart.tsx b/ui-tui-opentui-v2/src/view/toolPart.tsx index 6f44d1b25b3..5dc1a4c4d6f 100644 --- a/ui-tui-opentui-v2/src/view/toolPart.tsx +++ b/ui-tui-opentui-v2/src/view/toolPart.tsx @@ -148,7 +148,7 @@ export function ToolPart(props: { part: ToolPartState }) { fallback={ {line => ( - + {truncate(line, bodyWidth() - 2)} )} @@ -157,7 +157,7 @@ export function ToolPart(props: { part: ToolPartState }) { > {([k, v]) => ( - + {truncate(argLine(k, v), bodyWidth() - 2)} )} @@ -176,9 +176,11 @@ export function ToolPart(props: { part: ToolPartState }) { output + {/* output body lines are the copyable content → themed selection bar + (preserves fg; same token as message text) (item: theme highlight). */} {line => ( - + {line} )}