30 lines
2.0 KiB
Markdown
30 lines
2.0 KiB
Markdown
### Features
|
||
- DM screen: info sheet (85% height, FormSheet) with shared media grid (3-col), partner profile link, image lightbox
|
||
- DM screen: avatar tap in header navigates to partner profile
|
||
- DM screen: info icon (ℹ) in header opens info sheet
|
||
- Coach: Instagram-style voice recording bar — trash (left) + waveform + timer (center) + send (right)
|
||
- Coach: silence/speech detection via audio metering — dots when silent, animated bars when speaking
|
||
- Coach: trash button flashes red briefly on cancel (Instagram-style)
|
||
- iOS Layer 3: Screen Time Passcode setup flow — generate code, set in iOS Settings, stored on backend
|
||
|
||
### Fixes
|
||
- Android: Force Stop bypass blocked — Samsung SubSettings/FrameLayout class detection fixed in a11y tamper lock
|
||
- Android: Force Stop confirmation dialog now detected and blocked
|
||
- Android: a11y service label corrected to "ReBreak — Schutz" (HIGH_CONFIDENCE_KEYWORD match)
|
||
- Arabic STT: switched to Deepgram nova-3 (nova-2-general dropped Arabic support)
|
||
- DM: scroll-to-bottom now reliable via scrollToOffset(999999) on Android (scrollToEnd miscalculates content height)
|
||
- DM: voice recording timer uses Date.now() diff — eliminates Android setInterval jitter
|
||
- DM: voice bars fill full width via flex:1 + space-evenly
|
||
- DNS filter: own domains (rebreak.org, rebreak.app) bypass blocklist — fixes OAuth Google callback
|
||
|
||
### Backend
|
||
- Mail classifier v1.2: FS-token +20pts, extreme-percent (≥100%) +20pts, casino in sender name +30pts, block threshold lowered 50→40
|
||
- Screen Time Passcode API: POST/GET /api/protection/screentime-passcode
|
||
- mail_classification_samples row-cap cron: max 100k rows, daily pruning (prevents disk-full)
|
||
|
||
### Infrastructure
|
||
- CI/CD: race condition fixed — deploy lock prevents webhook + GH-Actions colliding
|
||
- CI/CD: health check retry loop (12×5s = 60s max) instead of single sleep 5
|
||
- Hetzner: 20GB block volume attached, Docker moved to /mnt/data (freed 14GB on root)
|
||
- Deepgram nova-2-general → nova-3 for all languages
|