Skip to content

Add in-app feedback system (PoC) - #4212

Draft
gcsecsey wants to merge 3 commits into
trunkfrom
gcsecsey/studio-feedback
Draft

Add in-app feedback system (PoC)#4212
gcsecsey wants to merge 3 commits into
trunkfrom
gcsecsey/studio-feedback

Conversation

@gcsecsey

@gcsecsey gcsecsey commented Jul 15, 2026

Copy link
Copy Markdown
Member

Important

This is a PoC, meant more as a discussion starter than a merge-ready change. We can and should iterate on this idea before landing this.

Related issues

  • Related to 228442-ghe-Automattic/wpcom
  • Related to pfHvTO-1Ad-p2

How AI was used in this PR

I used Claude to iterate on the idea and to implement the client flow, the toolbar entry point, and the tests. I've reviewed the code myself and verified the full end-to-end round trip against my sandbox.

Proposed Changes

Studio users hit errors and crashes while often logged out, so we have no reliable way to identify them or follow up. The only feedback paths today are external GitHub issue links in the Help menu and a "contact support" link on the crash screen — high friction, no logs, no identity, no way to close the loop with the reporter.

This PR adds a low-friction, in-app feedback flow, which posts a structured, identity-tagged payload (with optional app logs + diagnostics) to a WordPress.com backend.

  • Entry points:
    • a button on the crash screen
    • a "Share Feedback…" item in the native Help menu
    • a "Send feedback" item in the toolbar Help dropdown
  • Identity is resolved in the main process. The crash screen mounts the error boundary above the auth/Redux/i18n providers, so useAuth() and Redux hooks throw. The handler reads the auth token itself, and the renderer only sends user-authored content — so the same form works both in-app and on the crash screen.
  • Optional logs & diagnostics (default on): a sanitized, tail-capped log tail can be sent to help with debugging

Reviewers should look most closely at the crash-screen provider handling, the default-ON logs toggle (privacy), and the identity/payload shape.

Testing Instructions

Full end-to-end needs the backend endpoint, see the testing steps of 228442-ghe-Automattic/wpcom. You can still verify the UI and the outgoing request shape:

  • Start Studio with npm start
  • Open the feedback form three ways:
    • the toolbar Help button → Send feedback
    • the native Help menu → Share Feedback…
    • simulate a crash using the "Test Render Failure" menu item, then Share feedback button on the crash screen
  • Confirm the form renders in both light and dark mode, check the logs-checkbox default and the "View logs" link
  • With the backend available (or a stubbed endpoint), submit and confirm a 200 and that the payload carries the expected identity + metadata
Screen Screenshot
Toolbar entry point CleanShot 2026-07-15 at 16 18 24@2x
Help menu entry point CleanShot 2026-07-15 at 16 18 38@2x
Crash screen entry point CleanShot 2026-07-15 at 16 19 28@2x
Logged-in modal CleanShot 2026-07-15 at 16 18 06@2x
Logged-out modal CleanShot 2026-07-15 at 16 23 01@2x
claude and others added 3 commits July 11, 2026 16:51
…gnostics

Lets any user send feedback to the team from the crash screen, Help menu, or a
new Settings tab, attaching app logs and version info by default. Feedback is
tagged with the WordPress.com identity when signed in, or a stable anonymous
installation id plus an optional email when not, so the team can follow up. The
handler resolves identity in the main process so the flow also works on the
crash screen, where the app's providers are unmounted.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DSA8NGg9t8wwwo72QjjcDa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

2 participants