Härtung von Cron Add & Schemaabgleich
Kontext
Aktuelle Gateway-Logs zeigen wiederholtecron.add-Fehler mit ungültigen Parametern (fehlende sessionTarget, wakeMode, payload sowie fehlerhafte schedule). Dies deutet darauf hin, dass mindestens ein Client (wahrscheinlich der Agent-Tool-Call-Pfad) umschlossene oder nur teilweise spezifizierte Job-Payloads sendet. Separat gibt es Abweichungen zwischen Cron-Anbieter-Enums in TypeScript, Gateway-Schema, CLI-Flags und UI-Formulartypen sowie eine UI-Inkonsistenz für cron.status (erwartet jobCount, während das Gateway jobs zurückgibt).
Ziele
cron.addINVALID_REQUEST-Spam stoppen, indem gängige Wrapper-Payloads normalisiert und fehlendekind-Felder abgeleitet werden.- Cron-Anbieterlisten über Gateway-Schema, Cron-Typen, CLI-Dokumentation und UI-Formulare hinweg ausrichten.
- Das Agent-Cron-Tool-Schema explizit machen, damit das LLM korrekte Job-Payloads erzeugt.
- Die Anzeige der Jobanzahl im Control-UI-Cron-Status korrigieren.
- Tests hinzufügen, um Normalisierung und Tool-Verhalten abzudecken.
Nicht-Ziele
- Änderung der Cron-Planungssemantik oder des Job-Ausführungsverhaltens.
- Hinzufügen neuer Zeitplantypen oder Cron-Ausdrucks-Parsing.
- Umfassende Überarbeitung der Cron-UI/UX über die notwendigen Feldkorrekturen hinaus.
Erkenntnisse (aktuelle Lücken)
CronPayloadSchemaim Gateway schließtsignal+imessageaus, während TS-Typen diese enthalten.- Control-UI CronStatus erwartet
jobCount, das Gateway gibt jedochjobszurück. - Das Agent-Cron-Tool-Schema erlaubt beliebige
job-Objekte und ermöglicht dadurch fehlerhafte Eingaben. - Das Gateway validiert
cron.addstrikt ohne Normalisierung, sodass umschlossene Payloads fehlschlagen.
Was sich geändert hat
cron.addundcron.updatenormalisieren nun gängige Wrapper-Formen und leiten fehlendekind-Felder ab.- Das Agent-Cron-Tool-Schema entspricht dem Gateway-Schema, wodurch ungültige Payloads reduziert werden.
- Anbieter-Enums sind über Gateway, CLI, UI und macOS-Picker hinweg ausgerichtet.
- Die Control-UI verwendet das
jobs-Zählfeld des Gateways für den Status.
Aktuelles Verhalten
- Normalisierung: umschlossene
data/job-Payloads werden entpackt;schedule.kindundpayload.kindwerden bei Sicherheit abgeleitet. - Standards: sichere Standardwerte werden für
wakeModeundsessionTargetangewendet, wenn sie fehlen. - Anbieter: Discord/Slack/Signal/iMessage werden nun konsistent über CLI/UI hinweg angezeigt.
Verifizierung
- Beobachten Sie die Gateway-Logs auf reduzierte
cron.addINVALID_REQUEST-Fehler. - Bestätigen Sie, dass der Control-UI-Cron-Status nach dem Aktualisieren die Jobanzahl anzeigt.
Optionale Nacharbeiten
- Manueller Control-UI-Smoke-Test: pro Anbieter einen Cron-Job hinzufügen und die Jobanzahl im Status verifizieren.
Offene Fragen
- Sollte
cron.addexplizitestatevon Clients akzeptieren (derzeit durch das Schema untersagt)? - Sollten wir
webchatals expliziten Zustellanbieter zulassen (derzeit in der Zustellauflösung gefiltert)?