fix(mobile): audit conformité doc — rappels opt-in, garde-fou B4, palette web-fidèle - #364
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexte
Audit de conformité de
apps/mobilecontredocs/(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)eveningPhonepasse à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.docs/business-rules.md— pas de notif 16h30–21h) — le canal notification locale n'avait aucun garde-fou (contrairement au push serveur viaisTunnelHourIn), donc le rappel du soir par défaut (20h30) tombait dans la fenêtre. Ajout declampOutOfTunnel(): un rappel réglé dans le tunnel est décalé à 21h00 (fermeture). Appliqué aux deux fonctions de planification.config.ts: commentaire trompeur évoquant un « Stripe subscription flow » inexistant (Google Play interdit le steering paiement). Corrigé.phase4-companion.mdmises à jour.Palette (commit
style)theme.tsx: conversions OKLCH→sRGB fidèles deapps/web/src/app.css(:root+.dark) au lieu de valeurs approximées. Surfaces de callout via les recettescolor-mix(in oklab, …)du web (rgba translucide + bordures), foregrounds viacolor-mix(…, black|white).tip→ échelle accent gold,alert→ warning.Vérification
pnpm typecheck(apps/mobile) → 0 erreurNote :
apps/mobilen'a pas de runner de tests (tests dansapps/api), doncclampOutOfTunnelest exporté comme fonction pure pour un test unitaire ultérieur.Écarts restants (décisions produit, hors scope)
phase4-companion.md).🤖 Generated with Claude Code