From 478a7ffc968279818f3febbd84ca01ec65900627 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 22 Apr 2026 11:55:40 +0200 Subject: [PATCH] fix(VocabPracticeDialog): adjust success tracking for hard-phase drills - Updated the success tracking logic to prevent inflating normal success counters during hard-phase drills, ensuring accurate representation of user progress. - Introduced a condition to separate tracking for hard-phase activities, enhancing the integrity of vocabulary rotation and user experience. --- .../src/dialogues/socialnetwork/VocabPracticeDialog.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/dialogues/socialnetwork/VocabPracticeDialog.vue b/frontend/src/dialogues/socialnetwork/VocabPracticeDialog.vue index 39e09f9..e0a54c6 100644 --- a/frontend/src/dialogues/socialnetwork/VocabPracticeDialog.vue +++ b/frontend/src/dialogues/socialnetwork/VocabPracticeDialog.vue @@ -933,8 +933,13 @@ export default { if (!id) return; const st = this.perId[id] || { c: 0, w: 0, streak: 0, lastAsked: 0 }; if (isCorrect) { - st.c += 1; - st.streak = st.streak >= 0 ? st.streak + 1 : 1; + // Hard-phase drills are tracked separately via hardMasteryByKey. + // We avoid inflating normal success counters here, otherwise the + // graduated vocab can become too unlikely in regular rotation. + if (!this.hardPhaseActive) { + st.c += 1; + st.streak = st.streak >= 0 ? st.streak + 1 : 1; + } if (this.hardPhaseActive && this.current) { const key = this.getHardKey(this.current); this.hardMasteryByKey[key] = Math.max(0, Number(this.hardMasteryByKey[key]) || 0) + 1;