App ID + launcher icon rename: halobestie.* → mybestie

- Customer: com.halobestie.client.client_app → com.mybestie
- Mitra:    com.halobestie.mitra.mitra_app  → com.mybestie.mitra
- iOS bundle IDs renamed to match (no .clientApp/.mitra camelCase legacy)

Mechanical rename touches Android build.gradle/Manifest/MainActivity
package, iOS pbxproj/Info.plist bundle IDs, Firebase configs
(google-services.json + GoogleService-Info.plist + firebase_options.dart),
new HaloBestie/Mitra launcher icons via flutter_launcher_icons (pubspec
config + adaptive-icon resources + AppIcon imageset), and the appId
references in every customer maestro flow + both .maestro/config.yaml
files. brandLogoBg (#FF699F) added to halo_tokens for the launcher pink.

Followup: re-register apps in Firebase consoles using the new package IDs;
strategy memo at project-firebase-env-strategy.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-21 11:13:47 +08:00
parent 9696eadeaf
commit fcb8eaa505
112 changed files with 271 additions and 60 deletions

View File

@@ -5,8 +5,8 @@
env:
# App identifiers — Android / iOS bundle IDs picked up automatically by `appId:` in flows.
APP_ID_ANDROID: com.halobestie.client.client_app
APP_ID_IOS: com.halobestie.client.clientApp
APP_ID_ANDROID: com.mybestie
APP_ID_IOS: com.mybestie
# Backend the app talks to — must match what the installed APK was built with
# (the `--dart-define=API_BASE_URL=...` value at build time).

View File

@@ -11,7 +11,7 @@
# Pre-req: client_app debug APK installed, backend reachable at
# BACKEND_URL/BACKEND_INTERNAL_URL, NODE_ENV != 'production' (so the
# /internal/_test/peek-otp + /internal/_test/reset-phone routes register).
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+628155556677"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -14,7 +14,7 @@
# NOTE: numeric prefix conflicts with the existing
# 02_cta_disabled_when_no_mitra.yaml — Stage 9 will reorganize the flow
# directory once the full Phase 4 suite lands.
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+628155557701"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -9,7 +9,7 @@
#
# NOTE: numeric prefix conflicts with the existing 03_payment_to_chat_happy.yaml
# — Stage 9 will reorganize the flow directory once the full Phase 4 suite lands.
appId: com.halobestie.client.client_app
appId: com.mybestie
---
- launchApp:
clearState: true

View File

@@ -12,7 +12,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/04_payment_expired.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+628155557704"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -9,7 +9,7 @@
# mitra is force-timed-out server-side regardless of availability.
# 2. anonymity_enabled=true on the dev backend.
# 3. NODE_ENV != 'production' (so /internal/_test/* routes register).
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+628155557705"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -15,7 +15,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/08_returning_targeted.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+628155556677"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -21,7 +21,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/09_chat_tab.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+628155556678"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -26,7 +26,7 @@
# simply suppresses the notification); the banner is the only
# user-visible signal that they're missing alerts, which is what we
# assert below.
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -10,7 +10,7 @@
# - Backend reachable; NODE_ENV != 'production'.
# - ≥1 mitra online (mitraAvailable gates the "aku mau curhat" CTA).
# - first_session_discount is enabled in the pricing config (default).
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -11,7 +11,7 @@
# 3. has_transacted is implicitly false (no chat_sessions →
# isCustomerEligibleForFirstSessionDiscount returns true).
# 4. /payment/entry routes to /payment/discount-paywall (S6).
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -11,7 +11,7 @@
# Pre-reqs:
# - ≥1 mitra online (seed_history_session pairs with the most-recent
# online mitra to write the chat_sessions row).
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -13,7 +13,7 @@
# This flow inlines the pre-OTP onboarding steps (instead of using the
# onboarding_new_user_verified subflow) because we want to enter wrong OTPs
# rather than the peeked valid one.
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -8,7 +8,7 @@
# stays AuthAnonymousData). USP screen pushes /payment/method-pick
# directly when verified=false. Verifies onboardingIntent is NOT set
# (it stays `recover` because we picked "curhat anonim", not "verifikasi").
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -23,7 +23,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/ts-customer-02-10-recover_via_masuk_existing_user_to_home.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
EXISTING_NAME: "Returning User"

View File

@@ -18,7 +18,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/ts-01_returning_lama_online.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -22,7 +22,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/ts-02_returning_lama_offline_blast.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -22,7 +22,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/ts-03_returning_lama_offline_tanya_admin.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -23,7 +23,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/ts-04_returning_baru_blast.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -18,7 +18,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/ts-05_payment_expired_retry_preserves_targeting.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -38,7 +38,7 @@
#
# Run:
# maestro test client_app/.maestro/flows/ts-06_targeted_reject_fallback_to_blast.yaml
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -27,7 +27,7 @@
# - Backend reachable; NODE_ENV != 'production'.
# - ≥1 mitra online (the seeded mitra acts as the blast acceptor and the
# subsequent message sender).
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001

View File

@@ -37,7 +37,7 @@
# - The currently-signed-in mitra must have a `fcm_token` row in
# `mitras.fcm_token`; otherwise the FCM dispatch succeeds at the
# backend code path but never reaches a device.
appId: com.halobestie.client.client_app
appId: com.mybestie
env:
TEST_PHONE: "+6281234567890"
BACKEND_INTERNAL_URL: http://localhost:3001