fix: show all tasks in widget (#23) #24
No reviewers
Labels
No labels
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/simpl-liste#24
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/simpl-liste-23-widget-task-count"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problème
Le widget affichait une liste incomplète de tâches :
Cause
Deux problèmes dans le code du widget :
widgetSync.ts: le filtrelte(dueDate, twoWeeksEnd)excluait les tâches avec une date > 2 semainesTaskListWidget.tsx:tasks.slice(0, maxItems)limitait l'affichage à 8 items (Large) / 4 (Medium), mais le compteur affichaittasks.length— causant une incohérenceFix
maxItemsslice → laListWidgetscrollable affiche toutes les tâchesFixes #23
Reviewer automatique — needs-fix
Le fix retire la limite maxItems (corrige le 8 vs 9), mais le défaut widgetPeriodWeeks=2 ne résout pas le cas de la tâche à date éloignée — l'utilisateur devrait découvrir le nouveau réglage pour voir ses 10 tâches. De plus, l'ajout d'une UI de configuration complète est du scope creep par rapport à l'issue qui demande simplement d'afficher toutes les tâches.
Suggestions de simplification
Problèmes détectés
widgetPeriodWeeks: 2ne résout pas l'issue. L'utilisateur rapporte que la tâche à date éloignée n'apparaît pas — avec un défaut de 2 semaines, elle restera invisible. Le défaut devrait être0(toutes les tâches) pour réellement corriger le bug rapporté, ou simplement retirer le filtre de période sans ajouter de configuration.settings?.state?.widgetPeriodWeeksdépend de la structure interne de persistance de Zustand ({ state: { ... } }). Si le middleware change de format, cette lecture échouera silencieusement et tombera sur le défaut 2. Extraire le nom de la clé et la structure dans une constante partagée, ou exposer une fonction utilitaire depuis useSettingsStore pour lire la valeur hors contexte React.Reviewer automatique — needs-fix
Le défaut widgetPeriodWeeks=0 et le retrait de maxItems résolvent l'issue originale. Cependant, retirer TOUT plafond de tâches dans le widget est risqué (crash mémoire Android), la clé i18n 'widget.title' semble manquante, et aucun test n'est ajouté.
Suggestions de simplification
Problèmes détectés
const displayTasks = tasks.slice(0, 30);et utiliser displayTasks dans le rendu.t('widget.title')(ligne 308) mais ni fr.json ni en.json n'ajoutent la clé 'title' dans le bloc widget. Si elle n'existait pas déjà, l'UI affichera la clé brute 'widget.title' au lieu d'un libellé. Vérifier que cette clé existe dans les fichiers i18n complets, sinon l'ajouter (ex: 'Widget' en fr, 'Widget' en en).state.widgetPeriodWeeksduplique la config zustand persist. Si le nom du store ou la structure change, ce code cassera silencieusement (fallback à 0 sans erreur visible). Ajouter au minimum un commentaire avec une référence croisée vers useSettingsStore.ts pour signaler ce couplage implicite.Reviewer automatique — approved
Le fix résout correctement l'issue : défaut widgetPeriodWeeks=0 affiche toutes les tâches, le cap à 30 items protège contre les crashs mémoire Android, et l'UI de configuration est propre et cohérente. Les problèmes soulevés aux rounds précédents ont été adressés. L'absence de tests est justifiée par l'absence d'infrastructure de tests dans le projet.
Suggestions de simplification