feat: Add in-app feedback collection widget to desktop GUI#7763
feat: Add in-app feedback collection widget to desktop GUI#7763
Conversation
Implement a low-interruption periodic feedback prompt that appears inline in the chat. After every 5th message exchange, users see a "How's Goose doing?" banner with 4 emoji-face rating buttons (1-4 scale). Ratings are sent via the existing PostHog telemetry pipeline. - New hook `useFeedbackPrompt` manages trigger heuristics: every 5th exchange, 20-minute in-session cooldown, 24-hour cross-session cooldown - New component `FeedbackBanner` renders inline within chat scroll area with emoji ratings and dismiss button - Analytics events `feedback_submitted` and `feedback_dismissed` track user sentiment - Settings persistence for cross-session cooldown via `lastFeedbackTimestamp` - Respects telemetry opt-out: banner never shows if telemetry is disabled Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
| const handleRate = (rating: 1 | 2 | 3 | 4) => { | ||
| setSubmittedRating(rating); | ||
| if (rating > 1) { | ||
| setTimeout(() => onRate(rating), 1000); |
There was a problem hiding this comment.
If the rating is not the worst one, it shows an acknowledgement ("Thanks for the feedback!") briefly and then removes the whole feedback banner so that it doesn't clutter the chat. Without the timeout it would disappear straight away.
If the rating is the worst one it shows "Sorry to hear that. Let us know how we can improve:" with a link to discord, and doesn't remove it automatically -- it removes it when you either click the discord link or click to dismiss the message
definitely open to any UX feedback here
There was a problem hiding this comment.
we have a toast mechanism for that already?
There was a problem hiding this comment.
do we have one that's inline in the chat? it might be a bit jarring to do the top-right toast which is quite distant from where the interaction is. i'll have a play with it
Summary
Implement a low-interruption periodic feedback prompt that appears inline in the chat. After every 5th message exchange, users see a "How's Goose doing?" banner with 4 emoji-face rating buttons (1-4 scale). Ratings are sent via the existing PostHog telemetry pipeline.
Type of Change
AI Assistance
Testing
Manual testing: Verified banner appears after 5th exchange, ratings are tracked, cooldowns prevent repeat prompts within 2 hours (in-session) and 24 hours (cross-session), and banner respects telemetry opt-out setting.
Implementation Details
useFeedbackPromptmanages trigger heuristics based onchatStatetransitionsFeedbackBannerrenders inline within chat scroll area with emoji ratings and dismiss buttonfeedback_submittedandfeedback_dismissedtrack user sentimentlastFeedbackTimestamplastFeedbackTimestampto Electron settings allowlist inmain.ts