Härdning av Cron Add & schemaanpassning
Kontext
Senaste gateway-loggar visar upprepadecron.add misslyckanden med ogiltiga parametrar (saknar sessionTarget, wakeMode, payload och felaktigt formatterad schedule). Detta tyder på att minst en klient (sannolikt agenten verktyg samtal sökväg) skickar insvept eller delvis angivna jobb nyttolaster. Separat finns det drift mellan cron-leverantörens enums i TypeScript, gateway-schema, CLI-flaggor och UI-formulärtyper, plus en UI-obalans för cron. tatus (förväntar sig jobCount medan gateway returnerar job).
Mål
- Stoppa
cron.addINVALID_REQUEST-spam genom att normalisera vanliga wrapper-payloads och härleda saknadekind-fält. - Anpassa listor över cron-leverantörer mellan gatewayschema, cron-typer, CLI-dokumentation och UI-formulär.
- Göra agentens cron-verktygsschema explicit så att LLM:en producerar korrekta jobbpayloads.
- Fixa visningen av antal jobb i Control UI:s cron-status.
- Lägga till tester som täcker normalisering och verktygsbeteende.
Icke-mål
- Ändra semantik för cron-schemaläggning eller jobbkörningsbeteende.
- Lägga till nya schematyper eller parsning av cron-uttryck.
- Göra om UI/UX för cron utöver nödvändiga fältfixar.
Iakttagelser (nuvarande brister)
CronPayloadSchemai gateway uteslutersignal+imessage, medan TS-typer inkluderar dem.- Control UI CronStatus förväntar
jobCount, men gateway returnerarjobs. - Agentens cron-verktygsschema tillåter godtyckliga
job-objekt, vilket möjliggör felaktiga indata. - Gateway validerar
cron.addstrikt utan normalisering, så inbäddade payloads misslyckas.
Vad som ändrades
cron.addochcron.updatenormaliserar nu vanliga wrapper-former och härleder saknadekind-fält.- Agentens cron-verktygsschema matchar gatewayschemat, vilket minskar ogiltiga payloads.
- Leverantörsenum är anpassade mellan gateway, CLI, UI och macOS-väljare.
- Control UI använder gatewayns fält
jobsför status.
Nuvarande beteende
- Normalisering: inbäddade
data/job-payloads packas upp;schedule.kindochpayload.kindhärleds när det är säkert. - Standardvärden: säkra standardvärden tillämpas för
wakeModeochsessionTargetnär de saknas. - Leverantörer: Discord/Slack/Signal/iMessage exponeras nu konsekvent i CLI/UI.
Verifiering
- Övervaka gateway-loggar för minskade
cron.addINVALID_REQUEST-fel. - Bekräfta att Control UI:s cron-status visar antal jobb efter uppdatering.
Valfria uppföljningar
- Manuell Control UI-smoke: lägg till ett cron-jobb per leverantör och verifiera statusens jobbräkning.
Öppna frågor
- Bör
cron.addacceptera explicitstatefrån klienter (för närvarande tillåts inte av schemat)? - Bör vi tillåta
webchatsom explicit leveransleverantör (för närvarande filtreras den bort i leveransupplösningen)?