chahinebrini
4987d05f10
fix(native): per-device bypass gate + 300k copy + locale/marketing polish
...
- protection.ts: gate recoveringFromBypass on a local 'everActiveHere' flag,
set after a successful activateUrlFilter(). The 'protection off' sheet + tamper
push no longer fire on fresh devices/sims where protection was never activated
locally. Root cause: backend protectionShouldBeActive is the account DEFAULT
(only false after a held cooldown), not an 'ever active' signal.
- locales: blocklist size 208k -> 300k (native de/en/fr/ar + marketing de/en).
- bundles already-deployed prior polish living in these files: native wording
(clean->spielfrei, DiGA wording), marketing de-AI pass (live on prod).
- NEXT_RELEASE.md seeded for the next app release.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 03:05:16 +02:00
chahinebrini
4dfcfc4012
feat(marketing): 14-Tage-Trial-Klarheit + OS-aware Magic-Download
...
- Hero/Final-CTA: 'kostenlos starten' -> '14 Tage kostenlos testen' + Subline
'danach ab 3,99€/Monat, jederzeit kündbar' (löst free-vs-Preis-Verwirrung;
Trial existiert bereits Stripe-seitig + Pricing nennt ihn)
- useOS()-Composable + OS-aware RebreakMagic-Download: Windows-Besucher ->
/download/windows, Mac/sonst -> /download/rebreakmagic
Deployed: rebreak.org via deploy-marketing.sh
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 23:03:37 +02:00
chahinebrini
e0cb0517fc
feat(marketing): cross-device pricing-hero + Header-Nav statt Tabbar (live prod)
...
- Pricing: Device-Hero-Reihe (iPhone/Android/Mac/Windows) + Tagline 'ein Abo,
alle Geräte' — heroicons (offline gebündelt)
- Layout: Floating-Tabbar raus -> Header-Nav (Desktop) / Hamburger (mobil)
- Locales: cross_device_tagline + Geräte-Matrix-Texte
Deployed: rebreak.org (marketing-prod) via deploy-marketing.sh
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:56:14 +02:00
chahinebrini
c1edef8abd
feat(magic): RebreakMagic device-binding + DNS profile
...
- backend: /api/magic/{register,devices,profile,release} + AdGuard provisioning + 24h cooldown
- prisma: magic_binding_fields migration (additive on UserDevice)
- mac-app: Phase 2 - Login + MacRegistration + Profile install
- marketing: landing section + /download/rebreakmagic + DMG
- lyra: forbidden phrases + RebreakMagic coach guidance
2026-06-02 09:15:19 +02:00
chahinebrini
b31066a04c
feat(chat): native action sheet + Insta-style heart for DM messages
...
- ChatBubble: useActionSheet replaces custom Modal (native iOS popup, Android bottom sheet)
- DM mode (isDM prop): hides like-count, shows Insta-style heart badge under bubble when liked
- Group chat unchanged
- Cleanup: remove unused Modal/Platform imports, sheet styles, actionsOpen state
- deploy.sh: auto-detect ANDROID_HOME + auto-create local.properties for local Gradle
- NEXT_RELEASE.md: DM reactions release note
- Includes other staged work across binder-mac, marketing, ops/mdm, ios/
2026-05-30 09:14:32 +02:00
chahinebrini
5d6c322129
wip: KeyboardAwareSheet migrations + Snake/Tetris UI + iron.png + useMe live-update
...
Sheets via neuer KeyboardAwareSheet-Composable (in Modal pattern, auto-grow
mit Tastatur, paddingBottom-Lift): EditMail, AddDomain, CreateRoom, ConnectMail.
GameOverScreen behält Spring-Slide-In, nutzt RN Keyboard.addListener für Lift.
- KeyboardAwareSheet.tsx — universal modal with sheet-grow + keyboard-padding
- react-native-keyboard-controller installiert + KeyboardProvider in Root
- Snake: time + ScoreProgressBar + useSnakeSounds (haptic, audio TODO)
- Tetris: title weg, Buttons zentriert, kein Pressable mit style-fn
- DPad-Buttons 60→48, more bg, no scale
- useMe: pub-sub listener pattern für app-weite avatar/nickname-Updates
- dm.tsx: resolveAvatar wrap (iron.png-Warning)
- Mail-error-humanizer + locales
Recovery-Doc-Update in docs/internal/RECOVERY_LOG_2026-05-10.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 23:59:25 +02:00