Renforcement de Cron Add et alignement des schémas
Contexte
Des journaux récents de la Gateway (passerelle) montrent des échecs répétéscron.add avec des paramètres invalides (absence de sessionTarget, wakeMode, payload, et schedule mal formé). Cela indique qu’au moins un client (probablement le chemin d’appel de l’outil de l’agent) envoie des charges utiles de tâches enveloppées ou partiellement spécifiées. Par ailleurs, il existe une dérive entre les énumérations de fournisseurs cron dans TypeScript, le schéma de la Gateway (passerelle), les indicateurs CLI et les types de formulaires de l’UI, ainsi qu’une incohérence de l’UI pour cron.status (attend jobCount alors que la Gateway (passerelle) renvoie jobs).
Objectifs
- Mettre fin au spam
cron.addINVALID_REQUEST en normalisant les charges utiles enveloppées courantes et en inférant les champskindmanquants. - Aligner les listes de fournisseurs cron entre le schéma de la Gateway (passerelle), les types cron, la documentation CLI et les formulaires de l’UI.
- Rendre explicite le schéma de l’outil cron de l’agent afin que le LLM produise des charges utiles de tâches correctes.
- Corriger l’affichage du nombre de tâches du statut cron dans l’UI de contrôle.
- Ajouter des tests pour couvrir la normalisation et le comportement de l’outil.
Hors objectifs
- Modifier la sémantique de planification cron ou le comportement d’exécution des tâches.
- Ajouter de nouveaux types de planification ou l’analyse d’expressions cron.
- Repenser l’UI/UX de cron au-delà des corrections de champs nécessaires.
Constatations (écarts actuels)
CronPayloadSchemadans la Gateway (passerelle) exclutsignal+imessage, alors que les types TS les incluent.- CronStatus de l’UI de contrôle attend
jobCount, mais la Gateway (passerelle) renvoiejobs. - Le schéma de l’outil cron de l’agent autorise des objets
jobarbitraires, permettant des entrées mal formées. - La Gateway (passerelle) valide strictement
cron.addsans normalisation, de sorte que les charges utiles enveloppées échouent.
Ce qui a changé
cron.addetcron.updatenormalisent désormais les formes d’enveloppe courantes et infèrent les champskindmanquants.- Le schéma de l’outil cron de l’agent correspond au schéma de la Gateway (passerelle), ce qui réduit les charges utiles invalides.
- Les énumérations de fournisseurs sont alignées entre la Gateway (passerelle), le CLI, l’UI et le sélecteur macOS.
- L’UI de contrôle utilise le champ de comptage
jobsde la Gateway (passerelle) pour l’état.
Comportement actuel
- Normalisation : les charges utiles enveloppées
data/jobsont déballées ;schedule.kindetpayload.kindsont inférés lorsque c’est sûr. - Valeurs par défaut : des valeurs par défaut sûres sont appliquées pour
wakeModeetsessionTargetlorsqu’elles sont absentes. - Fournisseurs : Discord/Slack/Signal/iMessage sont désormais exposés de manière cohérente dans le CLI et l’UI.
Vérification
- Surveiller les journaux de la Gateway (passerelle) pour constater une réduction des erreurs
cron.addINVALID_REQUEST. - Confirmer que l’état cron de l’UI de contrôle affiche le nombre de tâches après actualisation.
Suivis optionnels
- Test manuel de l’UI de contrôle : ajouter une tâche cron par fournisseur et vérifier le nombre de tâches du statut.
Questions ouvertes
cron.adddevrait-il accepter unstateexplicite de la part des clients (actuellement interdit par le schéma) ?- Devrait-on autoriser
webchatcomme fournisseur de livraison explicite (actuellement filtré lors de la résolution de livraison) ?