- Plan action 16-22 décembre avec priorités critiques (visa, Wise, freelance) - Projet AlwaysOnRecorder (recording app pour protection juridique + long-term tool) - Pivot stratégique : Rester Shanghai + divorce + relation Maëlle - Nouveau profil Maëlle (professeure chinois, timeline révélation) - Mise à jour profils Alexis et Tingting (situation décembre 2025) - Plan final consolidé avec phases détaillées et protection actifs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
12 KiB
AlwaysOnRecorder - App de Recording Continu
Status: WIP Type: Mobile App (Android) Stack: React Native, SQLite, AES-256, Whisper (optional) Priority: HIGH (Protection juridique + Life tool) Target MVP: 10-15h dev Start Date: 16 décembre 2025
Vue d'ensemble
AlwaysOnRecorder est une application mobile de recording audio continu conçue pour :
- Protection juridique : Enregistrement conversations avec Tingting (gaslighting, mensonges, refus accord)
- Mémoire conversationnelle : Archive searchable de toutes conversations importantes
- Discrétion : Background service, pas besoin d'activation manuelle
- Sécurité : Encryption AES-256, stockage local, pas de cloud auto-upload
Use cases :
- Court terme (3 semaines) : Protection divorce Tingting
- Long terme (vie) : Mémoire conversations, journal audio, recherche historique
Contexte légal : One-party consent recording légal en Chine
Architecture MVP (10-15h)
Core Features
1. Background Recording Service
// Détecte voix automatiquement (VAD - Voice Activity Detection)
// Si silence > 30s → Pause recording
// Si voix détectée → Resume recording
// Économie batterie + storage
2. Local Encrypted Storage
// SQLite database
// Schema:
// - id (INT)
// - start_time (DATETIME)
// - end_time (DATETIME)
// - duration (INT seconds)
// - file_path (TEXT) → encrypted audio file
// - tags (TEXT) → "tingting", "maelle", "work", etc.
// - transcription (TEXT, nullable)
// - is_protected (BOOL) → ne peut pas être supprimé
3. Simple UI
┌─────────────────────────────┐
│ AlwaysOn Recorder │
│ ○ Recording (12:34:56) │ ← Status + uptime
├─────────────────────────────┤
│ Today: │
│ ├─ 09:23 - 09:45 (22min) │ ← Liste recordings
│ ├─ 14:12 - 14:58 (46min) │
│ └─ 18:30 - ongoing │
├─────────────────────────────┤
│ [⏸️ Pause] [🔍 Search] │
│ [⚙️ Settings] │
└─────────────────────────────┘
4. Tagging System
// Auto-tagging (optionnel) :
// - Détection contact phone (si call)
// - Détection location (home/work/campus)
//
// Manual tagging :
// - Longpress recording → "Tag as Tingting"
// - Swipe → "Important" flag
Stack Technique
Framework
- React Native (cross-platform, fast dev)
- Expo (managed workflow, fast iteration) OU Bare React Native (plus de contrôle)
Audio Recording
// Option 1: react-native-audio-recorder-player
import AudioRecorderPlayer from 'react-native-audio-recorder-player';
// Option 2: expo-av (si Expo managed)
import { Audio } from 'expo-av';
Background Service
// react-native-background-actions
import BackgroundService from 'react-native-background-actions';
// Foreground service (Android) → Notification persistante
// Seul moyen de garantir pas killed par OS
Storage
// SQLite local
import SQLite from 'react-native-sqlite-storage';
// Encryption files
import RNFS from 'react-native-fs';
import CryptoJS from 'crypto-js';
VAD (Voice Activity Detection)
// Option 1: Analyse amplitude audio (simple)
if (amplitude > threshold) {
recording = true;
} else if (silence_duration > 30s) {
recording = false;
}
// Option 2: Librairie ML (plus précis mais heavier)
// @tensorflow/tfjs + VAD model
Fonctionnalités
MVP (Phase 1 - 10-15h)
Essentiels :
- ✅ Background recording avec foreground service
- ✅ VAD simple (amplitude-based)
- ✅ SQLite storage avec metadata
- ✅ AES-256 encryption files audio
- ✅ Simple UI (ON/OFF toggle, liste recordings)
- ✅ Manual tags (Tingting, Maëlle, Work, etc.)
- ✅ Export manuel (share audio file)
- ✅ Protected flag (recordings importants ne peuvent pas être supprimés accidentellement)
Architecture :
AlwaysOnRecorder/
├── src/
│ ├── components/
│ │ ├── RecordingStatus.tsx
│ │ ├── RecordingList.tsx
│ │ └── TagSelector.tsx
│ ├── services/
│ │ ├── BackgroundRecorder.ts
│ │ ├── VADDetector.ts
│ │ ├── EncryptionManager.ts
│ │ └── DatabaseManager.ts
│ ├── screens/
│ │ ├── HomeScreen.tsx
│ │ ├── SettingsScreen.tsx
│ │ └── SearchScreen.tsx
│ └── utils/
│ ├── permissions.ts
│ └── constants.ts
└── App.tsx
Phase 2 (Après move out - Long terme)
Advanced Features :
- ⏳ Transcription automatique (Whisper)
- ⏳ Recherche sémantique dans transcriptions
- ⏳ Auto-tagging via ML (speaker recognition)
- ⏳ Cloud backup (chiffré, S3/IPFS/Backblaze)
- ⏳ Export formats (MP3, WAV, M4A)
- ⏳ Compression intelligente (quality vs storage)
- ⏳ Multi-langue transcription (EN/FR/CN)
- ⏳ Timeline visualization
- ⏳ Statistiques (temps parole, patterns, etc.)
Développement
Étapes MVP
1. Setup Projet (1-2h)
# React Native bare
npx react-native init AlwaysOnRecorder
# OU Expo managed
npx create-expo-app AlwaysOnRecorder
2. Background Service + Recording (3-4h)
- Permissions (microphone, storage, background)
- Foreground service setup
- AudioRecorder integration
- Start/Stop logic
3. VAD Simple (2-3h)
- Amplitude monitoring
- Silence detection (30s threshold)
- Auto pause/resume
4. Storage + Encryption (2-3h)
- SQLite schema
- Save recording metadata
- AES-256 file encryption
- File management (delete, protected flag)
5. UI Basique (2-3h)
- Home screen (status + recording list)
- Settings (thresholds, storage limit)
- Tag selector
- Search simple (by date, by tag)
Total MVP : 10-15h
Problèmes Techniques Anticipés
1. Battery Drain
Problème : Recording continu = CPU + microphone actif = batterie drainée
Solutions :
- VAD pause recording pendant silence (économie 70%+)
- Sample rate réduit (16kHz au lieu de 44.1kHz, qualité suffisante pour voix)
- Compression adaptive (moins de writes disque)
- Foreground service avec notification = user aware
Estimation : 5-10% batterie/heure avec VAD optimisé
2. Storage Management
Problème : 1h audio ≈ 30-60MB (16kHz, mono)
Solutions :
- Compression audio (Opus codec, 20-30KB/minute pour voix)
- Auto-delete recordings > 30 jours (sauf protected)
- Storage limit user-configurable (ex: max 5GB)
- Warning quand approche limite
Estimation : 30 jours recordings ≈ 2-4GB avec compression
3. Android Background Service Restrictions
Problème : Android 8+ kill background services agressivement
Solutions :
- Foreground service avec notification persistante (seul moyen fiable)
- Battery optimization exemption (demander user)
- Notification permanente (légalement requis pour foreground service)
Trade-off : Notification visible en permanence (prix à payer pour garantir recording)
4. Découverte par Tingting
Problème : Si elle voit notification/app sur phone
Mitigations :
- App icon + nom générique ("System Logger", "Audio Notes")
- Notification discrète (juste icône microphone, pas de texte explicite)
- Lock app (PIN/biometric avant ouverture)
- Cacher icon dans launcher (option Android)
5. Legal Compliance
One-party consent (Chine) :
- ✅ Légal d'enregistrer conversations auxquelles tu participes
- ✅ Utilisable en procédure divorce (preuve mensonges/gaslighting)
- ⚠️ NE PAS enregistrer conversations privées autres (écoute clandestine)
Configuration Recommandée
Settings Optimaux MVP
const DEFAULT_CONFIG = {
// Audio
sampleRate: 16000, // 16kHz (voix quality)
channels: 1, // Mono
encoding: 'opus', // Compression efficace
// VAD
silenceThreshold: -40, // dB (ajustable)
silenceDuration: 30, // seconds before pause
// Storage
maxStorageGB: 5, // Auto-delete old si dépassé
autoDeleteDays: 30, // Recordings non-protected
// Security
encryption: true, // AES-256
requireAuth: true, // PIN/biometric
// UI
notificationText: "Audio Logger Active"
};
Priorité dans Timeline Globale
Cette Semaine (16-22 Décembre)
CRITIQUE (faire avant app) :
- ✅ Visa check (URGENT - today/tomorrow)
- ✅ Wise setup (protection actifs)
Parallèle : 3. AlwaysOnRecorder MVP (10-15h) + 40 applications freelance
Ordre recommandé :
- Lundi 16 : Visa check + Wise setup
- Mardi 17-Mercredi 18 : AlwaysOnRecorder dev (sprint 10-12h)
- Jeudi 19-Samedi 21 : 40 applications freelance + finalisation app
- Dimanche 22 : Review + test app en conditions réelles
Utilisation Prévue
Court Terme (Décembre-Janvier)
Objectif : Protection juridique divorce
Situations à enregistrer :
- Conversations avec Tingting (refus divorce, menaces, gaslighting)
- Négociations déménagement/argent
- Toute interaction potentiellement litigieuse
Extraction :
- Tag immédiatement après conversation importante
- Marquer "Protected" si besoin comme preuve
- Export vers Wise/cloud backup si critique
Long Terme (Post-Divorce)
Objectif : Mémoire conversationnelle générale
Use cases :
- Retrouver détails conversation professionnelle
- Journal audio personnel
- Recherche dans historique (avec transcription Phase 2)
- Archive vie quotidienne
Alternatives Considérées
| Solution | Avantages | Inconvénients | Verdict |
|---|---|---|---|
| Apps existantes (Call Recorder, etc.) | 0h dev, disponible maintenant | Pas de VAD smart, cloud forced, privacy concerns | ❌ Rejeté |
| Manual recording (phone app) | 0h dev, simple | Oubli fréquent, pas automatique, gaps | ❌ Trop unreliable |
| Hardware recorder (dictaphone) | Fiable, pas de battery phone | Device supplémentaire, pas searchable, pas encrypted | ❌ Moins pratique |
| Custom app (ce projet) | Control total, features sur mesure, long-term utility | 10-15h dev | ✅ Choisi |
Success Metrics
MVP Ready Si
- ✅ Enregistre automatiquement en background (foreground service)
- ✅ VAD fonctionne (pause silence > 30s)
- ✅ Files encryptés AES-256
- ✅ UI permet voir/taguer/exporter recordings
- ✅ Battery drain < 10%/heure
- ✅ Pas de crash pendant 8h recording continu
- ✅ Protected recordings ne peuvent pas être supprimés accidentellement
Phase 2 Ready Si
- ✅ Transcription automatique Whisper
- ✅ Recherche texte dans transcriptions
- ✅ Cloud backup optionnel
- ✅ Export formats multiples
Risques
Technique
| Risque | Probabilité | Impact | Mitigation |
|---|---|---|---|
| Android kill background service | 30% | HIGH | Foreground service + battery exemption |
| Battery drain excessif | 40% | MEDIUM | VAD optimisé + user config |
| Storage plein | 20% | LOW | Auto-delete + warnings |
| Découverte par Tingting | 50% | MEDIUM | App camouflage + lock |
Planning
| Risque | Probabilité | Impact | Mitigation |
|---|---|---|---|
| Dépasse 15h dev | 60% | LOW | Scope creep control, MVP strict |
| Détourne du freelance | 40% | HIGH | Time-boxing (max 15h), parallèle 40 apps |
| Procrastination disguisée | 30% | HIGH | Deadline hard : App ready avant 22 décembre |
Liens
Ressources Externes :
- React Native Audio : https://github.com/hyochan/react-native-audio-recorder-player
- Background Tasks : https://github.com/jamesmontemagno/react-native-background-actions
- Expo Audio : https://docs.expo.dev/versions/latest/sdk/audio/
- Whisper : https://github.com/openai/whisper
Projets Associés :
couple_backlog/14_decembre_2025_pivot_strategique.md(contexte)plan_discussion/plan_final_14_decembre_2025.md(timeline globale)
Créé : 16 décembre 2025 Type : Protection juridique + Life tool MVP Target : 22 décembre 2025 Long-term utility : Conversation memory, searchable archive