feat(borrower-ux) sprint 1: trust + safety baseline

Otherkamolos
Shipped
May 18, 2026 at 12:33 AM UTC
Author
Kamo
Commit
9667d53

Four highest-priority items from the borrower-UX audit: 1. Gate every stub integration behind **************** When the flag is off (e.g. real deployments), the stub providers throw StubsDisabledError instead of pretending to succeed. Bank vault and front-door waypoints catch the error and render a clear "this isn't available — your LO will handle it manually" message instead of a fake "✓ pulled 3 accounts" success. Also adds a sticky TestModeBanner shown app-wide when the flag IS on so internal testers can't mistake stub responses for real activity. 2. Rate clarity: "Lock these numbers" → "Save this estimate". "Locked in ✓" → "Saved ✓". TRex copy now explicitly says "this is an estimate, not a rate lock." Disclaimer block under the rate spells out that taxes/insurance/HOA are excluded and the rate firms up after credit + income verification. 3. DocumentsWidget surfaces the actual blockers. Was "Documents: 40%" with a "Manage documents" button. Now leads with rejected docs (amber alert with filenames), then the top 3 missing categories with their hints and counts ("Recent paystubs (2 needed)"). CTA flips to "Upload documents →" when there's work to do, "Manage documents →" otherwise. 4. Start-over confirmation: replaces the double-tap-with-4-second-window pattern in CenterStage with a real modal. Shows answer count, keyboard ESC dismiss, focus management, "Keep my progress" as the default action. Prevents accidental wipes on mobile mis-taps. Verification: typecheck clean, build 28/28 routes, 140 tests pass.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing