diff --git a/apps/desktop/src/renderer/styles/base.css b/apps/desktop/src/renderer/styles/base.css index affc546f65..ab8131e4ca 100644 --- a/apps/desktop/src/renderer/styles/base.css +++ b/apps/desktop/src/renderer/styles/base.css @@ -2,6 +2,14 @@ body { margin: 0; } + /* Chat disclosures already pair their full-row trigger with a semantic + activity icon and aria-expanded. Astryx's trailing chevron lands at the + far edge of the reading column, where repeated rows look like a stray + vertical control rail. Keep the disclosure interaction and semantics, + but suppress that redundant decorative indicator on chat rows only. */ + .maka-chat-disclosure > button > span:last-child { + display: none; + } .detailPane { min-width: 0; min-height: 0; diff --git a/packages/ui/src/__tests__/processing-block.test.tsx b/packages/ui/src/__tests__/processing-block.test.tsx index 0d5a8b414b..a0ea4a7645 100644 --- a/packages/ui/src/__tests__/processing-block.test.tsx +++ b/packages/ui/src/__tests__/processing-block.test.tsx @@ -43,6 +43,7 @@ describe('ProcessingBlock disclosure wiring (#1307)', () => { })); assert.match(markup, /class="[^"]*astryx-collapsible[^"]*"/); + assert.match(markup, /class="[^"]*maka-chat-disclosure[^"]*"/); assert.match(markup, /]*aria-expanded="false"[^>]*aria-controls="[^"]+"/); assert.match(markup, /class="[^"]*astryx-collapsible-content[^"]*"/); assert.doesNotMatch(markup, /data-trow="row"/); @@ -116,6 +117,7 @@ describe('deep-thinking disclosure', () => { })); assert.match(markup, /class="[^"]*astryx-collapsible[^"]*"/); + assert.match(markup, /class="[^"]*maka-chat-disclosure[^"]*"/); assert.match(markup, /]*aria-expanded="false"[^>]*aria-controls="[^"]+"/); const trigger = markup.match(/(]*aria-expanded="false"[\s\S]*?<\/button>)/)?.[1]; assert.ok(trigger, 'deep-thinking disclosure must expose a collapsed trigger'); diff --git a/packages/ui/src/chat-turn.tsx b/packages/ui/src/chat-turn.tsx index 54c3d49984..864d4deb72 100644 --- a/packages/ui/src/chat-turn.tsx +++ b/packages/ui/src/chat-turn.tsx @@ -1001,7 +1001,7 @@ function ProcessingBlock(props: { entries: FoldedTimelineChild[] }) { const summary = summarizeProcessing(entries, { live: running, locale }); return (