Commit Graph
321 Commits
Author SHA1 Message Date
IliesAllali 23d3f81930 Merge remote-tracking branch 'origin/main' into chore/nettoyage-2026-11-12 2026-11-12 13:49:10 +01:00
IliesAllaliandClaude Opus 5.5 652fe49e8d Souvenirs : une vidéo YouTube se colle sous toutes ses formes
Le champ « Un lien YouTube » acceptait tout lien en youtube.com, mais la
visionneuse ne lisait que watch?v= et youtu.be : un lien d'intégration
(/embed/), un Short ou un direct s'enregistrait puis s'affichait « Lien
YouTube invalide », et le code <iframe> du bouton Intégrer était refusé.

Une seule fonction (utils/youtube.js) retrouve l'identifiant de la vidéo
dans le lien de la barre d'adresse, de partage, d'intégration, nocookie,
un Short, un direct ou le code <iframe> complet. La saisie enregistre
toujours le lien watch?v= et la visionneuse s'appuie sur la même fonction,
donc les liens /embed/ déjà enregistrés se lisent aussi.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 13:37:18 +01:00
IliesAllaliandClaude Fable 5.2 3b156f926e Nettoyage : react.svg du gabarit Vite retiré
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 13:01:00 +01:00
IliesAllaliandClaude Fable 5.2 70229a5827 Nettoyage : doublons regroupés, composant et traductions sans lecteur, backend
- utils/richText.jsx : withEmphasis et richText, écrits six fois dans les composants
- useAuth : openSession, commun à la connexion et à l'inscription
- TreeDropdown retiré (rendu nulle part, tenu par un seul test), 52 entrées du dictionnaire anglais sans texte dans le code
- backend : sealed-secret.ts (chiffrement commun au mot de passe de partage et à la clé Immich), cleanGedcomPlace en un exemplaire, fonctions sans appelant (recordTreeUnlockFailure, resetOidcConfiguration, readMediaPeople, annotationPhotoRelativePath), exports internes refermés

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 12:58:24 +01:00
IliesAllaliandClaude Fable 5.2 4c80dea44a Nettoyage frontend : styles et fonctions sans appelant, drapeau ?layout=sugiyama, en-tête d'autorisation partagé
- CSS : règles des anciens écrans (assistant de création, gestionnaire de souvenirs, réglages, lecteur vidéo), keyframes et variable sans lecteur
- Fonctions sans appelant : mockData (3), treeApi (stats, audit), getMediaToken, drawPathLabel, NavButton
- Fichiers-barils navbar/ et search/ remplacés par des imports directs
- Galaxy : le placement par blocs est le seul chemin
- api/client.js : bearer(token) remplace 59 en-têtes écrits à la main ; import dynamique inutile de client.js retiré

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 12:51:56 +01:00
IliesAllali f8d1a48240 Merge pull request #222 from fridgee1/feat/plusieurs-langues
Langues : liste de langues au lieu du seul couple français/anglais
2026-11-11 13:41:44 +01:00
IliesAllaliandClaude Opus 5.5 5b18229a97 Placement : plusieurs conjoints isolés ne se chevauchent plus
Une personne avec deux conjoints isolés ou plus (sans parent ni enfant
dans l'arbre) voyait leurs petits portraits s'enchaîner à 40 px : noms
et dates les uns sur les autres, chacun collé au précédent. Le petit
portrait reste collé à son conjoint ; à côté d'un autre conjoint, l'écart
normal revient. Le cas d'un seul conjoint isolé ne bouge pas.

Banc : deux archétypes (plusieurs-petits-conjoints, trois-petits-conjoints).
L'invariant « couples séparés » ne compte plus une personne à trois
conjoints ou plus : elle n'en touche que deux sur sa rangée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 12:30:23 +01:00
SebastianandClaude Opus 5.5 94c38bdeb9 Langues : le choix de langue échappe à la traduction du navigateur
La traduction automatique (Chrome, Vivaldi…) transformait « FR · EN » en
mots (« EN » → « IN ») sur une page affichée dans une autre langue que celle
du navigateur.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Sebastian <fridgee@duck.com>
2026-11-10 18:45:32 +01:00
SebastianandClaude Opus 5.5 3bd3df4627 Langues : liste de langues au lieu du seul couple français/anglais (#221)
LANGUAGES décrit chaque langue (nom, région des dates, dictionnaire) ; la
détection, la région des dates, le bouton de choix et les liens d'aide
s'en servent. Un texte absent d'un dictionnaire retombe sur l'anglais, puis
sur le français. Rien ne change pour le français et l'anglais.

Le test exige toujours l'anglais ; pour les autres langues, il signale les
textes pas encore traduits sans échouer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Sebastian <fridgee@duck.com>
2026-11-10 18:45:32 +01:00
IliesAllaliandClaude Opus 5.5 3fefb4542e Parenté : demi-frère et quasi-frère (#218)
Un enfant du conjoint d'un parent était nommé « Brother-in-law » en anglais,
et un enfant d'un seul parent en commun « Brother ». Le nommage lit
maintenant la suite des pas : up,down = demi (Half-brother, Demi-frère),
up,spouse,down = Stepbrother en anglais ; le français garde Beau-frère,
usage courant pour le quasi-frère.

Closes #218

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 11:44:40 +01:00
IliesAllali 92e3c74673 Revert "Merge pull request #217 from IliesAllali/feat/onglets-nom-et-proches"
This reverts commit 82ae5e289d, reversing
changes made to 09b2acf4fe.
2026-11-07 01:54:20 +01:00
IliesAllali 4a447c7aef Revert "Merge pull request #219 from IliesAllali/feat/onglets-par-nom"
This reverts commit 4544edde6f, reversing
changes made to 82ae5e289d.
2026-11-07 01:54:19 +01:00
IliesAllali 79df032f10 Revert "Merge pull request #220 from IliesAllali/feat/reglages-arbre-onglets"
This reverts commit 97966054ac, reversing
changes made to 4544edde6f.
2026-11-07 01:54:19 +01:00
IliesAllaliandClaude Opus 5.5 e787e4488e onglets : « Tout l'arbre » seulement si coché, sinon la famille de la personne de départ s'ouvre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 01:40:50 +01:00
IliesAllaliandClaude Opus 5.5 1256f09c8f nettoyage : l'ancien découpage par largeur retiré du placement, des pastilles, de la barre et du CSS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 01:18:18 +01:00
IliesAllaliandClaude Opus 5.5 5eb1d9e7bd Tout l'arbre : plus aucune belle-famille réduite derrière une pastille quand l'arbre est dessiné en entier
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 01:14:13 +01:00
IliesAllaliandClaude Opus 5.5 b89ceb4e00 réglages : curseur du seuil, onglets créés affichés en direct
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 00:45:15 +01:00
IliesAllaliandClaude Opus 5.5 61d9bcc328 réglages : « À partir de N personnes au même nom »
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 00:11:32 +01:00
IliesAllaliandClaude Opus 5.5 8f770371fb réglages : seuil des onglets sur une ligne
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 00:10:37 +01:00
IliesAllaliandClaude Opus 5.5 8cbe5ce262 onglets par nom : repère pris à l'écran, pas de doublon de Tout l'arbre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 00:08:43 +01:00
IliesAllaliandClaude Opus 5.5 9b77cca771 onglets : un onglet par nom de famille, seuil réglable, ancien découpage par largeur retiré
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 00:04:25 +01:00
IliesAllaliandClaude Opus 5.5 642b6020c3 onglets : les porteurs du nom dans leur famille, proches de l'autre côté réglables
Un enfant d'un membre qui porte le nom d'un onglet entre dans cet onglet (nom de naissance d'abord,
homonymes sans lien laissés dehors), avec son couple ; l'autre parent est estompé. Nouveau réglage
d'affichage : proches de l'autre côté à 0, 1, 2 ou 3 liens, 1 par défaut. Libellés des réglages
d'affichage réécrits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:12:21 +01:00
dependabot[bot] 09b2acf4fe build(deps): bump the frontend-minor-patch group (#216)
Bumps the frontend-minor-patch group in /frontend with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@lucide/icons](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide) | `1.61.0` | `1.66.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.61.0` | `1.66.0` |
| [posthog-js](https://github.com/PostHog/posthog-js) | `1.438.21` | `1.444.0` |
| [eslint](https://github.com/eslint/eslint) | `10.13.0` | `10.14.0` |
| [globals](https://github.com/sindresorhus/globals) | `17.13.0` | `17.14.0` |


Updates `@lucide/icons` from 1.61.0 to 1.66.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.66.0/packages/lucide)

Updates `lucide-react` from 1.61.0 to 1.66.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.66.0/packages/lucide-react)

Updates `posthog-js` from 1.438.21 to 1.444.0
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.438.21...posthog-js@1.444.0)

Updates `eslint` from 10.13.0 to 10.14.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.13.0...v10.14.0)

Updates `globals` from 17.13.0 to 17.14.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.13.0...v17.14.0)

---
updated-dependencies:
- dependency-name: "@lucide/icons"
  dependency-version: 1.66.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: lucide-react
  dependency-version: 1.66.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: posthog-js
  dependency-version: 1.444.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: eslint
  dependency-version: 10.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: globals
  dependency-version: 17.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-06 12:20:06 +01:00
IliesAllaliandClaude Opus 5.5 ef620c9cb5 mesure : copie du lien de partage, page vie privée à jour
share_copied quand le propriétaire copie le lien, le mot de passe ou le message d'invitation
(what, seasonal pour le message de Noël), ou crée le lien d'un co-gestionnaire (manager_invite).
Rien de ce qui est copié ne part. La page vie privée (fr, en) décrit maintenant tout ce que l'app
mesure : démo, modifications comptées sans leur contenu, propositions, partage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 19:32:10 +01:00
IliesAllaliandClaude Opus 5.5 332b5711ff mesure : proposal_sent pour toutes les propositions
L'événement ne partait que de la fenêtre d'envoi (App.jsx) : les raccourcis de la fiche passent par
handleSubmitContributionSession sans lui, d'où zéro proposal_sent en 60 jours pour deux propositions
relues. L'événement part maintenant de la fonction commune, après réponse du serveur, avec le statut
(pending, ou approved pour un co-gestionnaire).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 19:24:19 +01:00
IliesAllaliandClaude Opus 5.5 2c7e5361cc texte : l'invitation de Noël parle aussi de la voix
Le message d'invitation de décembre (SIGNUP_PROMPTS) propose d'enregistrer
une histoire de famille racontée à table, en plus des vieilles photos.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 18:09:16 +01:00
IliesAllaliandClaude Opus 5.5 98de13aaa0 deps(front): minimatch 11 pour eslint (alerte Dependabot #24)
minimatch < 11.0.1 (déni de service par amplification des globparts). Seul eslint
en dépend, outillage de dev ; Dependabot ne peut pas monter la version lui-même
(eslint demande ^10), d'où l'override. Lint, 359 tests, build, npm audit à 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 17:29:36 +01:00
IliesAllaliandClaude Opus 5.5 43dda9c962 fix(vie): les photos d'un mariage se voient chez les deux conjoints (#209)
Le moment du couple arrivait bien chez les deux, mais ses souvenirs n'étaient cherchés
que parmi ceux de la fiche ouverte. L'onglet Vie et la fenêtre d'un moment du couple
lisent aussi les souvenirs du conjoint ; une photo du conjoint s'ouvre à son nom.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 16:41:16 +01:00
IliesAllaliandClaude Opus 5.5 69b08116cf i18n(en): Partner à la place de Spouse sur la fiche et l'arbre
Même mot que les liens de parenté depuis #204 : « spouse » suppose un mariage,
« conjoint » non.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 16:39:13 +01:00
IliesAllali 419fa4cda0 Merge pull request #204 from Arc676/cousins
Fix some English relations
2026-11-04 16:38:05 +01:00
IliesAllaliandClaude Opus 5.5 0ef5d08fec feat(demo): « Créer mon arbre » en bouton noir de la barre, « Modifier » en clair
Dans la démo, l'inscription n'était que dans le menu du rond de profil et dans un
lien après une modification. Elle devient le bouton noir de la barre du bas ;
« Modifier » reste à côté en clair (crayon seul sur téléphone) et quitte le noir.
« Créer mon arbre » quitte le menu du rond pour ne pas apparaître deux fois.

Seulement sur l'instance qui invite à s'inscrire (SIGNUP_PROMPTS, inscription
ouverte), sans compte, et pas dans la démo intégrée à la landing (?embed).
Clic suivi : create_account_clicked, via=demo-barre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 16:48:17 +01:00
IliesAllaliandClaude Opus 5.5 0cf851475f fix(entree): un lien de diffusion (?source=) sans session ouvre la démo
Depuis l'accueil à deux choix (18/10), un visiteur sans session arrivé par
app.parenthese.io/?source=… tombait sur « Que voulez-vous faire ? » au lieu
de l'arbre d'exemple. Tous les liens de diffusion (presse, créateurs, groupes)
sont écrits sans ?demo, dont plusieurs déjà envoyés.

Sans session et avec ?source : la démo, comme avant. Sans paramètre : l'accueil
à deux choix reste. ?account=register et les liens de famille ne changent pas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 16:26:02 +01:00
IliesAllaliandClaude Opus 5.5 7fee10478d kinship en : 4th cousin, great-uncle, sans virgule avant « removed »
- ordinal() : il manquait le $, un cousin au 4e degré s'affichait « {n}th cousin »
- Great-uncle et great-great-uncle, la forme courante, au lieu de granduncle
- « First cousin once removed », sans virgule
- Style du dépôt (guillemets simples, sans points-virgules)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:41:25 +01:00
IliesAllaliandClaude Opus 5.5 f990e1c5de Miniatures de portrait : le recadrage s'applique partout (#205)
Seuls l'arbre et la fiche appliquaient le cadrage enregistré du portrait. Les miniatures
(auteur et « Sur la photo » dans la visionneuse, recherche, liens de la fiche, ajout d'un
proche, compte, menu du compte, choix d'un souvenir, recherche ailleurs) affichaient la
photo brute. Un composant commun, PortraitThumb, place l'image avec imagePlacement,
comme la fiche. Signalé par Phyll sur Discord (29/10).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 19:51:53 +01:00
IliesAllaliandClaude Opus 5.5 1565552141 Plusieurs prénoms dans le champ Prénom : « Paul, Marie, Jean » crée trois enfants (#203)
Pour un enfant ou un frère, une virgule sépare les prénoms : une personne par prénom, mêmes liens,
nom et dates pour chacune (vides et doublons ignorés, 20 au plus). Parent et conjoint gardent un seul
prénom. Vaut pour le propriétaire, la famille (brouillons) et la démo ; la bulle dit « Paul, Marie et
Jean … sont sur l'arbre ». Sur téléphone, aucune fiche ne s'ouvre et la caméra cadre toute la fratrie
(focusPersons dans Galaxy, qui attend la remise en place de l'arbre). person_added porte batch.

Le corps de l'ajout passe dans addOne : relire avec git diff -w.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 19:20:59 +01:00
Arc676/Alessandro Vinciguerra 568db606da kinship: implement g-rule
Allow arbitrary depth

Signed-off-by: Arc676/Alessandro Vinciguerra <alesvinciguerra@gmail.com>
2026-11-01 12:06:21 +01:00
Arc676/Alessandro Vinciguerra 24e7ea1994 kinship: use nibling
Signed-off-by: Arc676/Alessandro Vinciguerra <alesvinciguerra@gmail.com>
2026-11-01 11:27:46 +01:00
Arc676/Alessandro Vinciguerra e0f7eb4913 kinship: compute cousin type by degree and removal
Signed-off-by: Arc676/Alessandro Vinciguerra <alesvinciguerra@gmail.com>
2026-11-01 10:40:54 +01:00
Arc676/Alessandro Vinciguerra e2468f6d39 kinship: use partner in english
Signed-off-by: Arc676/Alessandro Vinciguerra <alesvinciguerra@gmail.com>
2026-11-01 10:40:10 +01:00
IliesAllaliandClaude Opus 5.5 e596887a44 Invitations à créer son arbre, coupées en auto-hébergement (SIGNUP_PROMPTS) (#202)
- La famille sans compte trouve « Faire le mien » en bas du menu Ajouter ; la ligne quitte le menu du
  compte. Après l'inscription, l'arbre de la famille est rattaché et l'assistant de création s'ouvre.
- Démo : les messages des liens et la bulle après « Enregistrer et quitter » proposent l'inscription
  (lien cliquable, message gardé 6 s). La démo lit aussi les options de l'instance.
- Message d'invitation de Noël du 1er décembre au 6 janvier.
- SIGNUP_PROMPTS (API, /auth/options.signupPrompts) : éteint par défaut, allumé pour l'instance hébergée
  dans ecosystem.config.cjs, toujours coupé quand l'inscription est fermée. README, .env.example, OpenAPI.
- Mesures : via sur create_account_clicked et account_screen_viewed, source arbre-partage ou demo
  quand l'adresse n'en porte pas.
- « Quitter l'édition ? » dans la démo ne dit plus que les modifications restent sur l'appareil :
  la démo n'enregistre rien et tout disparaît au rechargement.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 18:17:59 +01:00
IliesAllaliandClaude Opus 5.5 473414744d Aperçu des liens partagés : balises Open Graph fixes pour l'app (#201)
Un lien d'arbre ou de démo collé dans WhatsApp ou Messenger s'affichait sans
image, avec pour seul texte la description destinée aux moteurs. L'app sert
désormais les mêmes balises pour toutes ses adresses : un titre, une phrase et
l'image de la démo (copie de celle de la landing). Rien ne vient de l'arbre
partagé, aucun nom de famille ne part chez les robots d'aperçu.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 18:06:41 +01:00
IliesAllaliandClaude Opus 5.5 cd6dfc6955 Enfant ajouté à une personne qui n'a qu'un conjoint : enfant du couple (#200)
Avant, « + Enfant » sur la fiche d'Isabelle (un seul conjoint, Robert) rattachait l'enfant à Isabelle seule :
il pendait sous elle et un parent « Inconnu », loin de ses frères et sœurs. Il passe maintenant par les liens
du couple (getCoupleParentLinks), comme un frère ou une sœur, pour la démo, la famille qui propose et le
propriétaire. Sans conjoint, avec plusieurs conjoints, ou en adoption : l'enfant reste au seul parent choisi.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 14:44:23 +01:00
IliesAllaliandClaude Opus 5.5 f595af581a Téléphone : plus de réglette de zoom, la loupe seule reste (on zoome à deux doigts) (#199)
La notification n'a plus à se décaler pour l'éviter.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 14:35:38 +01:00
IliesAllaliandClaude Opus 5.5 b803f6291d Fiche : « – 1995 » ne se coupe plus après le tiret ; bouton loupe nommé « Zoomer »
Une espace insécable seule ne suffit pas : Chrome coupe après un tiret demi-cadratin. Le gluon U+2060
devant l'espace insécable garde « – 1995 » d'un bloc (vu sur la fiche de Robert, démo, 1440 px).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 13:43:45 +01:00
IliesAllaliandClaude Opus 5.5 c1734501ae Onglets de familles : noms, repère et liens entre onglets (#192)
- Nom d'un onglet : le nom le plus porté par ses membres (naissance, sinon usage), et non plus celui
  de la seule personne de référence. Deux onglets
  au même nom : le plus petit prend le nom suivant le plus porté chez lui, les prénoms de la charnière
  en dernier recours.
- Changer d'onglet garde la personne charnière à sa place et à son zoom : seules les familles autour changent.
- Survol d'un onglet : la charnière s'allume dans l'arbre affiché (halo de la recherche), sans texte.
- Barre rangée comme l'arbre (chaque famille après celle par laquelle on y entre), groupée par branche
  (10 px dans une branche, 16 px entre branches), trait d'union entre deux onglets dont le second part
  du premier, terracotta sur le chemin de l'onglet ouvert.
- Pastille de retour : même place que celle de l'aller, flèche retournée (« ‹ Famille X · n »).
- Nombre d'un onglet : « n personnes » au survol.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 13:08:25 +01:00
dependabot[bot] 1c78c043bd build(deps): bump the frontend-minor-patch group (#195)
Bumps the frontend-minor-patch group in /frontend with 4 updates: [@lucide/icons](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide), [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react), [posthog-js](https://github.com/PostHog/posthog-js) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@lucide/icons` from 1.59.0 to 1.61.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.61.0/packages/lucide)

Updates `lucide-react` from 1.59.0 to 1.61.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.61.0/packages/lucide-react)

Updates `posthog-js` from 1.438.12 to 1.438.21
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.438.12...posthog-js@1.438.21)

Updates `vite` from 8.3.4 to 8.3.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: "@lucide/icons"
  dependency-version: 1.61.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: lucide-react
  dependency-version: 1.61.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: posthog-js
  dependency-version: 1.438.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: vite
  dependency-version: 8.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-29 12:24:08 +01:00
IliesAllaliandClaude Opus 5.5 d013c8b8fc Âge : l'anniversaire compte une fois passé (#198)
L'âge d'une personne vivante était l'année en cours moins l'année de naissance : né en décembre,
on prenait un an dès janvier. Même défaut pour l'âge au décès et les âges de l'onglet Vie.
Quand les deux dates sont complètes, l'âge se compte au jour près (utils/age.js) ; une année seule
garde la différence des années.

Fixes #198

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 12:23:45 +01:00
IliesAllali ba6f63ff09 Merge pull request #190 from IliesAllali/feat/vie-couples
Life tab: neutral couple label, couple date and place, names link to people
2026-10-28 08:28:51 +01:00
IliesAllaliandClaude Opus 5.5 1fae061a2d Onglet Vie : « En couple avec » sauf mariage dit, date et lieu d'un couple, prénoms en liens
Un couple naît « mariage » dès qu'un enfant a deux parents : la frise disait « Épouse X » pour tous.
Elle dit maintenant « En couple avec X », et « Mariage avec X » seulement quand c'est dit (date, lieu ou
documents de mariage, case cochée). Toucher la ligne d'un couple (administrateur) ouvre sa fiche avec
« C'était un mariage », la date (même approximative) et le lieu ; PATCH /unions accepte startPlace et
startDatePrecision. Le prénom d'un proche (conjoint, enfant, frère ou sœur, parent) ouvre sa fiche et
amène la caméra sur lui.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 08:26:24 +01:00
IliesAllaliandClaude Opus 5.5 e39c33f977 Téléphone : l'arbre d'abord à l'arrivée, la personne touchée remonte au-dessus de la fiche (#188)
Sur téléphone, la fiche de la personne de départ ne s'ouvre plus à l'arrivée : elle couvrait le bas de
l'écran et la personne avec, laissant un écran vide. La personne de départ arrive à 40 % de la hauteur
au lieu de 56 %. Toucher quelqu'un dans l'arbre le remonte dans le tiers du haut, au-dessus de la fiche,
comme le fait déjà la recherche (focusPerson). Ordinateur inchangé.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 08:15:51 +01:00