# CHANGELOG — HormoneTrack Web > Journal des versions de l'**app web** (séparé du CHANGELOG Android — > `docs/CHANGELOG.md` à la racine du dépôt). Convention Keep a Changelog : > section la plus récente EN PREMIER ; ce fichier est lu par le dialog > « Nouveautés » de l'app web (fetch `docs/CHANGELOG.md`). ## [1.4.10] — 2026-09-08 Version initiale de la version web — portage navigateur de l'app Android v1.4.10, 100 % locale (données dans le localStorage, aucun serveur applicatif, aucune télémétrie). ### Moteur PK (fidèle à l'Android, testé) - **Trois modèles superposables** : Estrannaise (tables ODS de `pk_profiles.json`, même asset que l'app Android), Transfem Science (forme close V3C de la méta-analyse, 7 esters), WHSAH (fit license-free de Mona, 6 esters — PEP non couvert) + Bateman paramétrable (gel/patch/oral). - Pics de l'article TFS épinglés (±2 %) ; équilibre EV 5 mg/7 j = Figure 11 (Cmax 384 / Cmin 142 / Cavg 269) ; fidélité Mona WHSAH (EV 367,5 @ 1,69 j, EEn 187,9 @ 4,99 j, t½ 7,34 j). - Invariants Android préservés : bisection `computeKa` dans le bon sens (#19), modèle strict + extrapolation terminale ≥ 1 % du pic (#20/#21), lookup insensible à la casse (#22), conversion des labs T (#23/#26), garde de significativité de calibration (#61), créneaux de prévision passés sautés (#35), rappels sur la grille Posologie (#52). - Calibration **par période d'ester** et **par modèle affiché** (#60) : auto-calibration optionnelle (désactivée par défaut) + calibration manuelle par traitement ; k T par période d'ester. ### Fonctionnalités - Accueil : niveau actuel estimé (E2 pg/mL + T ng/mL) avec delta « vs il y a 6 h » réel (fix #53), cartes d'alerte de seuil, carte prochaine dose (jours au-delà de 24 h, fix v1.4.1), log rapide, mini-graphique 24 h. - Graphiques : 24 h/7 j/30 j, zoom 6 h → 300 j (pinch, molette, boutons, focal du pinch conservée), panoramique avec **cumul fractionnaire** des deltas (fix #62), prévision avec extension de fenêtre sans saut (fix #54) et horizon borné 30 j–1 an, toggles 3 modèles alignés sur les traitements (fix #58), pics/creux avec valeurs, marqueurs de doses réelles et projetées (fix #55), labels X à minuit local dans le fuseau choisi (v1.4.5), labs T convertis en ng/mL au rendu. - Doses : historique groupé par jour, Δ jours depuis la dose précédente du même traitement, édition (override d'ester par injection selon le modèle), en-tête « temps sous THS » (3 placeholders, bug #47 épinglé). - Analyses : prise de sang E2 + T en une entrée, groupement par timestamp, suppression par prise entière, unités T multiples (ng/mL, ng/dL, ng/L, nmol/L). - Traitements : 22 presets, éditeur complet (ester/modèle/Bateman, calibration, Posologie, rappel), traitement inactif = drapeau administratif (la simulation reste, bug v1.2.4). - Rappels web : notifications navigateur tant que la page est ouverte (bannière in-app + actions « Loguer maintenant » / « Reporter 1 h »). Limite documentée : pas de notification onglet fermé. - Seuils d'alerte : évaluation du niveau estimé, notification web, anti-spam par état persisté (même codec que l'app Android). - Sauvegarde JSON **compatible Android dans les deux sens** (BackupData v2, rétrocompat v1, import en mode écrasement avec IDs conservés) ; paramètres utilisateur transportés (langue, auto-cal, seuils). - Logs de diagnostic exportables (buffer 500 lignes, même format que l'app Android). - FR + EN (langue par app, indépendante du système), dialog « Nouveautés » après mise à jour. ### Processus - 121 tests Node (`node --test`) : profils ODS (pins ODS identiques à l'Android), fidélité TFS/WHSAH, moteur, calibration, backup (dont import des exports Android réels de `local-test-data/` si présents), helpers du graphique, alertes, rappels, changelog, store. - `scripts/check.sh` : syntaxe de tous les modules + cohérence i18n FR/EN + tests + smoke HTTP optionnel. - **Dépôt GIT SÉPARÉ** de l'app Android (HormoneTrack-web) — historique 100 % propre (aucune dette de confidentialité), versions alignées sur l'Android, changelogs totalement indépendants. ### Non porté (impossible ou hors périmètre navigateur) - Événements d'agenda récurrents (pas de CalendarProvider dans un navigateur) — l'éditeur affiche une note explicative. - Notifications quand l'onglet est fermé (aucun scheduler système côté web). - Verrou biométrique, widget — non implémentés non plus côté Android v1.