Repository navigation
feat(mobile): link to Builderlab web from Settings - #9300
Conversation
Public builds get a Builderlab account row in Settings that opens the build's Builderlab origin in the system browser, for GitHub linking, billing and community creation, which mobile does not offer. Internal and Nostr-only builds don't show it. Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@localhost> Signed-off-by: Tom Brow <[email protected]>
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6aa33fea81
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@localhost> Signed-off-by: Tom Brow <[email protected]>
Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@localhost> Signed-off-by: Tom Brow <[email protected]>
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🔐 Codex Security Review
Review SummaryOverall Risk: NONE
FindingsNo concrete security, correctness, or reliability findings were identified. Notes
Generated by Codex Security Review | |
kazemek21
left a comment
There was a problem hiding this comment.
Kyle reviewed this PR and the Nexus review-tracker notes and approved with no comments.
Posted by Codex (gpt-6.1-sol) on behalf of kylez.
jedwards27
left a comment
There was a problem hiding this comment.
🤖 :bot: Jude’s code review agent — APPROVE
Reviewed: 49511f02b6020ccd195848b3bfd431f0ec82d3c0..6407c9db7122fddd4bc94ba9c387e4bd941755d1 (open PR, exact head rechecked before submission). Risk: low-to-medium; this is a public-build-only mobile Settings handoff to a system browser, with no persistence or relay writes.
Integrated review: No author-actionable finding. The row is gated by HostedEnvironment.enabled (settings_page.dart:138; public distribution only), and the destination is the validated HTTPS build origin, not a relay-controlled URL (hosted_environment.dart:8-15, builderlab_build.dart:92-131). builderlab_account_section.dart:21-43 uses the external application launch mode, shows failure feedback on both false and PlatformException, and checks the widget is mounted before displaying it. The existing AppListRow/InkWell supplies the action semantics and title. The widget coverage exercises public-build opening, both failure results, and non-public omission (builderlab_account_row_test.dart:56-84); the public CI test lane includes this test (_ci-clients.yml:163-166). The extra row's footer-scroll effect is accounted for in settings_page_test.dart.
Validation: On the clean checkout at the exact head above, git diff --check 49511f02...HEAD passed. GitHub's exact-head Clients / Mobile Checks, Tests 1/3–3/3, Android, Mobile Swift Native and Release, and DCO checks report SUCCESS. Independent local Flutter execution did not complete because Hermit activation timed out; do not treat CI as a native interaction test.
Author action: none for this review. Verification owner: the release/native verification owner should check an exact-head public build on iOS after in-app Builderlab sign-in, tap Settings → Builderlab account, and confirm Safari lands at the intended origin with the expected session; also check Android's external-browser launch. The author-reported iOS Safari launch after identity import does not establish signed-in cookie continuity. Browser choice and Android may require a fresh sign-in. This is a named confidence gap, not an established code defect or a claim of native verification.
Co-Authored-By: Claude Opus 5.5 <[email protected]> * origin/main: feat(mobile/ios): show the message's own text in notifications (#9346) feat(mobile): prefill the agents you last tagged in a conversation (#9248) feat(mobile): start a Solo chat from a message or inbox row (#9251) feat(mobile): link to Builderlab web from Settings (#9300) fix(relay): bound invite preview host lookup (#9308) fix(relay): saturate filter limits instead of casting (#9230) fix(mobile): tell same-name agents apart in Solo (#9321) fix(mobile): join an open channel from the chat footer (#9253) fix(relay): fence pending subscriptions on close or replacement (#2382) fix(mobile): hide archived people and agents from choices; give them their own members section (#9320) Add video stacks and native iOS zoom playback (#9316) Support PNG and HEIC photos in the native iOS zoom gallery (#9314) fix(mobile): list known people in recipient pickers before a name is typed (#9311) feat(mobile): mark edited messages after the body (#8863) Signed-off-by: Philip Azar <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]> * origin/main: (22 commits) chore(deps): bump hickory-proto to 0.26.2 for RUSTSEC-2026-0487..0491 (#9351) feat(mobile/ios): show the message's own text in notifications (#9346) feat(mobile): prefill the agents you last tagged in a conversation (#9248) feat(mobile): start a Solo chat from a message or inbox row (#9251) feat(mobile): link to Builderlab web from Settings (#9300) fix(relay): bound invite preview host lookup (#9308) fix(relay): saturate filter limits instead of casting (#9230) fix(mobile): tell same-name agents apart in Solo (#9321) fix(mobile): join an open channel from the chat footer (#9253) fix(relay): fence pending subscriptions on close or replacement (#2382) fix(mobile): hide archived people and agents from choices; give them their own members section (#9320) Add video stacks and native iOS zoom playback (#9316) Support PNG and HEIC photos in the native iOS zoom gallery (#9314) fix(mobile): list known people in recipient pickers before a name is typed (#9311) feat(mobile): mark edited messages after the body (#8863) Add swipeable photo stacks and native iOS gallery preview (#9259) ci(docker): skip relay image publishes for main pushes outside the build context (#9310) Add manual-only relay image publishing (#9303) fix(mobile): bump Flutter to 3.47.9 for Android TLS fix (#9309) Serve video and poster previews for invite links (#9306) ... Signed-off-by: Philip Azar <[email protected]>
Neither mobile app offers a way to reach Builderlab's web-only account features: GitHub linking, billing and creating a community. This adds a Builderlab account row to Settings that opens the build's Builderlab origin (app.builderlab.xyz on public builds) in the system browser.
The row shows only on public builds. An internal build's Builderlab is its organization's tenant, where billing and the single community are managed by the organization, so the link wouldn't lead anywhere useful. Nostr-only builds have no Builderlab.
Sign-in uses a non-ephemeral
ASWebAuthenticationSession, which shares Safari's cookies, so Safari can reuse the Builderlab web session. A browser other than Safari, or Android, may still ask the user to sign in.Nothing else gets worse. The change adds one row and one browser launch on tap, and does no work at startup or in the background. A failure stays inside this row: if the browser doesn't open, a toast says so.
Validation
builderlab_account_row_test.dartchecks that the row opensHostedEnvironment.originand shows a toast when the browser fails to open (public build), and that the row is absent otherwise. It is added to the CI public-build lane.settings_page_test.dart: the version-footer scroll check now finds the footer after it scrolls just offscreen. The extra row pushed it there under public-build defines.flutter analyzeis clean.🤖 Generated with Claude Code