Skip to content

feat(mobile): refresh onboarding and smooth QR scanner motion - #8019

Merged
klopez4212 merged 3 commits into
mainfrom
kennylopez-mobile-onboarding-gradient
Oct 1, 2026
Merged

klopez4212 merged 3 commits into
mainfrom
kennylopez-mobile-onboarding-gradient

Conversation

@klopez4212

@klopez4212 klopez4212 commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Refresh mobile onboarding with light/dark gradients, an animated fuzzy Buzz wordmark and tagline, and bottom-aligned glass/ghost actions. Remove the dot grid and idle scroll bounce, and smooth the QR scanner's continuous corners and spring transitions by deferring camera teardown until dismissal finishes.

Related issue

N/A — no matching mobile onboarding issue or PR found.

Testing

  • Mobile formatting, analysis, and full test suite passed at 0bb357f7a.
  • Regression coverage includes shader animation/reduced motion, keyboard reachability, scanner interruption, deferred camera disposal, and rendered error contrast in both themes (mutation-checked).
  • Signed iOS release build installed on iPhone Air; Kenneth tried the onboarding and scanner during iteration and approved the final blur.
  • Agent review completed with no correctness blockers. Android device validation was not performed; hosted checks run separately.

buzz-review-completed

Preview

Production-widget renders at 420 × 912; before: 5fdb2e536, after: 443858a96.

Before After — light After — dark
Before Light Dark

Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
klopez4212 added a commit that referenced this pull request Oct 1, 2026
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 Onboarding previews rendered from the production Flutter widgets at 420 × 912. Before: 5fdb2e536; after: 443858a96. These are widget renders; the final app was also tried on iPhone Air.

Before After — light After — dark
buzz-before-light buzz-blur-only-light buzz-blur-only-dark

@klopez4212
klopez4212 marked this pull request as ready for review October 1, 2026 09:58
@klopez4212
klopez4212 requested a review from a team as a code owner October 1, 2026 09:58
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-01T13:47:47.646716Z 0bb357f New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@klopez4212
klopez4212 deployed to codex-review October 1, 2026 09:58 — with GitHub Actions Active
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

🔐 Codex Security Review

Note: This is an automated, security-focused review generated by Codex.
Use it as a supplement to human review; false positives are possible.

Scope

  • Exact PR diff: 5fdb2e53659ee29002545f1022c138fe0b8282f9...0bb357f7ab1dea26a3741a61f39108bb09605bc1
  • Model: gpt-5.6-sol

💡 Click "edited" above to see earlier reviews for this PR.


Review Summary

Overall Risk: NONE

No concrete security, correctness, or reliability issues were found in the authorized PR range. The changes are limited to mobile onboarding visuals and QR scanner animation, while existing pairing validation and single-result handling remain intact.

Findings

No concrete security, correctness, or reliability findings were identified.

Notes

  • No additional limitations were reported.

Generated by Codex Security Review |
Requested by: @klopez4212 |
Workflow run

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 443858a96b

ℹ️ 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".

Comment thread mobile/lib/features/pairing/pairing_page/onboarding_colors.dart

@jedwards27 jedwards27 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review by :bot: Jude’s code review agent

Verdict: REQUEST CHANGES
Reviewed: 5fdb2e53659ee29002545f1022c138fe0b8282f9..443858a96ba2bc54a2d854fe6b7da597c7fe0891 (exact head 443858a96ba2bc54a2d854fe6b7da597c7fe0891)
Risk: medium — user-visible onboarding/accessibility behavior plus native camera lifecycle and iOS-specific motion.

Blocking finding

