Branch feat/feedback-mode-refine (PR #443) on staging · next.trustead.app · captured headless at desktop 1280 + mobile 390
The four refinements
#
Refinement
Status
1
Floating 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)
2
Review-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)
3
Onboarding 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)
4
Review-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.
Desktop 1280 — “Find Send feedback in the menu any time…”, “Turn on review mode…”, and the Review-mode toggle (OFF) at the bottom.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.
Desktop — “Review mode / Adds a floating feedback button on every screen for a thorough review pass.” toggle at the bottom.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)
Refinement
Where it’s wired
1 · FAB off by default
Migration 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 bottom
The 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.