From 03f93dc2a56b2a4d12f8350f5226dcf5b00d3e49 Mon Sep 17 00:00:00 2001 From: sjw1231 Date: Thu, 17 Sep 2026 16:52:41 +0800 Subject: [PATCH] revert(web): remove raw disclosure reset on record selection Refs #4356 --- .../src/client/TrajectoryTable.tsx | 1 - .../ui-trajectory/tests/table.client.spec.tsx | 55 ------------------- 2 files changed, 56 deletions(-) diff --git a/packages/client/ui-trajectory/src/client/TrajectoryTable.tsx b/packages/client/ui-trajectory/src/client/TrajectoryTable.tsx index e1918d62cd..5308e04d76 100644 --- a/packages/client/ui-trajectory/src/client/TrajectoryTable.tsx +++ b/packages/client/ui-trajectory/src/client/TrajectoryTable.tsx @@ -1533,7 +1533,6 @@ function MarkdownRecordContent({ if (!rendered && record.cell.sourceBlocks && record.cell.sourceBlocks.length > 0) { return ( { }, ) - it('resets raw attachment disclosures on record selection but keeps them through history updates', () => { - const content = [ - { - type: 'image' as const, - attachment: { - attachmentId: AttachmentId(`sha256:${'a'.repeat(64)}`), - mediaType: 'image/png' as const, - width: 40, - height: 80, - bytes: 68, - name: 'shared.png', - }, - }, - { - type: 'file' as const, - attachment: { - attachmentId: AttachmentId(`sha256:${'b'.repeat(64)}`), - name: 'shared.txt', - bytes: 1, - }, - }, - ] - const nodes = ['First message', 'Second message'].map((text, index) => ({ - kind: 'user' as const, - seq: index + 2, - time: (index + 2) * 1000, - source: { kind: 'user' as const }, - content: [{ type: 'text' as const, text }, ...content], - })) - const turns = deriveTrajectoryLayout({ nodes, partial: null, runningCalls: [] }, t) - const view = render() - fireEvent.click(screen.getByRole('row', { name: /First message/ })) - fireEvent.click(screen.getByRole('tab', { name: 'Raw' })) - const disclosures = () => [...screen.getByRole('tabpanel').querySelectorAll('details')] - expect(disclosures()).toHaveLength(2) - expect(disclosures().every(disclosure => !disclosure.open)).toBe(true) - for (const disclosure of disclosures()) fireEvent.click(disclosure.querySelector('summary')!) - expect(disclosures().every(disclosure => disclosure.open)).toBe(true) - - const older = { ...nodes[0]!, seq: 1, time: 1000, content: [{ type: 'text' as const, text: 'Older message' }] } - const expandedTurns = deriveTrajectoryLayout({ nodes: [older, ...nodes], partial: null, runningCalls: [] }, t) - view.rerender() - expect(within(screen.getByRole('tabpanel')).getByText('First message', { exact: true })).toBeTruthy() - expect(disclosures().every(disclosure => disclosure.open)).toBe(true) - - fireEvent.click(screen.getByRole('row', { name: /Second message/ })) - expect(screen.getByRole('tab', { name: 'Raw' }).getAttribute('aria-selected')).toBe('true') - expect(within(screen.getByRole('tabpanel')).getByText('Second message', { exact: true })).toBeTruthy() - expect(disclosures()).toHaveLength(2) - expect(disclosures().every(disclosure => !disclosure.open)).toBe(true) - for (const disclosure of disclosures()) fireEvent.click(disclosure.querySelector('summary')!) - fireEvent.click(screen.getByRole('row', { name: /First message/ })) - expect(disclosures().every(disclosure => !disclosure.open)).toBe(true) - }) - it('renders a tool-result image through the shared gallery in the Result tab', () => { const attachment = { attachmentId: `sha256:${'b'.repeat(64)}`,