Skip to content

DIVE-3578: rebrand the mobile fork as 5dive (name, icon, first-run copy) - #6

Merged
lodar merged 2 commits into
mainfrom
dive-3578-rebrand
Aug 18, 2026
Merged

DIVE-3578: rebrand the mobile fork as 5dive (name, icon, first-run copy)#6
lodar merged 2 commits into
mainfrom
dive-3578-rebrand

Conversation

@lodar

@lodar lodar commented Aug 18, 2026

Copy link
Copy Markdown

lodar's verdict on the DIVE-3575 sideload: "i wanted 5dive app not buzz app - change icon and name and fix obvious missteps to make it ours." Branding pass only, no feature changes.

  • app_name / APP_DISPLAY_NAME / CFBundleName / MaterialApp(title:) -> 5dive
  • applicationId xyz.block.buzz.mobile -> com.fivedive.app (new install identity, installs alongside a real Buzz instead of colliding on signature). Kotlin namespace deliberately unchanged so no source moves and upstream merges stay cheap.
  • Launcher/round/adaptive-foreground/splash regenerated from app/public/icon-512.png (the 5dive mark); adaptive background #1A1A1F.
  • 8 user-visible strings that named OUR app now say 5dive; Buzz Desktop, buzz://, relay/protocol nouns and the persisted 'buzz' theme key left alone.
  • scripts/test-mobile-worktree-overrides.sh + mobile-worktree-overrides.sh + mobile-worktree-clean.sh hard-coded the old name and package id; updated. Run locally: 33 ok / 0 failures.
  • sideload-apk.yml now publishes a prerelease asset (an Actions artifact link needs a login and is dead on a phone).

APK: https://github.com/5dive-ai/buzz/releases/download/mobile-sideload-5dive-2/5dive-2.apk (anonymous 200, application/vnd.android.package-archive, 194 MB).
Verified in the shipped bytes: package com.fivedive.app, resources app_name=5dive with no bare "Buzz" left in resources.arsc, all 20 mipmap PNGs byte-identical to this tree, and kernel_blob.bin contains 'Welcome to 5dive' / 'Join this community?' with zero hits for the old strings.

Dart unit tests were updated to match the copy but NOT executed: no flutter/java/Android SDK on this host, and ci.yml only triggers on push to main/release.

lodar added 2 commits August 18, 2026 07:45
lodar's verdict on the DIVE-3575 sideload: "i wanted 5dive app not buzz app".
This is the branding pass only - no feature changes.

- Android app_name and iOS APP_DISPLAY_NAME/CFBundleName -> 5dive
- applicationId xyz.block.buzz.mobile -> com.fivedive.app (a NEW app identity,
  so it installs alongside a real Buzz install instead of colliding on
  signature). Kotlin `namespace` deliberately UNCHANGED so no source moves.
- Launcher icon, round icon, adaptive foreground and splash regenerated from
  app/public/icon-512.png (the 5dive PWA mark); adaptive background #1A1A1F.
- First-run/user-visible copy that named OUR app now says 5dive. References to
  Buzz Desktop, the buzz:// scheme, relay/protocol nouns and the "buzz" theme
  key are left alone - they name the other app and the wire format.
- Sideload workflow publishes the APK as a prerelease asset (a CI artifact link
  needs a login and is useless on a phone).
…heck

- pairing welcome hero: TappableFlappingBee -> FiveDiveMark, a silhouette cut
  from the same source art the launcher icons come from. Drops upstream's
  tap-to-flutter easter egg on first run; the bee still drives pull-to-refresh.
- 'Join this community?' -> 'Join this 5dive community?': moves the brand
  instead of dropping it, and restores the line width dart format's tall style
  needs to keep the Text() split (the iteration-1 shortening was what turned
  Mobile / Format check red, taking Analyze/Test/Build down as skipped).
@lodar

lodar commented Aug 18, 2026

Copy link
Copy Markdown
Author

Iteration 2 (41b87d7)

Addresses quinn's three rejects on 46d26ce.

1. Format check red → green. invite_join_sheet.dart: 'Join this community?''Join this 5dive community?'. Fixes both findings at once — it moves the brand instead of dropping it (the point of the pass), and it restores the width dart format's tall style needs to keep the Text(...) split. Mobile / Format check: success on run 32117467483.

2. The tests finally ran. With Format green, the rest of the sequential Mobile job graded: Analyze: success, Test: success, Build Android debug APK: success. That closes the iteration-1 disclosed gap — the 5 updated Dart test files had never executed anywhere.

3. Welcome-screen logo (lodar's new ask). pairing_welcome_view.dart hero: TappableFlappingBee(width: 76)FiveDiveMark(height: 72), a new widget in shared/widgets/fivedive_mark.dart rendering an alpha-mask silhouette of the 5dive "5" cut from the same app/public/icon-512.png the launcher icons came from, tinted to _onboardingInk via Image.asset(color:) (BlendMode.srcIn). Moved with it: the direct import in pairing_page.dart (would be unused_import) and pairing_page_test.dart's find.byType assertion.

TappableFlappingBee and flapping_bee.dart are kept — the painter still drives BeeRefreshIndicator on 5 screens. An unreferenced public class in lib/ raises no analyzer warning and deleting it would be a merge conflict for nothing. The tap-to-flutter easter egg does not survive on the welcome screen; that was deliberate.

Checked in the downloaded release bytes (5dive-3.apk, sha256 aee8b249…)

  • assets/flutter_assets/assets/images/5dive-mark.png sha256 34455c63… — byte-identical to the source tree.
  • kernel_blob.bin: 2 hits each for assets/images/5dive-mark.png, Welcome to 5dive, Join this 5dive community?, Starting 5dive, full 5dive identity; 0 for Welcome to Buzz, Join this Buzz community?, and the generic Join this community?.
  • Binary manifest: com.fivedive.app ×7; the single xyz.block.buzz.mobile is the Kotlin namespace (MainActivity), deliberately unchanged.
  • Release asset anon curl -sIL → 200, application/vnd.android.package-archive, 194,121,506 bytes.

Not done

  • No device render. No Flutter on the agent hosts, so the mark's size (48×72 inside the 136 circle, vs the bee's 76×50) is a judgment call, not a measurement. Different visual weight — taller and narrower. lodar's eyes are the check.
  • mobile/assets/images/buzz-icon.png is still registered in pubspec.yaml and ships in the APK. It is referenced by nothing in lib/ — a dead asset, but it is still a bee in our bytes.
  • BeeRefreshIndicator is still a bee on 5 screens (forum, activity ×2, pulse, channels). Deeper than a branding pass.
  • Carried from iteration 1 and unchanged: iOS AppIcon asset set not replaced; theme picker still lists a theme labelled "Buzz".

Wiki updated: community/wiki/rebranding-the-buzz-mobile-fork-what-is-cheap-and-what-fights-back.md §9 (a logo on the welcome screen is a widget swap, not an asset swap), plus the index.md line.

Pairing QR is not on this row — filed as DIVE-3581 (live desktop session + an identity decision that is lodar's).

@lodar
lodar merged commit b57103e into main Aug 18, 2026
24 checks passed
@lodar
lodar deleted the dive-3578-rebrand branch August 24, 2026 04:08
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.

1 participant