fix(native): route peanut.me/<username> to an in-app public profile - #2726
Merged
Conversation
A scanned or deep-linked peanut.me/<username> has no native stand-in: the [...recipient] catch-all is pruned from the static export, so the mapper's recipient block funnelled bare usernames into the send form (and, on the builds users are running now, dumped them at home with a blank screen). Two users reported it in the last day on peanut.me/jwei. Adds the /profile/view?username= page — the same ValidatedUsernameWrapper + PublicProfile pair the web catch-all's profile branch renders, public so a logged-out deep link still resolves — points profileUrl() at it, and splits the mapper's recipient block: a bare username goes to the profile, payment shapes (amount segment, user@chain, address, ENS) keep going to the send dispatcher. Cherry-picked from 21ad30a on mobile-release, narrowed to the profile fix (dev already routes /invite via #2697).
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Contributor
Code-analysis diffPainscore total: 7159.84 → 7165.21 (+5.37) 🆕 New findings (8)
✅ Resolved (7)
📈 Painscore deltas (top movers)
|
Contributor
🧪 UI test report — ✅ all greenSuites
📊 Coverage (unit)
⏱ 10 slowest test cases
|
jjramirezn
approved these changes
Aug 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Two users reported in the last 24h that
peanut.me/jweiopens the app with no visible content. The backend is healthy (public URL and profile API both return200with profile data) — the failure is native deep-link routing./<username>only exists on the web as the[...recipient]catch-all, whichscripts/native-build.jsprunes from the static export. Ondevtoday the mapper's recipient block funnels a bare username into/send?recipient=, so a scanned or deep-linked profile link lands on the send form instead of the profile; on the builds users are running now it fell through to the raw web path and left them on a blank screen.What
/profile/view?username=page — the sameValidatedUsernameWrapper+PublicProfilepair the web catch-all's profile branch renders. Public route, so a logged-out deep link still resolves (guest view).profileUrl()points at it in Capacitor, so in-app call sites (history, rewards, invites, contributors) open the profile instead of the send form.user@chain, address, ENS) → the send dispatcher, unchanged.Scope
Cherry-picked from
21ad30ae0onmobile-release, narrowed to the profile fix — the/invitehalf of that commit is already ondevvia #2697. The same change reachesdeveventually through #2702 (the 232-filemobile-release→devmerge); this is the small, reviewable slice so the fix doesn't wait on that.Verification
native-routes,TransactionCard,InvitesPagesuites: 122 tests pass.tsc --noEmitclean for the touched files (only pre-existingTS2307asset/submodule errors in a fresh worktree).prettier --writerun on all touched files.