Utwardzanie dodawania Crona i wyrównanie schematów
Kontekst
Najnowsze logi Gateway pokazują powtarzające się awariecron.add z nieprawidłowymi parametrami (brak sessionTarget, wakeMode, payload oraz nieprawidłowy schedule). Wskazuje to, że co najmniej jeden klient (prawdopodobnie ścieżka wywołań narzędzia agenta) wysyła opakowane lub częściowo określone ładunki zadań. Niezależnie od tego występuje rozjazd między enumeracjami dostawców cron w TypeScript, schemacie Gateway, flagach CLI i typach formularzy UI, a także niezgodność UI dla cron.status (oczekuje jobCount, podczas gdy Gateway zwraca jobs).
Cele
- Zatrzymać spam
cron.addINVALID_REQUEST poprzez normalizację typowych opakowanych ładunków i wnioskowanie brakujących pólkind. - Wyrównać listy dostawców cron w schemacie Gateway, typach cron, dokumentacji CLI i formularzach UI.
- Uczynić schemat narzędzia cron agenta jednoznacznym, aby LLM generował poprawne ładunki zadań.
- Naprawić wyświetlanie liczby zadań statusu cron w Control UI.
- Dodać testy obejmujące normalizację i zachowanie narzędzia.
Inne cele
- Zmiana semantyki harmonogramu cron lub zachowania wykonywania zadań.
- Dodanie nowych rodzajów harmonogramów lub parsowania wyrażeń cron.
- Przebudowa UI/UX dla cron poza niezbędnymi poprawkami pól.
Ustalenia (obecne luki)
CronPayloadSchemaw Gateway wykluczasignal+imessage, podczas gdy typy TS je zawierają.- CronStatus w Control UI oczekuje
jobCount, ale Gateway zwracajobs. - Schemat narzędzia cron agenta dopuszcza dowolne obiekty
job, umożliwiając nieprawidłowe dane wejściowe. - Gateway rygorystycznie waliduje
cron.addbez normalizacji, przez co opakowane ładunki zawodzą.
Co się zmieniło
cron.addicron.updateteraz normalizują typowe kształty opakowań i wnioskują brakujące polakind.- Schemat narzędzia cron agenta odpowiada schematowi Gateway, co ogranicza nieprawidłowe ładunki.
- Enumeracje dostawców są wyrównane w Gateway, CLI, UI oraz selektorze macOS.
- Control UI używa pola licznika
jobszwracanego przez Gateway dla statusu.
Bieżące zachowanie
- Normalizacja: opakowane ładunki
data/jobsą rozpakowywane;schedule.kindipayload.kindsą wnioskowane, gdy jest to bezpieczne. - Domyślne wartości: bezpieczne wartości domyślne są stosowane dla
wakeModeisessionTarget, gdy ich brakuje. - Dostawcy: Discord/Slack/Signal/iMessage są teraz spójnie prezentowane w CLI/UI.
Weryfikacja
- Obserwuj logi Gateway pod kątem zmniejszenia liczby błędów
cron.addINVALID_REQUEST. - Potwierdź, że status cron w Control UI po odświeżeniu pokazuje liczbę zadań.
Opcjonalne działania następcze
- Ręczny smoke test Control UI: dodaj zadanie cron dla każdego dostawcy + zweryfikuj liczbę zadań w statusie.
Otwarte pytania
- Czy
cron.addpowinno akceptować jawnestateod klientów (obecnie zabronione przez schemat)? - Czy powinniśmy dopuścić
webchatjako jawnego dostawcę dostarczania (obecnie filtrowany w rozstrzyganiu dostarczania)?