[P2] The “both themes” accessibility regression test contradicts the dark UI it claims to protect. Production now selects 0xFFFFAAA0 for dark-theme SAS errors (mobile/lib/features/pairing/pairing_page/onboarding_colors.dart:12-13), but mobile/test/features/pairing/pairing_page_test.dart:718-744 still requires the light-theme 0xFF7A1025 in both iterations and evaluates it against the removed light gradient for both themes. The intended dark color itself is sound against the dark base (#FFAAA0 on #11181D is approximately 9.82:1); the defect is stale, non-theme-specific regression coverage that no longer validates the shipped dark error state.

Author action: make the test assert each theme’s actual selected error ink against that theme’s actual onboarding background (or render/sample the production surface), and ensure the dark row causally fails if the dark color/background wiring regresses. Run the required full mobile gate on the corrected head.

Verification owner: author + Clients / Mobile CI.

Integrated contract review

No additional author-actionable defect was found across the systems/lifecycle and product/UI passes:

  • The Dynamic Island route owns one memoized scanner controller, fences duplicate close/result paths, keeps the camera mounted through animated dismissal, and disposes it on route teardown (dynamic_island_portal.dart:13-27,29-35,74-92,133-165). Reduced motion jumps to the target and pops after an end-of-frame (:29-35,43-64).
  • Onboarding source/tests cover semantics, reduced motion and app lifecycle (onboarding_wordmark_test.dart:10-103), keyboard/action reachability (pairing_page_test.dart:78-123), and reduced-motion scanner dismissal (pairing_qr_scanner_test.dart:288-341).
  • The supplied exact-head 420×912 production-widget renders show coherent light/dark layouts, readable primary copy, and reachable actions. These are static renders, not native scanner-transition proof.

Validation

  • PASS — just mobile-install mobile-check: dependencies resolved; 608 Dart files formatted unchanged; Flutter analyze reported no issues; exact clean head confirmed afterward.
  • PASS — git diff --check 5fdb2e53659ee29002545f1022c138fe0b8282f9..HEAD at matching head.
  • Hosted exact-head mobile and Mobile Swift jobs had completed their format/analyze/test and simulator steps but were still running terminal Android/unsigned-iOS build steps at final review time.
  • Local mobile-test did not reach test discovery: the reviewer machine has not accepted the Xcode 27 license, so the objective_c-9.3.0 native-asset hook could not resolve the SDK (xcrun --show-sdk-path exited 69). This is a reviewer/tooling gap, not additional author rework.

Residual risk / confidence gaps

The real iOS interruption/background/foreground scanner journey and release artifact were not independently observed. The PR reports an iPhone Air trial, but no scanner-transition recording/receipt or Android-device observation was available for independent inspection. Verification owner: reviewer/tooling and the named hosted gates; no additional author action beyond the blocking test correction above.

Any new head expires this review.

Signed-off-by: kenny lopez <klopez4212@gmail.com>
@github-actions github-actions Bot removed the codex-security-review-current The posted Codex security review matches its recorded range. label Oct 1, 2026
@klopez4212
klopez4212 deployed to codex-review October 1, 2026 13:43 — with GitHub Actions Active
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 @jedwards27 Addressed your blocking contrast-test finding in 0bb357f7a. Light and dark now have independent settled tests, theme-specific ink/background assertions, and contrast checks against the rendered production surface. The dark test rejects regressions to the error ink, background selection, and glow contrast (verified with temporary mutations).

just mobile-install, mobile analysis, and the full mobile test suite passed. This is a test-only correction; the approved iPhone UI is unchanged. Ready for your follow-up review; hosted checks are running on the new head.

@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Oct 1, 2026

@jedwards27 jedwards27 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review by :bot: Jude’s code review agent

APPROVE at exact head 0bb357f7ab1dea26a3741a61f39108bb09605bc1 (base 5fdb2e53659ee29002545f1022c138fe0b8282f9). Any head movement expires this verdict.

The sole prior blocker is resolved. The delta from reviewed head 443858a96b is test-only (mobile/test/features/pairing/pairing_page_test.dart, +101/-16); production UI, assets, shaders, scanner, and lifecycle code are unchanged. The replacement coverage independently exercises settled light and dark themes against the actual production error ink and rendered production background/painter, samples the surface beneath the error rectangle, requires opaque pixels, and enforces WCAG contrast >= 4.5. This removes the stale light-gradient assumption that caused the previous rejection.

Independent product/UI and systems/integration review found no concrete defects. The author also reports that temporary mutations to dark ink, background selection, and glow each failed the corrected dark-theme test and were restored.

Validation at this exact clean head:

  • just mobile-install mobile-check: 608 files unchanged; Flutter analyze reported no issues; gateway recipe probes passed.
  • git diff --check 5fdb2e536..0bb357f7a: passed.
  • Hosted Clients / Mobile, required Mobile, and Mobile Swift domain result: green. Final freshness query confirmed the live head and all relevant checks remain unchanged/green.

Non-blocking confidence gap: local Flutter test discovery cannot start on this reviewer host because its Xcode 27 license is unaccepted (xcodebuild -license check rc 69; objective_c-9.3.0 cannot resolve the SDK). That is reviewer tooling, not author rework. Independent mutation execution was therefore not repeated locally; the structurally sensitive assertions, author mutation report, and green hosted full mobile gate provide sufficient evidence.

Author action: none.

Residual risk: native Android/iOS scanner motion was not re-observed in this test-only round; no production bytes changed, so that prior non-blocking risk is unchanged.

@jedwards27 jedwards27 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

:bot: Jude’s code review agent

Verdict: APPROVE
Reviewed: 5fdb2e53659ee29002545f1022c138fe0b8282f9..0bb357f7ab1dea26a3741a61f39108bb09605bc1 (exact head 0bb357f7ab1dea26a3741a61f39108bb09605bc1)
Risk: medium — user-visible mobile onboarding/scanner behavior, with this follow-up limited to accessibility regression coverage.

Behavior/contracts traced: The follow-up changes only mobile/test/features/pairing/pairing_page_test.dart; production mobile bytes are unchanged from the previously reviewed head. The replacement tests independently settle light and dark themes, bind the active theme and production error ink, reuse the production onboarding decoration and painter, sample the rendered surface beneath the laid-out error text, and require WCAG AA contrast at each sample.

Findings: No unresolved blocking or non-blocking code finding. The previous blocker is resolved: dark mode now has a theme-specific, production-seam-bound contrast regression rather than reusing stale light-theme constants.

Author action: none.
Verification owner: reviewer/tooling for optional independent mutation reproduction; CI for required mobile gates (terminal green at filing).

Validation:

  • PASS — just mobile-install mobile-check at clean exact head: 608 files unchanged, Flutter analyze clean, gateway recipe probes passed.
  • PASS — exact-head hosted Clients / Mobile and Mobile Swift gates; no failing or pending checks at final freshness poll.
  • PASS — git diff --check 5fdb2e53659ee29002545f1022c138fe0b8282f9..0bb357f7ab1dea26a3741a61f39108bb09605bc1.
  • NOT RUN locally — mobile-test cannot reach discovery because this reviewer host has not accepted the Xcode 27 license; objective_c-9.3.0 cannot resolve the SDK. This is reviewer tooling, not author rework.

Manual/native evidence: No new native run; the correction is test-only and production UI/scanner bytes are unchanged.

Residual risk: Independent mutation execution was not repeated on this host. Source inspection establishes causal exact-ink and exact-background assertions; the author reports restored mutations for dark ink, background selection, and glow, and the required hosted full mobile suite passed. No author-actionable defect remains.

@klopez4212
klopez4212 merged commit 6b5bb6f into main Oct 1, 2026
42 checks passed
@klopez4212
klopez4212 deleted the kennylopez-mobile-onboarding-gradient branch October 1, 2026 14:17
wpfleger96 pushed a commit that referenced this pull request Oct 1, 2026
…ty-from-device

* origin/main:
  fix(acp): interrupted frame writes close the sole writer; fixed native-steer refusal reasons (#7568)
  fix(desktop): read channel metadata and member lists from writer after writes (#7999)
  feat(mobile): refresh onboarding and smooth QR scanner motion (#8019)

Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
zbkilla added a commit to zbkilla/buzz that referenced this pull request Oct 1, 2026
Catches the fork up 87 commits (previous upstream merge ef2aa1a, block#7757).
Clean merge, no conflicts; all fork patches intact (NIP-42 auth timeout
env, pairing-cli, pair-relay 600s, web NIP-07 signer/shared socket).
Brings migrations 0047-0055 and the admin member-restriction routes
(block#7302) that Desktop 0.5.26 Admin calls.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: zbk <141564032+zbkilla@users.noreply.github.com>
tlongwell-block pushed a commit that referenced this pull request Oct 1, 2026
Main added eight commits since the last merge: mobile onboarding and
push settings (#8019, #8025, #7526), desktop reads after channel writes
(#7999), following a channel message before its first reply (#7692),
two ACP fixes (#7568, #8022) and the macOS icon (#8018). They change
buzz-acp, desktop, mobile, CI workflows and tooling only. No file is
changed on both sides, and main adds no migration.

The merge is textually clean and needs no follow-on edit. buzz-db,
buzz-relay, migrations, schema and Cargo.lock are byte-identical to the
branch before the merge, and this branch's diff against main is
unchanged: the same 31 files with the same added and removed lines.

Co-authored-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
Signed-off-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>

This branch was successfully deployed

1 active deployment
codex-review — 0bb357f7 Deployed Oct 1, 2026 by klopez4212 via Run Codex Security Review #6366
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

codex-security-review-current The posted Codex security review matches its recorded range.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants