Improve timer interval refresh behavior
All checks were successful
Deploy Sokko G / deploy (push) Successful in 7s

This commit is contained in:
Shinuwa 2026-08-03 15:57:25 +02:00
parent fdc81373c6
commit a6b2388763
9 changed files with 305 additions and 39 deletions

View file

@ -258,6 +258,7 @@ Structure initiale :
"label": "Boss",
"type": "daily_time",
"alertMode": "visible",
"autoRefresh": true,
"time": "12:03:00",
"targetAt": 1760000000000
},
@ -271,8 +272,12 @@ Structure initiale :
"id": "timer4",
"label": "Event",
"type": "interval",
"autoRefresh": true,
"intervalMs": 1800000,
"anchorAt": 1760000000000
"startMode": "time",
"startTime": "06:00:00",
"anchorAt": 1760000000000,
"targetAt": 1760001800000
}
]
}
@ -281,9 +286,9 @@ Structure initiale :
Types de compte à rebours :
- `duration` : durée ponctuelle, avec `durationMs` et `targetAt`.
- `daily_time` : occurrence ponctuelle à une heure précise, avec `time` au format `HH:MM:SS` et `targetAt`.
- `daily_time` : occurrence à une heure précise, avec `time` au format `HH:MM:SS`, `targetAt` et `autoRefresh` optionnel.
- `time_pattern` : prochaine occurrence automatique correspondant à un pattern `HH:MM:SS`, où chaque segment peut valoir `X`.
- `interval` : prochaine occurrence automatique toutes les X millisecondes, avec `intervalMs` et `anchorAt`.
- `interval` : intervalle basé sur `intervalMs`, `anchorAt`, `targetAt`, `startMode`, `startTime` et `autoRefresh` optionnel. `startMode` vaut `now` ou `time`; `startTime` est présent uniquement avec `time`. `autoRefresh` n'est conservé que si l'intervalle dure au moins 5 minutes ; les anciens intervalles sans `targetAt` restent interprétés comme répétables.
Pour `time_pattern`, un segment `X` situé après un segment plus large fixé cible le premier instant de l'occurrence. Exemple : `X:24:X` cible `hh:24:00` et se répète toutes les heures.
@ -298,6 +303,8 @@ Stockage compact :
- `laps` est omis tant qu'aucune étape n'est enregistrée.
- `countdowns` est omis tant qu'aucun compte à rebours n'est configuré.
- `countdowns[].alertMode` vaut `off`, `visible` ou `site`, et est omis si `off`.
- `countdowns[].autoRefresh` est omis si `false`.
- `countdowns[].startMode` et `countdowns[].startTime` sont omis pour les intervalles qui démarrent à la création.
- L'activation d'une alerte est bloquée dans l'interface si la fréquence configurée est inférieure à 5 minutes pour les comptes à rebours récurrents (`time_pattern` et `interval`). Le blocage ne dépend pas du temps restant avant la prochaine échéance.
## Outil Task Planner