• v1.4.10 Stable

    Siphonight released this 2026-09-08 14:34:58 +02:00 | 30 commits to main since this release

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