Utilisateurs - Suppression de compte depuis l'écran « Votre compte », confirmée par mot de passe : arbres possédés et médias effacés, email retiré des contributions, sessions fermées partout. - Suppression d'arbre définitive, en base et sur le disque. - Ajout d'un frère ou d'une sœur relié aux parents existants ; relations parent et enfant corrigées en mode démo. - Liste d'attente retirée (route, envoi d'emails, dépendance Resend). Projet ouvert - CI : front, landing, backend avec vérification des migrations, test Docker de bout en bout. - Déploiement lancé seulement après une CI réussie sur main. - Image API : CLI Prisma installée à part pour que les migrations tournent au démarrage. - SECURITY.md, CONTRIBUTING.md, modèles d'issue et de pull request. - Migration renommée avec un nom descriptif, contenu identique. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
layout-bench
Outils de mesure de la galaxie, sur un arbre réel : comparaison des algorithmes de placement, sonde de performance, scénario de bout en bout du parcours compte, audit de la landing.
Installation
npm i
Récupérer un arbre de test
TREE_PASSWORD='...' npm run fixture -- <slug> [nom] récupère un arbre par le chemin visiteur (slug, mot de passe, graphe) dans fixtures/<nom>-graph.json. Le dossier fixtures/ est ignoré par git : ce sont les données d'une famille, elles ne quittent pas votre machine.
Placement
npm run bench: tous les modèles,npm run bench -- M0 M5pour filtrer par nom.FIXTURE=<nom>choisit l'arbre (défautfamille).node crop.mjs m5a <prénom> 3000 1100 0.8: recadrage autour d'une personne (largeur, hauteur, échelle).- Sorties dans
out/:<modèle>.svg/.png/.jsonetmetrics.json.
Chaque modèle de models/ exporte variants: [{ name, layout(graphData) }] et renvoie le format de computeLayout ({ result: { children, edges }, coupleBarMeta }) : un modèle se branche dans Galaxy.jsx sans toucher aux renderers. load.mjs importe le code du dépôt tel quel ; register.mjs ajoute le resolver des imports sans extension (style Vite).
Performance, parcours compte, landing
TREE_PASSWORD='...' node perf-probe.mjs <url d'un arbre>: temps main thread par frame au repos, en drag et en zoom, appels canvas par frame, profil CPU. Brave ou Chrome headless piloté en CDP.node e2e-account.mjs <front> <api>: scénario complet sur un backend local (lien partagé, compte créé, rattachement, contributions).CLEANUP=1supprime l'arbre de test.node landing-check.mjs <url>: titres, liens, formulaires et erreurs JS d'une page, avec capture.