[M4] Scoring de similarité + suggestions automatiques d'identités liées #274

Closed
opened 2026-04-06 08:56:40 +00:00 by charles · 0 comments
Owner

Contexte

Quand deux puppet users de bridges différents semblent être la même personne (même nom, même numéro de téléphone), Fractal+ le suggère automatiquement.

Critères d'acceptation

  • similarity_score(a, b) -> f64 : Levenshtein normalisé sur le display_name (×0.4) + numéro de téléphone commun (×0.5) + même serveur de bridge (×0.1)
  • Score > 0.7 → suggestion automatique affichée à l'utilisateur
  • Pas de suggestion pour deux identités du même bridge type
  • Notification non-intrusive (bandeau ou toast) proposant de lier les identités
  • L'utilisateur peut ignorer/rejeter la suggestion (ne plus proposer pour cette paire)

Notes techniques

  • Refs spec : SF-M4-06, ST-M4-04
  • extract_phone() : extrait un numéro depuis display_name ou user_id
  • normalize_phone() : normalise en format E.164
  • Table SQLite ignored_suggestions (user_id_a, user_id_b) pour les rejets
  • Dépend de : issue M4 SQLite schema + models
## Contexte Quand deux puppet users de bridges différents semblent être la même personne (même nom, même numéro de téléphone), Fractal+ le suggère automatiquement. ## Critères d'acceptation - [ ] `similarity_score(a, b) -> f64` : Levenshtein normalisé sur le display_name (×0.4) + numéro de téléphone commun (×0.5) + même serveur de bridge (×0.1) - [ ] Score > 0.7 → suggestion automatique affichée à l'utilisateur - [ ] Pas de suggestion pour deux identités du même bridge type - [ ] Notification non-intrusive (bandeau ou toast) proposant de lier les identités - [ ] L'utilisateur peut ignorer/rejeter la suggestion (ne plus proposer pour cette paire) ## Notes techniques - Refs spec : SF-M4-06, ST-M4-04 - `extract_phone()` : extrait un numéro depuis display_name ou user_id - `normalize_phone()` : normalise en format E.164 - Table SQLite `ignored_suggestions (user_id_a, user_id_b)` pour les rejets - **Dépend de** : issue M4 SQLite schema + models
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#274
No description provided.