Appearance
Epic 46 — Beta Mode (Beta flag → Beta badge + "beta" UI marker)
New. Builds on Epic 45 (badges) + Epic 30 (feature flags). Decision (user, 2026-06-16): A Beta feature flag — when on, every newly registered user is given the Beta User badge, and the UI shows a "beta" marker.
✅ SHIPPED 2026-06-19. New
FEATURE_FLAGS.BETA(inDEFAULT_ON+ seededenabled: true— recommended on for beta).register(auth.ts) reads the flag beforeuser.createand, when on, seedsbadges: [BETA_USER](from the Epic 45 registry) on the new user — existing users untouched. Frontend: DSAppHeadergained alogoBadgeslot; appBetaBadgecomponent (renders a warning-variant DS Badge "Beta" viauseFeatureFlag('BETA'), null when off/resolving) wired intoAppShell's default header next to the logo;beta.labeli18n in en/pt/es. Tests: BE register grant on/off (auth.test.ts, 1416 green) + FE BetaBadge toggle (app 570 / DS 44 green); typecheck + i18n-key lint clean. Deploy:seedFeatureFlagsinserts the BETA row (on) on next deploy.
Why: During beta the team wants new sign-ups auto-tagged and a visible "beta" signal across the app. This is a flag + a register-time badge grant + a UI marker.
Architecture: New BETA flag (FEATURE_FLAGS + FLAG_DEFAULTS). The register mutation (already hooks welcome-CasTars) appends BETA_USER to User.badges when BETA is on. A DS "BETA" pill renders in the app header/branding when useFeatureFlag('BETA') is true.
BE-BETA-001 — Beta flag + register-time badge grant
Files:
- Edit:
castyou-backend/src/services/featureFlags/index.ts(FEATURE_FLAGS.BETA) +seed.ts(FLAG_DEFAULTS, default per stakeholder — recommend on for beta). - Edit:
castyou-backend/src/graphql/resolvers/auth.ts— inregister, ifBETAis enabled, appendBETA_USERto the new user'sbadges.
Acceptance criteria: With BETA on, a newly registered user has the BETA_USER badge; with it off, they don't; existing users are unaffected.
FE-BETA-001 — "beta" UI marker
Files:
- Create/Edit: a DS "BETA" pill near the app logo/header, shown when
useFeatureFlag('BETA')is true; i18n en/pt/es.
Acceptance criteria: The "beta" marker appears app-wide when the flag is on and disappears when off.
TEST-BETA-001 — Beta coverage
Acceptance criteria: Flag-on register grants the badge; the marker toggles with the flag.