Skip to content

fix(mobile): audit conformité doc — rappels opt-in, garde-fou B4, palette web-fidèle - #364

Merged
DamienBattistella merged 2 commits into
mainfrom
fix/mobile-conformity-palette
Jul 17, 2026
Merged

fix(mobile): audit conformité doc — rappels opt-in, garde-fou B4, palette web-fidèle#364
DamienBattistella merged 2 commits into
mainfrom
fix/mobile-conformity-palette

Conversation

@DamienBattistella

Copy link
Copy Markdown
Collaborator

Contexte

Audit de conformité de apps/mobile contre docs/ (facturation/Play Store, périmètre features, règles métier/RGPD). La facturation est conforme (zéro paiement natif, aucun lien checkout). Trois écarts nets corrigés ici + refresh palette.

Corrections

Conformité (commit fix)

  • RGPD §7 — le rappel du soir sur le téléphone était activé par défaut (opt-out). eveningPhone passe à false : rappels opt-in, alignés sur les prefs compte. Le parent active depuis l'encart dashboard, le toggle Matin/Soir du compagnon, ou Réglages.
  • Règle B4 (docs/business-rules.md — pas de notif 16h30–21h) — le canal notification locale n'avait aucun garde-fou (contrairement au push serveur via isTunnelHourIn), donc le rappel du soir par défaut (20h30) tombait dans la fenêtre. Ajout de clampOutOfTunnel() : un rappel réglé dans le tunnel est décalé à 21h00 (fermeture). Appliqué aux deux fonctions de planification.
  • Nit facturationconfig.ts : commentaire trompeur évoquant un « Stripe subscription flow » inexistant (Google Play interdit le steering paiement). Corrigé.
  • Docs phase4-companion.md mises à jour.

Palette (commit style)

  • theme.tsx : conversions OKLCH→sRGB fidèles de apps/web/src/app.css (:root + .dark) au lieu de valeurs approximées. Surfaces de callout via les recettes color-mix(in oklab, …) du web (rgba translucide + bordures), foregrounds via color-mix(…, black|white). tip → échelle accent gold, alert → warning.

Vérification

  • pnpm typecheck (apps/mobile) → 0 erreur
  • Build release + install sur appareil physique OK (APK auto-contenu debug-signé)

apps/mobile reste hors workspace pnpm racine / hors CI JS — ce PR est mobile-only, n'impacte pas la CI web/api/db/validators.

Note : apps/mobile n'a pas de runner de tests (tests dans apps/api), donc clampOutOfTunnel est exporté comme fonction pure pour un test unitaire ultérieur.

Écarts restants (décisions produit, hors scope)

  • Build par défaut = full-app au lieu du compagnon 3 écrans (assumé transitoire par phase4-companion.md).
  • Ambiguïté doc « Récompenses ».
  • Barkley : complétion par quiz sans notes personnelles par étape.

🤖 Generated with Claude Code

Wifsimster and others added 2 commits July 17, 2026 12:37
Convert theme.tsx to faithful OKLCH→sRGB conversions of apps/web/src/
app.css (:root + .dark) instead of hand-eyeballed values. Callout
surfaces now reproduce the web's color-mix(in oklab, …) recipes as
translucent rgba fills + borders, foregrounds from color-mix(…,black|
white). tip → accent gold scale, alert → warning. Core surfaces already
matched; this pins every token to its source --var.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ing comment

Audit of apps/mobile vs docs/ surfaced three net gaps (billing/Play
Store conformity was otherwise clean):

- RGPD §7: the phone evening reminder defaulted ON (opt-out). Flip
  eveningPhone default to false — reminders are opt-in, matching the
  account preferences. Parent enables via dashboard prompt / companion
  toggle / Réglages.
- Business rule B4 (no notification 16h30–21h): the local notification
  channel had no tunnel guard (unlike server push via isTunnelHourIn),
  so the 20h30 evening reminder fired inside the window. Add
  clampOutOfTunnel() — a reminder configured in the tunnel is pushed to
  its 21h00 close. Applied to both schedule functions.
- config.ts: WEB_URL comment falsely claimed a "Stripe subscription
  flow"; no code does that (Play forbids external payment steering).
  Corrected to reflect its real use (web feature pages, read-only).

Docs updated (phase4-companion.md) to match. pnpm typecheck → 0 errors.
Note: apps/mobile has no test runner, so clampOutOfTunnel is exported
pure for later unit testing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@DamienBattistella
DamienBattistella merged commit 3403b6a into main Jul 17, 2026
1 check passed
@DamienBattistella
DamienBattistella deleted the fix/mobile-conformity-palette branch July 17, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants