Skip to content

fix(mobile): let users sign out after leaving all communities - #8993

Merged
brow merged 2 commits into
mainfrom
jtennant/aaron/mobile-onboarding-sign-out
Nov 3, 2026
Merged

brow merged 2 commits into
mainfrom
jtennant/aaron/mobile-onboarding-sign-out

Conversation

@johnmatthewtennant

@johnmatthewtennant johnmatthewtennant commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Fixes a dead-end in signed-in mobile onboarding: after leaving every community, Back kept returning to the same Add a community screen without a way to end the account session.

Show “Signed in as [email]” on that screen. Back asks “Sign out of BuilderLab?” with the email; Cancel keeps the session, and Sign out returns to the welcome screen while retaining saved Buzz identities. Nested Back and Add community from an existing session keep their navigation behavior.

Related issue

None found in the existing issue and PR search for onboarding sign-out.

Testing

The new widget journey failed before the change and passes through the real onboarding widgets, account client, storage and flow with external HTTP/browser boundaries mocked. It covers nested Back, Cancel, system Back, durable session removal, retained identity/backup, and starting email sign-in again. The existing hosted onboarding journey also covers accounts without an email.

On iPhone 18 Pro simulator (iOS 27), rendered the production onboarding screen and native confirmation using a disposable account fixture. Live browser account selection has not been verified; this clears the app session, not website cookies.

To reproduce on an auth-enabled mobile build: sign in, leave all communities, check the displayed email, tap Back, and choose Cancel. Tap Back again and choose Sign out. The yellow welcome screen should appear, with email sign-in available.

Screenshots

Before, from the original reported phone screen:

Before: account state not shown

After:

Signed-in landing and native sign-out confirmation, using a disposable account:

Signed-in landing Sign-out confirmation

Signed-off-by: Aaron <f425b86c3b780d43f8d9cf1802429d04dd985bf92eac44fca9468b5ad3887c5e@buzz.block.builderlab.xyz>
johnmatthewtennant pushed a commit that referenced this pull request Nov 3, 2026
Signed-off-by: Aaron <f425b86c3b780d43f8d9cf1802429d04dd985bf92eac44fca9468b5ad3887c5e@buzz.block.builderlab.xyz>
@johnmatthewtennant

Copy link
Copy Markdown
Contributor Author

🤖 iPhone 18 Pro simulator, iOS 27. Production onboarding and native confirmation with a disposable account fixture.

landing

confirmation

johnmatthewtennant pushed a commit that referenced this pull request Nov 3, 2026
Signed-off-by: Aaron <f425b86c3b780d43f8d9cf1802429d04dd985bf92eac44fca9468b5ad3887c5e@buzz.block.builderlab.xyz>
@johnmatthewtennant

Copy link
Copy Markdown
Contributor Author

🤖 Original reported screen before this change.

before

@johnmatthewtennant
johnmatthewtennant marked this pull request as ready for review November 3, 2026 14:50
@johnmatthewtennant
johnmatthewtennant requested a review from a team as a code owner November 3, 2026 14:50
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

🔐 Codex Security Review

Status: review required for the current range.

The current range is 344f007f364c9c4198ff7277d9f1e3e3d4ee93db...92b83cd71b9a911f23249535c13dab74faefa0a8.
A new review must complete for this exact range. When manual authorization
is required, a user with write access must comment exactly
@buzz-security-review 92b83cd71b9a911f23249535c13dab74faefa0a8 to authorize a new review.
Any previous review applies only to its recorded range.

@johnmatthewtennant johnmatthewtennant changed the title fix(mobile): confirm sign-out from signed-in onboarding fix(mobile): let users sign out after leaving all communities Nov 3, 2026
Co-authored-by: Aaron <f425b86c3b780d43f8d9cf1802429d04dd985bf92eac44fca9468b5ad3887c5e@buzz.block.builderlab.xyz>
Signed-off-by: John Tennant <[email protected]>
@github-actions github-actions Bot removed the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 3, 2026
@brow
brow enabled auto-merge (squash) November 3, 2026 18:16
Comment on lines +160 to +165
if (signedInLanding &&
!busy &&
!existingUser.value &&
!enteringCommunityLink.value &&
!creating.value) {
unawaited(confirmSignOut());

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 P2 · Keep scanner Back within the nested scanner

On signed-in onboarding, open “Scan a QR code” on Android, then press system Back. FallbackPairingQrScanner wraps the existing surface instead of pushing another route, so its PopScope and this entry’s PopScope receive the same rejected pop. The scanner starts its closing animation, but these landing predicates still match and also open “Sign out of BuilderLab?”. The frame-level handlingBack guard does not coordinate with the scanner’s independent handler.

User/system effect: Back from the nested scanner unexpectedly offers to end the account session and requires cancelling that prompt to return to Add a community, contrary to the preserved nested-Back behavior.

Test: Extend the signed-in onboarding journey to open the fallback scanner and send system Back; verify only the scanner closes and the account session stays active without a sign-out prompt.

@brow
brow merged commit 33eaa73 into main Nov 3, 2026
93 checks passed
@brow
brow deleted the jtennant/aaron/mobile-onboarding-sign-out branch November 3, 2026 18:25

This branch was previously deployed

1 inactive deployment
codex-review — 92b83cd7 Deployed Nov 3, 2026 by johnmatthewtennant via Run Codex Security Review #12183
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants