fix: consolidate widget AsyncStorage and debounce expand (#29) #31
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/simpl-liste#31
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-29-widget-expand-perf"
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?
Fixes #29
Summary
widget:tasks,widget:isDark,widget:expandedTaskIds) into a singlewidget:statekey — reduces I/O from 3 reads to 1TOGGLE_EXPANDto prevent double-tap from collapsing subtask listTest plan
Review — APPROVE
La consolidation des 3 clés AsyncStorage en une seule
widget:stateest propre et bien structurée. La migration des clés legacy est correcte avec cleanup automatique. Le debounce surTOGGLE_EXPANDest une approche pragmatique pour le problème de double-tap.Suggestions (non-bloquantes)
Code mort —
isWidgetTask()danswidgetTaskHandler.ts:9-22n'a plus aucun appelant après la suppression degetWidgetTasks. À supprimer, ou mieux : à réutiliser dansgetWidgetState()pour valider les items du tableautaskslors de la lecture (l'ancien code validait chaque item, le nouveau ne le fait plus).Debounce in-memory — La
MaplastExpandTimesne survivra pas si le processus headless du widget est recyclé entre deux taps. Acceptable comme première itération, mais si le problème persiste sur certains appareils, considérer un debounce persisté (timestamp danswidget:state).Scope du diff CLAUDE.md — Les modifications au processus de release (instructions versionCode) semblent hors scope du fix #29. Un commit séparé aurait été plus propre.
🤖 Review par Claude Code