From 1189716f4f007e3af930bf64e27a241df21ac61e Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Thu, 12 Nov 2026 18:44:31 -0800 Subject: [PATCH] test(native-chat): keep the reveal-return case on one memory record and before the reveal's scroll report Co-Authored-By: Claude Opus 5.5 (1M context) --- .../NativeChatToolRunMembers.reader.test.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/renderer/src/components/native-chat/tools/runs/NativeChatToolRunMembers.reader.test.tsx b/src/renderer/src/components/native-chat/tools/runs/NativeChatToolRunMembers.reader.test.tsx index 8cc29275993..c0a9b4d754f 100644 --- a/src/renderer/src/components/native-chat/tools/runs/NativeChatToolRunMembers.reader.test.tsx +++ b/src/renderer/src/components/native-chat/tools/runs/NativeChatToolRunMembers.reader.test.tsx @@ -176,6 +176,9 @@ function editRun(count: number, editAt: number): NativeChatBlock[] { return blocks } +// Stable, as a real transcript's callback is: a new one each render would make every card reveal again. +const ignoreRevealTarget = (): void => {} + function Transcript({ blocks, mounted = true, @@ -203,7 +206,7 @@ function Transcript({ activeTurnIsWorking={live} disclosureId="message-1" revealedDiff={revealedDiff} - onRevealDiff={() => {}} + onRevealDiff={ignoreRevealTarget} /> ) : null} @@ -388,7 +391,9 @@ describe('NativeChatToolRun opened-run reader', () => { await settle() expect(topRow(container).key).toBe('edit:apply_patch:400') - // A reveal made in the same render that shows the pane again wins over the place it kept while hidden. + // A reveal made in the same render that shows the pane again wins over the place it kept while hidden, + // and is what the run keeps even before the browser reports the reveal's scroll: hidden again at once and + // shown under the same request (so no fresh reveal), it returns to the revealed edit. await scrollBox(container, 2_000) pane.hidden = true rerender( @@ -396,17 +401,12 @@ describe('NativeChatToolRun opened-run reader', () => { ) pane.hidden = false rerender() - await settle() - expect(topRow(container).key).toBe('edit:apply_patch:400') - - // That revealed place is what the run keeps: hidden, evicted and back, it returns there. pane.hidden = true rerender( ) - rerender() pane.hidden = false - rerender() + rerender() await settle() expect(topRow(container).key).toBe('edit:apply_patch:400') })