From a7c541d2dc81e4635d056fe8c37267366ece0fe0 Mon Sep 17 00:00:00 2001 From: Charlie Croom Date: Thu, 27 Aug 2026 23:41:29 -0400 Subject: [PATCH] Keep feedback surveys visible after remount Amp-Thread-ID: https://ampcode.com/threads/T-019fbabe-6c0e-70ab-8559-31ba601d4897 Co-authored-by: Amp --- .../response-feedback/sessionFeedbackSurveyState.test.ts | 4 ++-- .../chat/response-feedback/sessionFeedbackSurveyState.ts | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/features/chat/response-feedback/sessionFeedbackSurveyState.test.ts b/src/features/chat/response-feedback/sessionFeedbackSurveyState.test.ts index 1dc648280..f65e3075b 100644 --- a/src/features/chat/response-feedback/sessionFeedbackSurveyState.test.ts +++ b/src/features/chat/response-feedback/sessionFeedbackSurveyState.test.ts @@ -73,7 +73,7 @@ describe("sessionFeedbackSurveyState", () => { expect(claimCooldown).toHaveBeenCalledTimes(2); }); - it("blocks remount presentation while the appeared owner can respond", async () => { + it("keeps an appeared survey presentable across virtualized remounts", async () => { const survey = await claim("appeared-once"); expect(survey).not.toBeNull(); if (!survey) throw new Error("expected survey to be selected"); @@ -81,7 +81,7 @@ describe("sessionFeedbackSurveyState", () => { expect( isSessionFeedbackSurveyPresentable("appeared-once", survey.appearanceId), - ).toBe(false); + ).toBe(true); recordSessionFeedbackSurveyResponse( "appeared-once", survey.appearanceId, diff --git a/src/features/chat/response-feedback/sessionFeedbackSurveyState.ts b/src/features/chat/response-feedback/sessionFeedbackSurveyState.ts index 64c3e0958..3c001c78f 100644 --- a/src/features/chat/response-feedback/sessionFeedbackSurveyState.ts +++ b/src/features/chat/response-feedback/sessionFeedbackSurveyState.ts @@ -198,11 +198,7 @@ export function isSessionFeedbackSurveyPresentable( appearanceId: string, ): boolean { const record = readSessionRecord(sessionId); - return ( - record?.active?.appearanceId === appearanceId && - !record.appeared && - !record.response - ); + return record?.active?.appearanceId === appearanceId && !record.response; } export function markSessionFeedbackSurveyAppeared(