Skip to content

fix(parent): les faits difficiles comptent aussi les erreurs des révisions bonus - #70

Merged
isc merged 1 commit into
mainfrom
claude/sessions-results-inconsistency-qmmze3
Jul 21, 2026
Merged

fix(parent): les faits difficiles comptent aussi les erreurs des révisions bonus#70
isc merged 1 commit into
mainfrom
claude/sessions-results-inconsistency-qmmze3

Conversation

@isc

@isc isc commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Problème

Dans l'espace parent, le graphe « Taux de bonnes réponses » montrait plusieurs séances < 100 % sur les 10 dernières séances, mais la section « Faits les plus difficiles » (« Sur les 10 dernières séances ») ne remontait quasiment aucune erreur.

Cause

Les deux affichages ne lisaient pas la même source :

  • Le taux de réussite vient de sessionHistory (correctCount/questionsCount), qui compte toutes les questions, révisions bonus comprises.
  • getHardestFacts comptait les erreurs depuis fact.history — or les révisions bonus ne passent pas par processAnswer (App.tsx : if (item.isBonusReview) return;) et ne sont donc jamais écrites dans fact.history.

Comme les révisions bonus ciblent en priorité les faits les plus fragiles (boîte 1 d'abord), ce sont précisément les erreurs les plus probables qui disparaissaient de la liste.

Fix

getHardestFacts compte désormais les erreurs depuis les logs par-question de sessionHistory[].questions — la même source que le graphe — sur exactement les N dernières séances, révisions bonus incluses. Le fix est rétroactif : les logs existent depuis juin 2026, les données déjà en localStorage s'affichent donc correctement dès la mise à jour.

Repli sur l'ancien comptage fact.history (avec cutoff de date) pour les profils dont aucune séance de la fenêtre n'a de log (séances antérieures à la feature), pour ne pas vider la section chez eux.

Aussi

  • Nouveaux tests src/__tests__/hardestFacts.test.ts (6 cas : erreurs bonus, fenêtre, cumul/tri, mapping division a=diviseur, b=quotient, limit/exclusion des 0 erreur, repli legacy).
  • Entrée changelog in-app (fr/en) datée 2026-07-20 — bug remarqué par le parent dans son tableau de bord.

tsc -b OK, 217 tests passent.

🤖 Generated with Claude Code

https://claude.ai/code/session_01N4MSPVG36Eg7ezX13FD7qZ


Generated by Claude Code

…sions bonus

Le taux de bonnes réponses d'une séance (correctCount/questionsCount)
inclut les révisions bonus, mais getHardestFacts comptait les erreurs
depuis fact.history — où les révisions bonus ne sont jamais écrites
(pas de changement Leitner, cf. App.tsx isBonusReview). Résultat : des
séances visiblement < 100 % au graphe, mais presque aucune erreur dans
« Faits les plus difficiles » — précisément parce que les révisions
bonus ciblent les faits les plus fragiles, donc les plus ratés.

Le comptage se fait désormais depuis les logs par-question de
sessionHistory (même source que le graphe), sur exactement les N
dernières séances, révisions bonus comprises. Repli sur l'ancien
comptage fact.history pour les profils dont aucune séance de la
fenêtre n'a de log (séances antérieures à la feature).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4MSPVG36Eg7ezX13FD7qZ
@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Preview supprimée (PR fermée). Les URLs ne sont plus accessibles.

@isc
isc marked this pull request as ready for review July 21, 2026 10:29
@isc
isc merged commit 20af0f6 into main Jul 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants