HormoneTrack-web/docs/CHANGELOG.md
Siphonight 491efef8eb v1.4.10 — portage initial de l'app Android v1.4.10
Portage navigateur complet de l'app Android HormoneTrack v1.4.10 :
- moteur PK fidèle (Estrannaise tables ODS, Transfem Science V3C,
  WHSAH fit Mona, Bateman) — paramètres identiques, invariants Android
  préservés (fixes #19-#23, #35, #52-#62), 121 tests Node épinglés
- calibration par période d'ester et par modèle affiché (#60/#61)
- UI 6 écrans + éditeur, CurveChart Canvas (zoom/pan fractionnaire,
  prévision, pics/creux, fuseau configurable), rappels web
  (Notification API), seuils d'alerte, i18n FR/EN
- sauvegarde JSON v2 compatible Android bidirectionnelle (rétrocompat v1)
- 100 % local : localStorage, aucun serveur applicatif, aucune télémétrie
- processus : scripts/check.sh (syntaxe, i18n, tests, E2E navigateur,
  smoke HTTP), docs séparées (README + DEVELOPPEMENT + CHANGELOG)
- dépôt GIT SÉPARÉ de l'Android : historique 100 % propre, versions
  alignées sur l'Android porté, changelogs indépendants

Non porté (impossible dans un navigateur, documenté §12) : agenda
récurrent, notifications onglet fermé, montre.
2026-09-08 14:34:58 +02:00

84 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.