Feedback mode — review-mode refinements

Branch feat/feedback-mode-refine (PR #443) on staging · next.trustead.app · captured headless at desktop 1280 + mobile 390

The four refinements

#RefinementStatus
1Floating button OFF by default. Review mode defaults off for everyone — the FAB only appears once turned on. Per-user persistence kept.Verified (code + slide render)
2Review-mode toggle to the RIGHT of “Send Feedback” in BOTH the desktop account dropdown and the mobile menu. Flips the FAB on/off, persisted.Verified (code)
3Onboarding FM1 slide cleaned up: points to the menu “Send feedback” link + explains review mode, with the toggle on the slide starting OFF.Verified live (shots below)
4Review-mode toggle at the BOTTOM of the feedback modal (replaces the old turn-off control). One shared toggle component across all four places.Verified (real component + replica)

Onboarding FM1 slide real component · live staging

The real OnboardingV6Takeover slide rendered from staging. New copy points to the menu Send feedback link, then the Review mode toggle row (the shared control) sits below — starting OFF. No horizontal overflow at 390.

FM1 slide desktop
Desktop 1280 — “Find Send feedback in the menu any time…”, “Turn on review mode…”, and the Review-mode toggle (OFF) at the bottom.
FM1 slide mobile 390
Mobile 390 — same copy; toggle row renders below the bullets.

Feedback modal — review-mode toggle at the bottom design replica · live staging

The feedback panel’s static design replica (dev proof route /dev/pill-proof). The real in-app modal uses the same shared ReviewModeToggleRow shown on the FM1 slide above. The Review mode toggle is pinned at the bottom, below the border, OFF.

Feedback modal replica desktop
Desktop — “Review mode / Adds a floating feedback button on every screen for a thorough review pass.” toggle at the bottom.
Feedback modal replica mobile
Mobile 390 — same bottom-of-modal toggle.

Account menu (desktop + mobile) & FAB-hidden-by-default signed-in · pending CI capture

These surfaces only render for a signed-in user. Staging runs on a live Clerk instance, so a signed-in capture needs the CI Clerk secret (it can’t be done from a local shell). The capture is fully wired: the workflow feedback-mode-capture.yml signs in via a one-time ticket and shoots the FAB-hidden-by-default home, the account/mobile menu with the review-mode switch to the right of “Send feedback”, toggle-on → FAB appears + persists across reload, and the real modal toggle. It becomes dispatchable the moment PR #443 lands on main.

Code-level confirmation (until the signed-in shots land)

RefinementWhere it’s wired
1 · FAB off by defaultMigration 056 flips users.feedback_fab_hidden default → hidden + resets rows; API GET returns enabled only on an explicit stored false; the hook’s default state + absent-mirror both read hidden. Source-contract tests assert the launcher gate.
2 · Toggle right of “Send feedback”Both account-menu.tsx and mobile-nav.tsx render the “Send feedback” button (flex-1, opens panel) with <ReviewModeSwitch> as a sibling on the right.
4 · Toggle at modal bottomThe modal renders <ReviewModeToggleRow source="feedback_modal"> at the bottom — the same component proven on the FM1 slide above.

1757 tests pass · tsc + lint + style gate + build all green on the integrated branch.

One shared toggle (review-mode-toggle.tsx) drives all four placements — menu, mobile menu, modal, and slide — with the same per-user, cross-device state.